Boost.Python:获取对包装的C ++对象的python弱引用

时间:2012-12-19 15:49:39

标签: c++ python boost-python

我使用Boost.Python包装了一个C ++类。这些对象在C ++方面具有强引用(boost :: shared_ptr),并且Python中也可能存在间歇性强引用。到目前为止,一切运作良好。但是,如果我从其中一个强引用创建python弱引用,则只要最后一个python强引用消失,就会删除此弱引用。我希望这个弱引用能够保持活着,直到C ++方面的最后一个强引用也消失了。是否有可能实现这一目标?

另一种说法:有没有办法从python中找出一个特定的C ++对象(由Boost.Python包装)是否仍然存在?

1 个答案:

答案 0 :(得分:1)

你如何对被包装的类持有“C ++强引用”?

我对boost python非常生疏,但我相信它是boost :: shared_ptr的删除存在,可确保终身管理。

如果这不是问题,您可能需要在boost :: python :: object中将实例保存在C ++中。