【发布时间】:2011-04-11 22:08:39
【问题描述】:
有可能吗?我希望它能够在编译时传递参数。假设它只是为了用户方便,因为总是可以用template<class T, T X> 输入真实类型,但是对于某些类型,即指向成员函数的指针,即使使用decltype 作为快捷方式,它也是相当乏味的。考虑以下代码:
struct Foo{
template<class T, T X>
void bar(){
// do something with X, compile-time passed
}
};
struct Baz{
void bang(){
}
};
int main(){
Foo f;
f.bar<int,5>();
f.bar<decltype(&Baz::bang),&Baz::bang>();
}
是否有可能将其转换为以下内容?
struct Foo{
template<auto X>
void bar(){
// do something with X, compile-time passed
}
};
struct Baz{
void bang(){
}
};
int main(){
Foo f;
f.bar<5>();
f.bar<&Baz::bang>();
}
【问题讨论】:
-
@GMan:更新,希望现在更有意义。 :)
标签: c++ templates type-inference