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