C++11 constexpr和const的区别详解
1.const 用于为修饰的变量添加“只读”属性;
2.而 constexpr 关键字则用于指明其后是一个常量(或者常量表达式),
编译器在编译程序时可以顺带将其结果计算出来,而无需等到程序运行阶段,
这样的优化极大地提高了程序的执行效率。
3.C++ 11标准中,为了解决 const 关键字的双重语义问题,保留了 const 表示“只读”的语义,
而将“常量”的语义划分给了新添加的 constexpr 关键字。
因此 C++11 标准中,建议将 const 和 constexpr 的功能区分开,
即凡是表达“只读”语义的场景都使用 const,表达“常量”语义的场景都使用 constexpr。
参考:
http://c.biancheng.net/view/7807.html