// C++ 元编程示例:编译期计算阶乘
#include <iostream>
// 递归模板,用于编译期计算阶乘
template<int N>
struct Factorial {
static const int value = N * Factorial<N - 1>::value;
};
// 终止条件,当 N == 0 时,返回 1
template<>
struct Factorial<0> {
static const int value = 1;
};
int main() {
// 在运行时输出编译期计算的阶乘结果
std::cout << "Factorial of 5 is " << Factorial<5>::value << std::endl;
return 0;
}
Factorial 是一个模板结构体,它在编译期通过递归的方式计算阶乘。Factorial<N> 的 value 成员变量等于 N * Factorial<N-1>::value。Factorial<0> 是一个特化版本,用于终止递归,定义 value 为 1。main 函数中,我们通过 std::cout 输出编译期计算的结果。这个例子展示了 C++ 元编程的基本概念,即利用模板机制在编译期进行计算。
上一篇:c++随机数怎么生成
下一篇:c++动态数组怎么定义
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站