我知道
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/