举一个c++元编程的例子
时间: 2024-01-22 15:18:22 浏览: 30
一个简单的C++元编程例子是计算斐波那契数列。下面是代码示例:
```cpp
template <int n> struct Fibonacci {
static const int value = Fibonacci<n-1>::value + Fibonacci<n-2>::value;
};
template <> struct Fibonacci<1> {
static const int value = 1;
};
template <> struct Fibonacci<0> {
static const int value = 0;
};
int main() {
cout << Fibonacci<6>::value << endl; // 输出8
return 0;
}
```
在这个例子中,我们使用了C++的模板机制来实现斐波那契数列的计算。我们定义了一个Fibonacci模板类,它有一个整数参数n,表示要计算的斐波那契数列的第n项。根据斐波那契数列的递推公式,我们定义了Fibonacci<n>::value为Fibonacci<n-1>::value加上Fibonacci<n-2>::value的和。同时,我们还定义了Fibonacci<1>::value和Fibonacci<0>::value,它们分别表示斐波那契数列的第一项和第二项。
在main函数中,我们调用了Fibonacci<6>::value来计算斐波那契数列的第6项,并输出结果8。这个例子展示了C++元编程的基本思想:通过模板机制,我们可以在编译时进行计算,以避免运行时的开销。