本文主要是介绍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
这篇关于C++(20):consteval的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!