d的破坏与安全
Posted fqbqrr
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了d的破坏与安全相关的知识,希望对你有一定的参考价值。
原文 因为use
包含destroy
,所以不能为安全
R use(R, T)(T obj, R delegate(T) fT)
scope (exit)
destroy!false(obj);
return fT(obj);
如何确保安全
调用destroy
?
只要调用它的析构器
是@safe
的,destroy
就应是安全
的.
如果析构器
是@system
,则安全
调用代码唯一方法是:
(1)
确保不违反
内存安全调用析构器
条件,
(2)
(用编译时和/或运行时
检查)确保满足这些条件,
(3)
在@trusted
函数中包装destroy
.
use
推导为系统
,闭包也未标记为安全
.
标记use
为安全
,来看看说了啥.
对类
,当前dmd+druntime
不能静态决定析构器
是否安全
.
以上是关于d的破坏与安全的主要内容,如果未能解决你的问题,请参考以下文章