定义

常量表达式是指值不会改变并且在编译过程就能得到计算结果的表达式。

例如:

1
2
3
4
const int max_files = 20;           // max_files是常量表达式
const int limit = max_files + 1; // limit是常量表达式
int staff_size = 27; // staff_size不是常量表达式
const int sz = get_size(); // sz不是常量表达式

constexpr

C++新标准规定,允许将变量声明为constexpr类型以便由编译器来验证变量的值是否是一个常量表达式。

一般来说,如果认为一个变量是一个常量表达式,那就把它声明成constexpr类型。