import std.stdio;
struct C(D){
D d;
}
void f(alias A,B)(A!B a){
writeln(a.d);
}//A,却是可以
void main()
{
C!int a;
C!long b;
a.d=20;
b.d=10;
//f!(C,int)(a);
//f!(C,long)(b);
f(a);
f(b);
}
betterC
版也可以:
import core.stdc.stdio;
extern(C):
struct C(D){
D d;
}
void f(alias A,B)(A!B a){
printf("%i\n",a.d);
}