Aplique a primeira função válida de um conjunto de N funções

Esta resposta anterior mostra como aplicar a função com base na validade de uma chamada:Aqu. No entanto, isso se aplica a duas funções. Eu queria saber se o conceito poderia ser generalizado paraNunções usando truques de programação de modelos inteligentes, em C ++ 1

O problema é o seguinte

template <std::size_t N, class... X>
/* [Return type] */ apply_on_validity(X&&... x)
{
    // Tricks here
}

// The function would be equivalent to a hypothetical
// template <std::size_t N, class... F, class... Args>
// [Return type] apply_on_validity(F&&... f, Args&&... args)
// where N = sizeof...(F) is the number of functions

No lado da execução:

apply_on_validity<3>(f1, f2, f3, a, b, c, d, e);

Seria

ligarf1(a, b, c, d, e) se a expressão for válida, caso contrárioligarf2(a, b, c, d, e) se a expressão for válida, caso contrárioligarf3(a, b, c, d, e) se a expressão for válida, caso contráriofazer nad

E, em todos os casos, retornaria o resultado da função que foi executad

No lado de chamada, o parâmetro do modelo3 indica o número de funções que foram especificada

É factível em C ++ 14 e, em caso afirmativo, com

questionAnswers(5)

yourAnswerToTheQuestion