我知道如何使用Boost.Python包装暴露给Python的C ++类。 使用Boost.Python来如此方便地包装东西真的很有用。
但是,很少有关于Boost.Python 持有 C ++类的细节。
Boost.Python的代码难以阅读或调试,因为它是以模板元编程方式编写的,所有内容只是在编译时执行。我已经扫描了作者的文档和“使用Boost Python构建混合系统”一文,但没有找到答案。
那么,Boost.Python如何保持C ++类?
它是否将包装的C ++类实例保存为PyObject
的私有成员?是否通过委托给持有的实例来模仿包装类的所有继承,多态等功能?
答案 0 :(得分:0)
那么,Boost.Python如何保存C ++类?
要迂腐,在C ++中,运行时没有类,只有类的对象或实例。
Boost类包装器通过值或通过智能指针保存您的C ++对象(目前仅支持弃用std::auto_ptr
)。
不幸的是,boost.python文档相当缺乏,这里有一些有用的链接: