On 16/04/12 19:13, Dave Abrahams wrote:
> 
> on Mon Apr 16 2012, John Reid <j.reid-AT-mail.cryst.bbk.ac.uk> wrote:
> 
>> On 15/04/12 03:23, Dave Abrahams wrote:
>>>
>>> You can't do this; don't even try.  Each C++ class has to have a unique
>>> Python identity.  If you just want to refer to the same class by a
>>> different name, you can of course:
>>>
>>
>>> BOOST_PYTHON_MODULE( _sandbox )
>>> {
>>>      namespace bp = ::boost::python;
>>>      object inner;
>>>      {
>>>          bp::scope scope = bp::class_<  Outer1>( "Outer1" );
>>>          inner = bp::class_<  Inner>( "Inner" );
>>>      }
>>>
>>>      {
>>>          object outer2 = bp::class_<  Outer2>( "Outer2" );
>>>          outer2.attr("Inner") = inner;
>>>      }
>>> }
>>>
>>
>> I didn't know you could do that and it is useful but it is not quite
>> what I had in mind. I would rather not pass the inner object around
>> all the parts of my code that might need it. Is it possible to get it
>> out of the registry in the second block? 
> 
> Why don't you read to the end of my posting?  The answer's there at the
> bottom :-)
> 

Thanks! I was guilty of reading your post too quickly. And thx to Jim
too for what looks like a similar method.

John.

_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to