#include template class Fib : Fib{ public: const static long n = Fib::n + Fib::n; }; template <> class Fib<1>{ public: const static long n{1}; }; template <> class Fib<0>{ public: const static long n{1}; }; int main() { std::cout<< Fib<52>::n << "\n"; return 0; }