[C++-sig] wrapping objects which inherit from std::map

2009-05-06 Thread Jeremy Kie
Hi, I have the following: class foo : public std::map { } BOOST_PYTHON_MODULE(foo_ext) { using namespace boost::python; class_>("foo"); } The compiler complains that template arguments 1 and 2 are invalid. I'm certain my syntax is the problem. Can't anyone shed some light and help me corr

Re: [C++-sig] wrapping objects which inherit from std::map

2009-05-06 Thread Stefan Seefeld
Jeremy Kie wrote: Hi, I have the following: class foo : public std::map { } You lack a semicolon here. (I also don't think it's a good idea to derive from standard containers, but that is an entirely different subject). BOOST_PYTHON_MODULE(foo_ext) { using namespace boost::python; cl

Re: [C++-sig] wrapping objects which inherit from std::map

2009-05-06 Thread Jeremy Kie
Thanks for the direction Stefan. Apologies for the typos. What I was missing was the declaration of the "std::map" prior to my foo declaration. Yes, I agree with you regarding derivation from standard containers. My portion of the project is written in python, I'm trying to work with libraries w

Re: [C++-sig] wrapping objects which inherit from std::map

2009-05-06 Thread Stefan Seefeld
Jeremy Kie wrote: With the addition of the "std::map" declaration, my compiler errors disappeared. That is very curious, as Python only discovers whether the base class has been exported or not at runtime. Thus it can't possibly result in a compiler error. Regards, Stefan --

Re: [C++-sig] wrapping objects which inherit from std::map

2009-05-06 Thread Jeremy Kie
I think you are right. I removed the declaration of the std::map and it compiled without any errors. The problem must have been related to the missing template types. regards, Jeremy On Wed, May 6, 2009 at 11:56 AM, Stefan Seefeld wrote: > Jeremy Kie wrote: > >> >> With the addition of the "s

[C++-sig] boost python class inherits boost::asio::ip::tcp::socket

2009-05-06 Thread Jeremy Kie
Hello, The library I am attempting to extend Python to contains a class which inherits from boost::asio::ip::tcp::socket. class tcp_client_socket : public boost::asio::ip::tcp::socket { // class members and functions go here... }; My question is whether or not it is a good idea to wrap this. My