d中这是内存安全吗
如下代码:
import std.stdio:writeln;
struct S{
@disable this();
~this(){
writeln("dtor!");
}
}
void main(){
S s = void;
}
RazvanN:
过去出现过,人们同意,如果用void
初化,则由你确保析构前
对象有效.我不同意这一点;既然你绕过了构建,你也应该绕过析构,但是,这可以讨论.
当前你有简单用联技巧
来绕过析构
的方法.我赞成,对特定对象避免析构
的dip
.
Walter Bright
:
上面代码
应该有问题吗?用void
初化表明由用户使用
前正确初化.
@safe
是关于内存安全的.示例代码确实
是内存安全的.
UB
不太对.这是关于内存安全.下例可说明:
import std.stdio;
@safe void main() {
int x = void;
writeln(x);
}
会打印垃圾,但不是
不安全.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现