C++(20):consteval
通过constexpr修饰的函数,如果传递了非常量表达式参数,那么函数将退化为普通函数,可以参考:
C++(14):constexpr函数_风静如云的博客-CSDN博客
C++20增加了关键字 consteval,强制要求只能使用常量表达式参数:
#include <iostream>
using namespace std;
consteval int doPow(int a, int b)
{
int m = 1;
for(auto i = 0; i < b; ++i)
{
m = m * a;
}
return m;
}
int main()
{
int n = doPow(2, 4);
cout<<n<<endl;
//doPow(n, n); //编译报错,不允许使用变量参数
return 0;
}
运行程序输出:
16