Dはオブジェクトの所有権をどのように管理しますか?たとえば、私は、次の表現する必要があります。弱い参照またはポインタ
1.) Allocate an object
2.) Give out references/pointers
3.) If the initially allocated object is deleted,
all references/pointers should become inaccessible.
C++
では、これはstd::shared_ptr
+ std::weak_ptr
で可能です。これはDでも可能ですか?
オブジェクトのライフタイムを制御する方法を理解するには、https://dlang.org/spec/garbage.htmlを参照してください。 –
@key_正しいリンクを投稿してもよろしいですか?私は人生の時間管理に関連する何かを見つけることができません。 –
あなたは密封された参照を実装し、ポインタを渡すたびにポインタを保持することが望ましいでしょう。これらのポインタは、リストから自分自身を削除するために自分の生涯を意識したいと思うでしょう...かなりのオーバーヘッドが伴います。弱い参照自体は簡単です.GPがスキャンしないポインタを作成するか、refcountを増やさないだけですが、オブジェクトが削除されたときに無効にするポインタは難しくなります。 –