我编写了这段代码来获取指针传递的函数的类型:
import std.stdio;
import std.traits;
void main()
{
get_param_types(&f1,"f1");
get_param_types(&f2,"f2");
get_param_types(&f3,"f3");
}
void get_param_types(f_t)(f_t f, string f_id){
writeln("get_param_types ");
alias ParameterTypeTuple!(f) ptt;
writeln(f_id, " has ", ptt.length, " parameters");
static if (ptt.length){
write("( ");
foreach (pt; ptt){
write(typeid(pt), " ");
}
writeln(")");
}
}
void f1() { }
void f2(int x) { }
void f3(int x, double y, string z) { }
我的疑问是:1:get_param_types
在编译时完全评估?
如果没有:2:我怎样才能做到这一点?
当我在做的时候...... 3:有没有办法避免传递字符串(例如)并在编译时"f1"
从内部推断它们?get_param_types