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