d函数支持函数模板模板参数

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);
}

posted @ 2021-03-11 17:39  zjh6  阅读(29)  评论(0)    收藏  举报  来源