Почему такое не работает?
#include <cstdio>
template <int n, int a>
int fact()
{
return fact <n-1, a*n> ();
}
template <>
int fact <1, int a> ()
{
return a;
}
int main()
{
printf("%d\n", fact <5, 1> ());
}
Можно конечно засунуть int a в параметры ф-ии, а не шаблона, но хочется знать, как сделать, что бы такое работало. В чисто образовательных целях.