18 October 2023

C++ 核心指南目录

“Use constexpr functions to compute values at compile time”

理由

函数是最显著、最普通的方式表达值的计算过程。 constexpr 函数经常意味着更少的编译时开销。

注意

大部分“trait”技术已经通过这些方式替代掉了:

  • 由模板别名计算出类型
  • constexpr 函数计算出值

例子

template<typename T>
    // requires Number<T>
constexpr T pow(T v, int n)   // power/exponential
{
    T res = 1;
    while (n--) res *= v;
    return res;
}

constexpr auto f7 = pow(pi, 7);

强化

  • 标记模板元编程计算出值的情况。这些应该通过 constexpr 函数来实现。