作成中のクラスのメンバーとして、unique_ptr のベクトルが必要です。
class Foo {
[...]
private:
vector<unique_ptr<Bar>> barList;
}
しかし、その後、 VS2010コンパイラから不可解なエラー メッセージが表示され始めます。
error C2248: 'std::unique_ptr<_Ty>::operator =' : cannot access private member declared in class 'std::unique_ptr<_Ty>'
マイクロソフトの実装に飛び込むその下のいくつかのエラー行とともにstd::_Copy_impl<>
...
メンバー宣言を次のように変更しました
vector<unique_ptr<Bar>>* barList;
そしてコンパイルします。でも、どうして本来の思い通りにできないのだろうと思わずにはいられない。笑顔のために、私はこれを試しましたが、うまくいきます:
vector<Bar> barList;
しかし、今では利便性を失っていますunique_ptr
。ケーキも食べたい!