std::vectorにunique_ptrを格納する方法

#include <vector>
#include <memory>

std::vector<std::unique_ptr<SOMETYPE>> v{};
auto ptr = std::make_unique<SOMETYPE>(some_arguments);
v.push_back(std::move(ptr));
// v.emplace_back(std::move(ptr)); // push_backの代わりに、こっちでも可。

みたいな形で、std::moveを指定して、vectorに所有権を移す必要がある。
ちなみに、「v.push_back(ptr);」とすると、ビルドが通らなくなる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です