コードのどこかに local がありstd::unique_ptr<T>
ます。指しているオブジェクトを操作する必要があり、そのために関数を使用します。
std::unique_ptr<T> some_function( std::unique_ptr<T> &t )
{
// do stuff
return t;
}
この関数を次のように呼び出します。
std::unique_ptr<T> some_T_ptr( new T(/*args*/) );
vector_of_finalized_Ts.push_back( std::move(some_function(std::move(some_T_ptr))));
必要な機能を取得するためのより良い方法はありますか? 2 つの動きはかなり不必要であり、潜在的に危険なようです。ここには示していないエラー処理コードがありますが、それは重要ではありません。