C++ 将函数return用于另一个模板函数C++;
我试图使用另一个函数的返回来调用一个模板函数,但我似乎无法让它工作C++ 将函数return用于另一个模板函数C++;,c++,templates,enums,C++,Templates,Enums,我试图使用另一个函数的返回来调用一个模板函数,但我似乎无法让它工作 enum class MYENUM { X1,X2 }; MYENUM SomeFunc() { return MYENUM::X1; } template<MYENUM T> void ENUMFunc() { //do something } int main() { ENUMFunc<MYENUM::X1>(); //works ENUMFunc<
enum class MYENUM {
X1,X2
};
MYENUM SomeFunc() {
return MYENUM::X1;
}
template<MYENUM T>
void ENUMFunc() {
//do something
}
int main() {
ENUMFunc<MYENUM::X1>(); //works
ENUMFunc<SomeFunc()>(); //error?
}
enum类MYENUM{
X1,X2
};
MYENUM SomeFunc(){
返回MYENUM::X1;
}
模板
void ENUMFunc(){
//做点什么
}
int main(){
ENUMFunc();//有效
ENUMFunc();//错误?
}
只能将a用于a的值。要得到它,您需要将SomeFunc
标记为constexpr
like
constexpr MYENUM SomeFunc() {
return MYENUM::X1;
}
现在可以将其用于模板参数,如图所示