2017-05-31 16 views
-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); 
} 

私は、

ブースト::コピー不可

キーワードによって引き起こさ

+0

これは 'MyClass :: foo()'がプライベートであるためコンパイルされません。それ以外は、動作します - 'my_fun()[0] .foo()'を呼び出すと42が返されます。 –

+0

@DanMasekはい、そうです、時間をいただきありがとうございます。このエラーは、この単純化された例に入れないと考えられる、コピー不可能なキーワードでした。 – user1443778

+0

参照ラッパーまたはリストへのポインターを追加する必要があります。 –

答えて

0

expection "C++タイプが見つかりませんto_python(バイ値)コンバータ" を取得します。

関連する問題