【发布时间】:2011-09-01 09:34:05
【问题描述】:
我正在用 C++ 为 Python 编写一个扩展模块,并且我正在使用 boost.python。我想公开一个返回vector<MyClass> 的函数。我不确定如何执行此操作以及它将如何与 Python WRT 内存管理交互。
我的第一个想法是将MyClass 包装在shared_ptr 中,因此该函数将返回vector<shared_ptr<MyClass>>。这会有帮助吗?当shared_ptr<MyClass> 实例到达 Python 领域时会发生什么?他们会被释放吗?
所以我的问题是:如何公开一个函数,该函数返回一个 vector 的 MyClass 实例给 Python 而不会泄漏内存?
谢谢。
【问题讨论】:
标签: c++ python boost vector shared-ptr