我已经使用Boost.Python包装了一个C++类。这些对象在C++端有强引用(boost::shared_ptr),在Python端也可能有断断续续的强引用。到目前为止,一切都运行良好。但是,如果我从其中一个强引用创建一个python弱引用,那么一旦最后一个python强引用消失,这个弱引用就会被删除。我希望弱引用一直存在,直到C++端的最后一个强引用消失。有可能做到这一点吗?
换句话说:有没有办法从python中找出某个特定的C++对象(由Boost.Python包装)是否仍然存在?
发布于 2012-12-21 19:42:58
您是如何保持对包装类的"C++强引用“的呢?
我对boost python相当生疏,但我相信这是boost::shared_ptr的更详细的存在,它确保了终生管理。
如果这不是问题所在,那么您可能需要将实例保存在C++中的boost::python::object中。
https://stackoverflow.com/questions/13956055
复制相似问题