CppCoreGuidelines Con.5 用 constexpr 修饰编译时可以计算的变量
23 August 2023
“Use constexpr
for values that can be computed at compile time”
理由
提升性能。利用编译时检查。确保编译时计算。不会产生竞争条件。
例子
double x = f(2); // possible run-time evaluation const double y = f(2); // possible run-time evaluation constexpr double z = f(2); // error unless f(2) can be evaluated at // compile time
注意
查看 F.4 如果函数可以在编译期计算出结果,可以声明为 constexpr。
强化
- 标记那些用了
const
关键字修饰,但实际是通过常量表达式初始化的值。其实可以用constexpr
。