Variadic templates and Fibonacii sequence

This time I'll continue to explore variadic templates. As I mentioned from previous blog variadic templates gives the ability to create compact, type-safe code, which does job at the compile time. No runtime surprises!
Let see how variadic templates can help to create a Fibonacii sequence, a sequence which is evaluated, calculated at the compile time. Program will not use any traditional loop constructs like "for", "while" or conditional operators, because these expressions are runtime expressions and not applicable to metaprogramming. I'll use the same "for_each" function mentioned in previous blog:
indexes.h
for_each.h

and I'll add fibonacii sequence generator:
fibonacii.cpp

Here tuple does a great job. It holds a list of different types: Fib<0>, Fib<1>, Fib<2> ..., but these different data types has constant integer with the same name: "value". So it is very tempting to iterate through tuple elements and do something interesting with those "values".