私はベクトルを持っています:
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
ですか?
さらに、ここで生のポインターを使用することは悪い習慣と見なされますか?ポインタはリソースを管理する必要はありませんが、コードが混乱することは望ましくありません。