23 August 2023

C++ 核心指南目录

“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