在boost :: python中公开boost :: scoped_ptr

时间:2010-04-05 07:57:23

标签: c++ boost smart-pointers boost-python

我收到编译错误,说scoped_ptr的复制构造函数是私有的,带有以下代码片段:

class a {};

struct s
{
  boost::scoped_ptr<a> p;
};

BOOST_PYTHON_MODULE( module )
{
  class_<s>( "s" );
}

此示例适用于shared_ptr。如果有人知道答案那就太好了。感谢

1 个答案:

答案 0 :(得分:6)

boost::scoped_ptr的语义禁止复制,而shared_ptr旨在复制。scoped_ptr。您得到的错误是编译器告诉您某些代码(宏扩展?)正在尝试复制{{1}},但该库不允许进行复制。