D:保证销毁

Tra*_*kel 9 destructor d

我正在阅读Andrei Alexandrescu的The D Programming Language,并在拆卸序列中找到了这个金块:

... D假设退出应用程序将事实上释放与之关联的所有资源,因此它不会调用任何析构函数.

这对于内存资源很有用,但是网络套接字,自定义硬件,文件句柄等等呢?有没有办法保证我的析构函数总是被调用?另外:D是否提供了更好的方法来处理这些事情(我陷入了C++思维模式)?

rat*_*eak 6

您可以使用在线程终止时调用的静态析构函数和在(正常)应用程序关闭时调用的共享静态析构函数

(现在,如果我们只有弱引用,那么我们就不需要另一层次的间接......)