c++11新标准规定,允许将变量声明为constexpr类型以便由编译器来验证变量的值是否是一个常量表达式。
例如输入以下代码:
int func()
{
return 5;
}
int main()
{
int a[func()];
return 0;
}
编译时会发生以下错误;
这是因为编译阶段会判断数组初始化参数是否是常数,用constexpr后代码如下:
constexpr int func()
{
return 5;
}
int main()
{
int a[func()];
return 0;
}
编译通过