Може трохи тупе питання, але в чому прикол темплейтного метапрограмування, якщо я не можу зробити так? Навіть якщо я знаю всі допустимі n
cin >> n;
cout<<Fib<n>::val;
Если вкратце:
1) кодогенерация. Сильно экономит твой труд и избавляет от нужды плодить лишний код;
2) вычисления на этапе компиляции. Видел разок пример использования символьного дифференцирования на темплейтах, ну, как пример;
3) за счет приколов типа if constexpr, std::enable_if, sfinae, concepts и т.п. можно писать очень гибкий код;
4) deduction guides - просто топчик, очень радовался, когда первый раз увидел.
Повникай немного, найдешь много интересного