模板元编程,斐波那契数列
定义一个模板结构体,模板参数是个常量,结构体有个成员 v,用于存储斐波那契数。
1 | template<int N> |
注意, constexpr 用于声明一个常量表达式,明确告知编译器,该表达式可以在编译时期计算出结果。
然后针对 Fib<1> 和 Fib<2> 进行模板特化
1 | template <> |
然后 Fib<N>::v
就是编译期确定的斐波那契数。
下面是完整的例子
1 |
|
定义一个模板结构体,模板参数是个常量,结构体有个成员 v,用于存储斐波那契数。
1 | template<int N> |
注意, constexpr 用于声明一个常量表达式,明确告知编译器,该表达式可以在编译时期计算出结果。
然后针对 Fib<1> 和 Fib<2> 进行模板特化
1 | template <> |
然后 Fib<N>::v
就是编译期确定的斐波那契数。
下面是完整的例子
1 |
|