std::unique_ptr を抽象クラスのオブジェクトに返す関数を使用するループが発生しました。これらのオブジェクトを push_back 経由で std::vector に格納したいと考えています。しかし、オブジェクトは抽象型であるため、次のエラーが発生します。
error: cannot allocate an object of abstract type
ラインのために
cells.push_back(std::move(*cell));
ここで、セルはstd::vector
抽象型でcell
あり、型です
std::unique_ptr<AbstractType>&& cell
(私は実際にcell
ハンドラークラスに渡します)抽象型をインスタンス化できないことを知っています.std:move演算子を理解しているので、オブジェクトをインスタンス化する必要がありますか?
問題を管理する方法を教えてくれる人はいますか? または、関数 (プロジェクトの私の部分ではない) は、抽象型のオブジェクトへの一意のポインターを返すべきではありませんか?