[C++-sig] reference counting pointers
dleary at ttlc.net
Thu Jul 17 21:41:04 CEST 2003
Can someone give me example of a ResultConvertorGenerator (or whatever is
required) so that addref/decref calls get called on an object?
Currently, I am using boost::intrusive_ptr, which does almost what I want.
All my class bindings are defined like so: class_<A, intrusive_ptr<A>
>("A"); class_<B, intrusive_ptr<B>, bases<A> >("B"); etc...
The problem is that functions which accept an intrusive_ptr<A>, when called
with an intrusive_ptr<B>, cause boost.python errors (no valid type found).
So, I would like to replace most of the uses of intrusive_ptr<A> with A* (in
method signatures), and just have my C++ implementations use intrusive_ptr
internally. This way, the polymorphic thing will work out ok, with boost
wrapping B* and calling foo(A*) rather than wrapping intrusive_ptr<B> and
failing to call foo(intrusive_ptr<A>).
More information about the Cplusplus-sig