C++14
です。
std::vector
に、unique_ptr
を入れたいときは
#include <vector>
#include <memory>
std::unique_ptr<SOMETYPE> ptr = std::make_unique<SOMETYPE>(some_arguments);
a_vector->push_back(std::move(ptr));
のような感じで、std::move
が要るので注意しよう。所有権がvector
に移るので。
vector
自体もunique_ptr
で持つべきなのだろうか?
まあ、
using NewType = std::unique_ptr<std::vector<SOMETYPE>>;
を使えばいいか。
参考: c++ - Why can I not pushback a uniqueptr into a vector? - Stack Overflow
コメント