[C++-sig] Assign ownership of Python-constructed object to C++ runtime

Adam Preble adam.preble at gmail.com
Tue Apr 17 08:00:32 CEST 2012


I am pondering trying to eliminate some usages of shared pointers in my
code since I have finally completed enough of it that I have good ownership
rules for things in place.  I still have one spot, which is basically the
main door to the C++ runtime, where I have a problem.  I've been creating
instances of some objects in Python, with the purpose of assigning to
another object for safekeeping.  Really that other object is what I have in
mind for managing everything about these objects--including their runtimes.
 But I see the objects get destroyed when the Python declaration for them
go out of scope.  That would normally be the right thing.  I'm trying to
think of alternatives.  The best I can think of is to use a static factory
method instead that returns an internal reference.  I'm intend to
experiment with that now but I am wondering if there are some other things
to consider instead.

Inevitably somebody will ask why I'm doing away with the shared pointers.
 I have some cycles due to communication that means a lot of stuff never
actually gets deleted due to the reference-counting methodology in them.
 When I used weak references, I found they were getting deleted too
eagerly.  And by this point, I otherwise have gotten an ownership hierarchy
down.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/cplusplus-sig/attachments/20120417/880c4b89/attachment.html>


More information about the Cplusplus-sig mailing list