[C++-sig] [Boost.python] Converting python file object to std::istream.

Dan d_zakaib at yahoo.com
Mon Nov 6 02:46:06 CET 2006


I am exposing a C++ class to python that takes a reference to a 
std::istream object and operates on it. It looks something like this:

class StreamReader
{
public:
     StreamReader(std::istream& strm);

private:
     std::istream& strm_;
}

I would like to expose this class to python allowing a python client to 
pass in any python file type object (regular file object, StringIO 
object, stdin, etc.), as a C++ client would be able to pass any 
std::istream derived object.

Now it seems to me that someone must have encountered this problem 
before, but I haven't seen any references as to how to make this work.

Any ideas on the best way to proceed would be appreciated.

thanks,
Dan




More information about the Cplusplus-sig mailing list