[C++-sig] Wrapping std::vector<AbstractClass*>
Paul Melis
paul at pecm.nl
Fri Jul 8 00:40:16 CEST 2005
Joel de Guzman wrote:
>Joel de Guzman wrote:
>
>
>>Paul Melis wrote:
>>
>>
>>
>>>Hello,
>>>I have an abstract class and a std::vector<> of pointers to this class.
>>>A routine in my c++ code fills a vector with objects of classes derived
>>>
>>>
>>>from the abstract class.
>>
>>
>>>I'd like to iterate over the vector in python and use each of the items
>>>in the vector depending on the type of derived class.
>>>
>>>
>>>
>>[...]
>>
>>
>>
>>>I suspect that boost.python will wrap the return value of returnList()
>>>as a pointer to Abstract, without the possibility at runtime to look at
>>>the actual object type. Is this something I would have to code by hand?
>>>For example, by making a routine that takes a pointer to Abstract and
>>>uses dynamic_cast<> to test which of the concrete classes the object
>>>actually is from?
>>>
>>>
>>Pardon the delay. It's been a while. I'm investigating the problem
>>in more detail. I'll get back to you on this, ok?
>>
>>
>
>Ok... Replying to myself...
>
>I committed a fix. The problem occurs when lst[0] tries to return
>a copy and there's no way to provide a call policy. So, the
>behavior now is for wrapped containers of pointers to always
>return by internal reference.
>
>Cheers,
>
>
Hi,
I'll check after I get back from holidays (in a month ;-))
Thanks,
Paul
More information about the Cplusplus-sig
mailing list