Jaskamal Kainth

Template Metaprogramming - Fibonacci

Template metaprogramming is a technique in C++ that uses templates to perform computations at compile time.

Fibonacci Implementation

The Fibonacci sequence can be implemented using template metaprogramming:

template<int N>
struct Fibonacci {
    static const int value = Fibonacci<N-1>::value + Fibonacci<N-2>::value;
};

// Base cases
template<>
struct Fibonacci<0> {
    static const int value = 0;
};

template<>
struct Fibonacci<1> {
    static const int value = 1;
};

This implementation computes Fibonacci numbers at compile time, making runtime computation unnecessary. The template specializations for N=0 and N=1 serve as base cases to terminate the recursion.

Using this implementation, Fibonacci<10>::value would give you the 10th Fibonacci number, all calculated during compilation.