D 弱引用或指针

D 弱引用或指针,d,D,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中也是可能的吗?目前在D中

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中也是可能的吗?

目前在D中没有很好的弱引用实现

请检查以下两个论坛线程:

不正确或“几乎”正确的实现:


最大的问题是,您需要一个好的API来处理弱引用。Java和.NET拥有它,可以说它是不好的。有一个很好的理由——很难想出一个好的api

请参阅,以更好地了解如何控制对象的生存时间。@key\n是否确实发布了正确的链接?我找不到任何与生命周期管理相关的东西。你会想要实现一个密封的引用,然后在你发出一个指针时保留指向指针的指针。这些指针将希望了解自己的生命周期,以便将自己从列表中删除。。。这涉及到相当多的管理费用。弱引用本身很容易-只需创建一个GC不扫描的指针,或者不增加引用计数-但在删除对象时使其无效更难。是的,链接是正确的,它提供了垃圾收集器如何工作的信息。请参阅“用外部代码连接垃圾收集的对象”一节。总结一下,当gc看不到更多的引用时,它会为您释放内存。我讨厌这么多的D论坛线程在URL中有美元符号。呸,它破坏了很多url检测器。