Рассчёт массива чисел Фибоначчи в compile-time C++
На примере задачи о числах Фибоначчи хочу освоить программирование на плюсовых шаблонах. Задача - найти n-ное число Фибоначчи. Когда n известно, никаких проблем нет, решение понятно:
template<int n>
class Fibonacci {
public:
static const int value = Fibonacci<n-1>::value + Fibonacci<n-2>::value;
};
template<>
class Fibonacci {
public:
static const int value = 1;
};
template<>
class Fibonacci {
public:
static const int value = 1;
};
Но n в момент компиляции неизвестно, известно лишь, что оно не больше 45. Поэтому я хотел бы насчитать все числа до 45-го и забить в массив, а потом выдать n-ное. Как это реализовать на шаблонах или constexpr?