Я пытаюсь добавить еще один аргумент шаблона к факториальному примеру метапрограммирования. Но следующее не работает. Каков правильный путь?шаблон с одним явным аргументом
Код:
#include <iostream>
template <typename T, int Depth>
inline void loop(T i){
std::cout << i;
loop<T, Depth-1>(i - 1);
}
template <typename T, int Depth>
inline void loop<T, 0>(T i){
std::cout << i << std::endl;
}
int main(void){
int i = 10;
loop<int, 3>(i);
}
Ошибка:
test4.cpp(9): error: an explicit template argument list is not allowed on this declaration
inline void loop<T, 0>(T i){
как назвать этот цикл? Я имею в виду, как должна выглядеть основная функция? –
Я получаю сообщение об ошибке, если я использую 'int main (void) { int i = 10; loop (i, std :: integ_constant {}); } 'и скомпилировать с помощью g ++ -std = C++ 14. Ошибка - глубина создания шаблона превышает 900. –
@rxu теперь код должен работать как ожидалось –