gpt4 book ai didi

c++ - 对另一个模板函数 C++ 使用函数返回

转载 作者:行者123 更新时间:2023-12-01 14:35:45 25 4
gpt4 key购买 nike

我正在尝试使用另一个函数的返回来调用模板化函数,但我似乎无法让它工作。

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?
}

最佳答案

您只能使用 constant expression对于 non-type template parameter 的值.为此,您需要将 SomeFunc 标记为 constexpr like

constexpr MYENUM SomeFunc() {
return MYENUM::X1;
}

现在可以让您将它用于模板参数,如 live example 中所示

关于c++ - 对另一个模板函数 C++ 使用函数返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63488793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com