2310d编译不过

struct A
{
    this(int[] data) @safe { a = data; }
    int[] a;
}

void main() @safe
{
    int[3] test = [1, 2, 3];
    A a = A(test);
}

应该给data参数加上return scope.或让构造器为模板参数来推导,否则,构造器可以把栈分配切片赋值给全局变量.

你可能感兴趣的:(dlang,d,d)