我知道

debug writeln("Some good debug message")

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);
}

由于这是@trusted,因此它将在@safe函数内运行而无需更改任何内容。您也可以仅将其称为writeln,然后不导入std.stdio或别名来强制消除歧义。

关于d - 使用调试语句逃避安全,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19413340/

10-11 05:17