Nor*_*löw 2 d debug-print memory-safety pure-function
我知道
debug writeln("Some good debug message")
Run Code Online (Sandbox Code Playgroud)
在pure功能,但我已经仔细标记为@safe或的功能@trusted呢?DMD目前不允许使用debug writeln,因为writeln目前和类似@system.这是恕我直言,非常令人沮丧.有一个聪明的方式来逃避安全还是我暂时注释掉我所有的@safe和@trusted标签?
我做的是制作我自己的@trusted debug_writeln.
@trusted void debug_writeln(T...)(T t) {
import std.stdio;
writeln(t);
}
Run Code Online (Sandbox Code Playgroud)
由于这是@trusted,它将在@safe函数内部工作而不会改变任何东西.您也可以将其称为writeln,然后不导入std.stdio或别名以强制消除歧义.