C++11 constexpr和const的区别详解

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


版权声明:本文为weixin_41167925原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。