-2
我有一個BOOST_PYTHON_MODULE,其中我有一個函數,我想返回一個我已經暴露的對象列表。使用boost :: python返回一個暴露的類對象的列表,這是不可複製的
namespace bp = boost::python;
class MyClass {
public:
int foo() {return 42;}
};
bp::list my_fun() {
bp::list l;
l.append(MyClass());
l.append(MyClass());
return l;
}
BOOST_PYTHON_MODULE(my_module) {
bp::class_<MyClass,boost::noncopyable>("MyClass")
.def("foo",&MyClass::foo);
bp::def("my_fun",my_fun);
}
我得到厚望 「沒有to_python(按值)發現C++的類型轉換器」,
由於MyClass :: foo()是私有的,所以不會編譯。除此之外,它的工作原理 - 調用'my_fun()[0] .foo()'返回42. –
@DanMasek是的你說得對,謝謝你花時間。該錯誤是不可複製的關鍵字,我不認爲這個簡化的例子。 – user1443778
您需要添加一個引用包裝或指向您的列表的指針。 –