私はstd::vector
ofを持っunique_ptr
ており、それらのオブジェクトのライフサイクルを管理してくれることをうれしく思います。
ただし、便宜上、これらのオブジェクトへの他のポインターを格納する必要があります。unique_ptr
何かを削除すると、他のポインターがぶら下がることを私は知っています。しかし、私はunique_ptr
それらを取得する前後のこれらのポインターの有効性についてもっと心配しています。
私は常にそれ自体new
の中でvia を作成するとは限りませんunique_ptr
。たとえばnew Something
、関数パラメーターとして渡す場合があります。この場合、unique_ptr
はmove
そのポインターを関数内で自分自身に使用しています。
しかしnew Something
、関数に渡す前にunique_ptr
.
オブジェクトが に割り当てられると、unique_ptr
を介してそのオブジェクトへのポインタを取得できますget()
。しかし、元のポインターが a への割り当ての前に作成された場合、get()
このポインターは最初に取得したポインターと同じ場所を指していると常に想定できますか?new
unique_ptr
私の仮定ははいです。vector
サイズが変更されて再割り当てされたunique_ptr
としても、メモリ内のオブジェクトへの他のポインタと同様に同じままです。