スマポを知ってから生ポwwwぬるぽwwwな者です。
今回はboostではなくc++標準のunique_ptrについて質問があります。
class Base;//定義は省略
class A : public Base;//同上
class B : public Base; //同上
int main()
{
vector<unique_ptr<Base> > p_vec { make_unique<A>(), make_unique<B>() } ;//error
p_vec.push_back(make_unique<A>() );//こっちはセーフ
}
おそらく内部でコピーコンストラクタが呼ばれているのかな?と思います。
現在はpush_backを使って一つづつ格納していますが、醜いような気がします。
(あと、新しい要素を追加するときにpush_backって書くのがめんどくさい^^;
ここで質問なのですが、vectorの初期化時にunique_ptrを格納することは可能でしょうか?
また、もし可能であるならそのやり方を教えてもらいたいです。
よろしくお願いします<(_ _)>