constexpr

首先看下const:
const int a = 3  变量 a 为常量表达式
const int b = a + 1 变量b为常量表达式
const int c = size() 变量c不为常量表达式
从上面的例子可以看出,采用const限定的变量不一定为常量表达式。
而在我们的C++的语法中,有些地方必须为常量表达式,故提供了constexpr让编译器来判断该变量是不是常量表达式.
constexpr int mf = 20; 编译通过
constexpr int limit = mf + 1; 编译通过
constexpr int sz = size(); 如果size()为constexpr函数则可以编译通过,否则报错

constexpr与指针:

const int *p         指向一个const int型变量
constexpr int* p  p本身是const的

你可能感兴趣的:(constexpr)