Construtor variadic de fallback - por que isso funciona?

Ao responderessa questão sobre a tentativa de construir um construtor de referência de encaminhamento variável que só deve ser chamado se nenhum outro construtor for válido. Ou seja, se houvesse:

C(const char*, size_t) { }                     // 1
template <typename... T, ???> C(T&&... ) { }   // 2

Nós gostaríamosC c1{"abc", 2}; chamar (1), apesar da conversão necessária, masC c2{1, 2, 3}; para chamar (2), pois (1) não pode ser aplicado.

Propus a seguinte solução:

template <typename... T,
          typename = std::enable_if_t<!std::is_constructible<C, T&&...>::value>
           >
C(T&&... ) { }

E por proposta, quero dizer, eu tentei e fiquei surpreso ao descobrir que realmente funciona. Ele compila e faz exatamente o que eu esperava no gcc e no clang. No entanto, não sei explicarporque funciona ou mesmo se é realmentesuposto trabalhar e gcc e clang estão sendo particularmente confortáveis. É isso? Por quê?

questionAnswers(1)

yourAnswerToTheQuestion