Wie verwaltet D Eigentümer von Objekten? Zum Beispiel muss ich folgendes ausdrücken: mit std::shared_ptr
+ std::weak_ptr
Schwache Referenzen oder Zeiger
1.) Allocate an object
2.) Give out references/pointers
3.) If the initially allocated object is deleted,
all references/pointers should become inaccessible.
In C++
dies möglich ist. Ist das auch in D möglich?
Siehe https://dlang.org/spec/garbage.html, um zu verstehen, wie Sie die Lebensdauer von Objekten steuern können. –
@key_ Sind Sie sicher, dass Sie den richtigen Link gepostet haben? Ich kann nichts in Bezug auf Life-Time-Management finden. –
Sie sollten eine versiegelte Referenz implementieren und die Zeiger dann auf Zeiger halten, wenn Sie eine übergeben. Diese Zeiger werden sich ihrer eigenen Lebenszeit bewusst sein, um sich von der Liste zu entfernen ... es ist ein erheblicher Teil des Overheads involviert. Schwache Referenzen selbst sind einfach - machen Sie einfach einen Zeiger, den der GC nicht scannt, oder erhöhen Sie nicht Ihren Refcount - aber sie zu entwerten, wenn das Objekt gelöscht wird, ist schwieriger. –