VS2010
unique_ptr
私は内部を持つ構造を持っています。次にvector
、この構造を持っています。ベクトルのサイズを変更 (または予約を使用) しようとすると、コンパイル エラーが発生します。以下は、まだ問題が発生している簡略化された例です。
struct Test
{
unique_ptr<int> pValue;
};
void test()
{
// this doesn't compile
vector<Test> testVector;
testVector.resize(5);
// this also doesn't compile
testVector.reserve(5);
// this, of course, compiles
vector<unique_ptr<int>> testVector2;
testVector2.resize(5);
testVector2.reserve(5);
}
unique_ptr
私が受け取るエラーは、 (代入演算子) のプライベート メンバーへのアクセスに関する苦情です。コンパイラは、 and を動的に構築しようとしていTest &Test::operator =(const Test &)
ますTest::Test(const Test &)
。サイズ変更操作でこれらの関数のいずれかを呼び出す必要がある理由がわかりません (必要に応じて、デフォルトのコンストラクターを呼び出さないのはなぜですか?)。. _ unique_ptr
_const