概述
C++11提供了新的机制,可以让程序员将代码从运行期执行转到编译期执行,为程序提供优化途径。
constexpr
大多数人可能听说过constexpr,这个新的关键字指示编译期在编译期间执行代码并获得常量值,这样变量或函数可以用在常量表达式中。
constexpr可以用于修饰对象,也可以修饰函数,包括两种:
- constexpr Objects:一个constexpr对象是常量,而且它的值在编译期间可知。
- constexpr Functions:意思差不多是如果你使用constexpr变量在constexpr上下文中使用,它会给你返回一个constexpr对象。但实际使用起来会有一些微妙的地方,
两者相当不同。
constexpr Objects
参考资料
[1] 《Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14(英语)》,Scott Meyers在2015年的大作。
网友评论