Deduzir parâmetro de modelo não-tipo
possível deduzir um parâmetro de modelo não-tipo de um parâmetro de função de model
Considere este modelo simples:
template <int N> constexpr int factorial()
{
return N * factorial<N - 1>();
}
template <> constexpr int factorial<0>()
{
return 1;
}
template <> constexpr int factorial<1>()
{
return 1;
}
Gostaria de poder mudarfactorial
para que eu possa alternativamente chamar assim:
factorial(5);
e deixe o compilador descobrir o valor de N em tempo de compilação. Isso é possível? Talvez com alguma adição sofisticada de C ++ 11?