有可能吗?我希望这样可以启用参数的编译时传递。假设它只是为了用户方便,因为总是可以使用来键入实型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>();
}
MMTTMM
相关分类