On 16 mars 2010, at 13:12, Neal Becker wrote: > Alexandre Hamez wrote: > >> Hi all, >> >> I have a C++ library that needs to store in a hash map user's code, that >> is, Python-extended objects. To make the C++ interface available to >> Python, I use boost::python::wrapper, as stated in the tutorial >> > (http://www.boost.org/doc/libs/1_42_0/libs/python/doc/tutorial/doc/html/python/exposing.html#python.class_virtual_functions). >> Because I store this extend objects, I need to tell Python that I've got a >> reference on these objects. >> A thread from 2007 >> (http://mail.python.org/pipermail/cplusplus-sig/2007-March/011790.html) >> states there is a problem for this particular use case, but in the end, no >> solution is given. So my question is the following: as of today, what is >> the correct way to tell Python we hold a reference to Python extend >> objects of C++ classes, using the boost::python::wrapper mechanism? >> >> Thanks, >> --------------------- >> Alexandre Hamez >
Thanks for answering so quickly. > I've use 2 methods: > > 1) with_custodian_and_ward OK, I didn't think of this method. Seems a good way to do it. > 2) boost::shared_ptr For this point, do you mean you just take the objects that should seen they references increased by a shared_ptr? Just after having asked this question, I tried with this simple solution, and it seems to work. I hope there is no hidden potential crash :-) Do you use these two methods conjointly in the same project? Or did you identify some use cases which favor a method rather the other one? --------------------- Alexandre Hamez _______________________________________________ Cplusplus-sig mailing list Cplusplus-sig@python.org http://mail.python.org/mailman/listinfo/cplusplus-sig