[C++-sig] boost::python constructing object from PyObject *

David Abrahams dave at boostpro.com
Wed Oct 29 23:11:04 CET 2008

on Wed Oct 29 2008, "Dan Eloff" <dan.eloff-AT-gmail.com> wrote:

> On Wed, Oct 29, 2008 at 3:55 PM, David Abrahams <dave at boostpro.com> wrote:
>> The above should be a complete guide.  Any questions?
> Just two.
> 1) Should it be object(handle<>(borrowed(ptr))) or
> object(borrowed(ptr)) ? Both seem to compile.

    * an object can only be constructed from a handle<>.  Other
      interfaces are not for public consumption and thus not
      documented.  Use at your own peril.

I.e., it should be the first.  

Actually, you should follow a logical extension of Peter Dimov's
and give the handle<> object a name rather than making it a temporary.

> 2) Can I repost that to a boost::python wiki, givng you credit of
> course. Hopefully it will prevent others from having as many issues
> with this.

Sure thing.

> Thanks for taking the time to explain handle in depth. I fixed my code
> accordingly and all ref-counting issues went away.

Glad to help.

Dave Abrahams
BoostPro Computing

More information about the Cplusplus-sig mailing list