キューから unique_ptr を削除する 質問する

キューから unique_ptr を削除する 質問する

unique_ptrを で使用できるかどうか、またどのように使用できるかを調べていますqueue

// create queue
std::queue<std::unique_ptr<int>> q;

// add element
std::unique_ptr<int> p (new int{123});
q.push(std::move(p));

// try to grab the element
auto p2 = foo_queue.front();
q.pop(); 

上記のコードが機能しない理由は理解しています。front&popは 2 つの別々のステップであるため、要素を移動できません。これを実行する方法はありますか?

ベストアンサー1

明確に伝えるべきことは、動くポインタ順番待ちから。 このような:

std::unique_ptr<int> p2 = std::move(q.front());
q.pop();

おすすめ記事