constexpr是C++11引入的关键字,为什么在有const关键字的基础上要引入constexpr呢?它们二者有什么区别呢?
简介
C++编译时可确定常量表达式的结果,因此可在编译时优化。
C++规范在一些地方要求使用常量表达式,如声明数组的维数。但常量表达式不允许包含函数调用或者对象构造。因此下述代码无效:
int get_five() {return 5;}
int some_value[get_five() + 7]; // 创建包含12个整数的数组. C++03中非法,因为get_f