4

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

class a {};

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

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

这个例子虽然适用于 shared_ptr 。如果有人知道答案,那就太好了。谢谢

4

1 回答 1

6

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

于 2010-04-05T08:06:30.347 回答