[C++-sig] Wrapping a function that takes class type, such as type_info
Jim Bosch
talljimbo at gmail.com
Sat Feb 25 18:08:23 CET 2012
On 02/25/2012 09:25 AM, Adam Preble wrote:
> It looks like PyObject_IsSubClass is working (!), but I wanted to follow up
> on the boost::python::object stuff:
>
> On Fri, Feb 24, 2012 at 9:56 PM, Jim Bosch<talljimbo at gmail.com> wrote:
>
>> On 02/24/2012 02:31 AM, Adam Preble wrote:
>>
>>> Jim,
>>>
>>> I'll top post since I think this might get messy nice and fast
>>> otherwise. I found I couldn't get to a method wrapped to type a
>>> PyTypeObject* and only PyObject* would do.
>>>
>>
>> Yeah, that's not surprising. You can also have it take a
>> boost::python::object; that's essentially a smart pointer for PyObject*.
>>
>
> I couldn't get that to work. I can't pass it directly into
> PyObject_IsSubclass, which isn't surprising. However, I couldn't do a get
> or find anything else to extract the PyObject* out of it. Is there a trick
> to this? I would wonder--is there a particular reason I should use that
> instead? In my case, I'm not trying to sit on the pointer outside of the
> class to Has(). The list I'm using has shared_ptr's of the underlying type
> already. So I assume in my particular case I wouldn't have to worry about
> it.
>
It's - probably unfortunately - just a totally non-standard accessor:
".ptr()".
But you're basically right - there's really no need to worry about
managing the pointer lifetime in this case, so PyObject * is just fine.
Jim
More information about the Cplusplus-sig
mailing list