【问题标题】:Boost.Python: Getting a python weak reference to a wrapped C++ objectBoost.Python:获取对包装 C++ 对象的 python 弱引用
【发布时间】:2012-12-19 15:49:38
【问题描述】:

我已经使用 Boost.Python 封装了一个 C++ 类。这些对象在 C++ 端具有强引用 (boost::shared_ptr),在 Python 中也可能存在间歇性强引用。到目前为止,一切正常。但是,如果我从其中一个强引用创建一个 python 弱引用,那么一旦最后一个 python 强引用消失,这个弱引用就会被删除。我希望弱引用保持活跃,直到 C++ 端的最后一个强引用也消失。有可能实现吗?

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

【问题讨论】:

    标签: c++ python boost-python


    【解决方案1】:

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

    我对 boost python 很生疏,但我相信是 boost::shared_ptr 的删除器存在确保了生命周期管理。

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

    【讨论】:

    • 正如你所怀疑的,我在 boost::shared_ptr 中持有强引用。我已经澄清了这个问题。你能详细说明第二段吗?我似乎无法与该问题建立联系 - 抱歉。
    猜你喜欢
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-29
    • 1970-01-01
    • 2010-12-13
    • 2013-09-08
    • 1970-01-01
    • 2015-11-21
    相关资源
    最近更新 更多