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的破坏与安全的主要内容,如果未能解决你的问题,请参考以下文章

网络安全等级保护安全等级划分与保护

设计模式 - 单例模式之多线程调试与破坏单例

8.1.20示例:类型安全性与装载约束

(王道考研P29~P32)

(王道考研P29~P32)

security 01: Linux基本防护 用户切换与提权 SSH访问控制 总结和答疑