我使用Boost.Python包装了一个C ++类。这些对象在C ++方面具有强引用(boost :: shared_ptr),并且Python中也可能存在间歇性强引用。到目前为止,一切运作良好。但是,如果我从其中一个强引用创建python弱引用,则只要最后一个python强引用消失,就会删除此弱引用。我希望这个弱引用能够保持活着,直到C ++方面的最后一个强引用也消失了。是否有可能实现这一目标?
另一种说法:有没有办法从python中找出一个特定的C ++对象(由Boost.Python包装)是否仍然存在?
答案 0 :(得分:1)
你如何对被包装的类持有“C ++强引用”?
我对boost python非常生疏,但我相信它是boost :: shared_ptr的删除存在,可确保终身管理。
如果这不是问题,您可能需要在boost :: python :: object中将实例保存在C ++中。