Boost.Python如何保存C ++类?

时间:2015-01-28 06:39:39

标签: python c++ boost boost-python

我知道如何使用Boost.Python包装暴露给Python的C ++类。 使用Boost.Python来如此方便地包装东西真的很有用。

但是,很少有关于Boost.Python 持有 C ++类的细节。

Boost.Python的代码难以阅读或调试,因为它是以模板元编程方式编写的,所有内容只是在编译时执行。我已经扫描了作者的文档和“使用Boost Python构建混合系统”一文,但没有找到答案。

那么,Boost.Python如何保持C ++类?

它是否将包装的C ++类实例保存为PyObject的私有成员?是否通过委托给持有的实例来模仿包装类的所有继承,多态等功能?

1 个答案:

答案 0 :(得分:0)

  

那么,Boost.Python如何保存C ++类?

要迂腐,在C ++中,运行时没有类,只有类的对象或实例。

Boost类包装器通过值或通过智能指针保存您的C ++对象(目前仅支持弃用std::auto_ptr)。

不幸的是,boost.python文档相当缺乏,这里有一些有用的链接: