[C++-sig] Re: instantiating python objects within C++

David Abrahams dave at boost-consulting.com
Mon May 26 20:44:32 CEST 2003


Stefan Seefeld <seefeld at sympatico.ca> writes:

> Hi David,
>
> David Abrahams wrote:
>
>>     object FooClass
>>         = class_<Foo>("Foo", init<int, char const*>())
>>                .def( ... )
>>                ...
>>                ;
>>     object foo = FooClass(3, "hello");
>> Joel, we might want to do that example in two steps as shown above
>> just to make it crystal clear what's happening.
>
> yes, the 'missing link' was that I didn't understand what the above
> really meant for the python interpreter. 

The interpreter, if you mean the thing that executes Python
bytecodes, isn't running this at all.

> For example right now I'm not even instantiating that class
> explicitely, I use a callable's '()' operator. 

That's what    

               FooClass(3, "hello")

is.

> The python interpreter then figures out that it should create the so
> defined wrapper object and wrap it around my existing foo instance.

It's not really clear to me just what you mean.

> That is something I didn't understand (and still don't in detail).
> Explaining that in greater detail would surely help, not only to use
> boost.python, but also to understand how all the magic works.

Hmm.  Well, yeah, a description of the conversion mechanisms would be
good to have.  I've been meaning to write one for a while.
Unfortunately, most of my time is currently being taken by other
(paying) work, and it's hard to justify giving that project priority
right now.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com





More information about the Cplusplus-sig mailing list