我使用boost :: python来包装一个C++类.这个类不允许复制构造函数,但python模块总是想创建一个.
C++类看起来像这样(简化)
class Foo {
public:
Foo(const char *name); // constructor
private:
ByteArray m_bytearray;
};
Run Code Online (Sandbox Code Playgroud)
ByteArray类继承自boost :: noncopyable,因此Foo没有复制构造函数.
这是Python模块存根:
BOOST_PYTHON_MODULE(Foo)
{
class_<Foo>("Foo", init<const char *>())
;
}
Run Code Online (Sandbox Code Playgroud)
在编译boost :: python模块时,我得到的错误是无法创建Foo的复制构造函数,因为ByteArray继承自boost :: noncopyable.
如何在我的python模块中禁用复制构造函数?
谢谢Christoph
cru*_*ahl 44
我找到了.我必须指定boost :: noncopyable:
BOOST_PYTHON_MODULE(Foo)
{
class_<Foo, boost::noncopyable>("Foo", init<const char *>())
;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3201 次 |
| 最近记录: |