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 に答える