1、常量表达式是指值不会改变并且在编译过程就能得到计算结果的表达式,如下:
const int max_i = 5; //max_i 是常量表达式
int max_i = 5 //max_i不是常量表达式
const int max_i = get_size(); //max_i不是常量表达式,因为其具体值只有在运行时才能获取到
2、constexpr变量
声明为constexpr的变量一定是一个常量,而且必须要用常量表达式初始化:
constexpr int mf = 20; //20是常量表达式(20是常量)
constexpr int sz = size(); //只有当size(0是一个constexpr函数,才是一条正确的声明语句。