我使用boost::python来封装一个C++类。这个类不允许复制构造函数,但是Python模块总是想要创建一个。
C++类看起来像这样(简化):
C++类看起来像这样(简化):
class Foo {
public:
Foo(const char *name); // constructor
private:
ByteArray m_bytearray;
};
ByteArray类继承自boost::noncopyable,因此Foo没有复制构造函数。
这是Python模块存根:
BOOST_PYTHON_MODULE(Foo)
{
class_<Foo>("Foo", init<const char *>())
;
}
编译 boost::python 模块时,我遇到了一个错误,说无法创建 Foo 的拷贝构造函数,因为 ByteArray 继承自 boost::noncopyable。
如何在我的 Python 模块中禁用拷贝构造函数?
谢谢 Christoph