D 可以将'T'转换为'ref T'吗?

D 可以将'T'转换为'ref T'吗?,d,D,test1没有变异i,这告诉我它没有捕获i作为参考。ref是不能以这种方式使用的特殊限定符吗?: 尽管有些关键字既可以用作类型限定符,也可以用作存储类,但有些存储类不能用于构造新类型。一个例子是ref alias refT(T) = ref T; void test1(refT!int v){ v = 42; } void test2(ref int v){ v = 42; } void main() { import std.stdio; int i = 5

test1
没有变异
i
,这告诉我它没有捕获
i
作为参考。
ref
是不能以这种方式使用的特殊限定符吗?

尽管有些关键字既可以用作类型限定符,也可以用作存储类,但有些存储类不能用于构造新类型。一个例子是ref

alias refT(T) = ref T;
void test1(refT!int v){
    v = 42;
}

void test2(ref int v){
    v = 42;
}

void main()
{
    import std.stdio;
    int i = 5;
    test1(i);
    writeln(i); // 5
    test2(i);
    writeln(i); // 42
}