Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将函数return用于另一个模板函数C++;_C++_Templates_Enums - Fatal编程技术网

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;
}
现在可以将其用于模板参数,如图所示