私はベクトルを持っています:
std::vector<std::unique_ptr<myClass>> vec;
//filling the vector
vec.push_back(std::unique_ptr<myClass>(new myClass()));
vec.push_back(std::unique_ptr<myClass>(new myClass()));
vec.push_back(std::unique_ptr<myClass>(new myClass()));
myClass所有権について心配する必要のない特定のインスタンスへのハンドルが必要です。例:
std::unique_ptr<myClass>& myInstance;
問題は、実行時にmyInstanceのさまざまなインスタンスを指す必要があることですmyClass。
を使用できることはわかっていますがstd::shared_ptr、それらを保持したいstd::unique_ptrので、すでに初期化されているものが追加された場合、所有権はに転送されvecます。
?へのポインタを保持するにはどうすればよいstd::unique_ptrですか?
さらに、ここで生のポインターを使用することは悪い習慣と見なされますか?ポインタはリソースを管理する必要はありませんが、コードが混乱することは望ましくありません。