template
struct Fibonacci {
	enum { value = Fibonacci::value + Fibonacci::value };
};

template<>
struct Fibonacci<1> {
	enum { value = 1 };
};

template<>
struct Fibonacci<2> {
	enum { value = 1 };
};

int main() {
	cout << Fibonacci<5>::value << endl;
}