d安全可以调用系统

原文

void foo(void delegate() @system dg) @safe {
   int *bar;
   @system void corrupt() { bar = cast(int *)0xdeadbeef;}
   dg = &corrupt;
   // 可调用dg吗?
}//dip1000都可编译

是的,你可以!:

void main() @safe
{
    void delegate() @system dg = () @system { /* 危险动作*/ };
}
posted @ 2022-06-22 09:03  zjh6  阅读(15)  评论(0)    收藏  举报  来源