我已使用此参考链接constexpr
在 C++17 中阅读了有关内容。
然后,我制作了 C++ 程序进行测试constexpr
:
#include <iostream>
int i = 10;
int func()
{
if constexpr (i == 0)
return 0;
else if (i > 0)
return i;
else
return -1;
}
int main()
{
int ret = func();
std::cout<<"Ret : "<<ret<<std::endl;
}
但是,编译器给出一个错误:
main.cpp: In function 'int func()':
main.cpp:8:25: error: the value of 'i' is not usable in a constant expression
if constexpr (i == 0)
^
main.cpp:4:5: note: 'int i' is not const
int i = 10;
为什么会报错?