记录一下我所知的constexpr和decltype的用法,话不多说直接上代码
constexpr int re = 2;
//constexpr 由此定义的东西是一个常量表达式 如我在这里定义的re
//常量表达式:指值不会改变且在编译过程中就能得出结果的表达式
//指针和constexpr 看下面例子
const int *p = nullptr; //此处p是一个指向整型常量的指针
constexpr int *q = nullptr;//而q是一个指向整数的常量指针
//q = &re; 不能这样做 会报错q是不可修改的左值
//decltype 他的作用是返回操作对象的类型
decltype(re) a = 7; //此时a的类型是re的类型 constexpr int
//()里面的参数是什么类型 则所定义的变量就是什么类型
decltype((re)) b = a;// variable是变量的意思 若是decltype((variable))
//则b的类型将是variable的类型的引用