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?

questionAnswers(6)

yourAnswerToTheQuestion