Функция constexpr должна состоять только из оператора return и каждый аргумент должен быть известен во время компиляции:
// constexpr functions use recursion rather than iteration
constexpr int factorial(int n)
{
return n <= 1 ? 1 : (n * factorial(n-1));
}
Почему только оператор return? Я имею в виду, почему это неправильно?
// constexpr functions use recursion rather than iteration
constexpr int factorial(int n)
{
int a = 222; //another variable
return n <= 1 ? 1 : (n * factorial(n-1));
}