C++11精进:从运行期转到编译期

概述

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年的大作。

你可能感兴趣的:(C++11精进:从运行期转到编译期)