SFINAE
A regra do C++ segundo a qual um template que se torna inválido depois da substituição dos tipos é descartado em silêncio do conjunto de candidatos, em vez de interromper a compilação.
A regra existia originalmente para que a resolução de sobrecarga se comportasse de forma sensata, mas logo se descobriu que servia como ferramenta de interrogatório: escreve-se um template que só pode ser instanciado se um tipo tiver certa propriedade e deixa-se o compilador escolher a única sobrecarga que sobrevive. Daí nasceram o std::enable_if, toda a biblioteca de type traits e uma geração de código que decidia em tempo de compilação se um tipo tinha um método begin(). Funcionava, mas o idioma era tortuoso e um único deslize produzia telas de erros explicando por que nenhum candidato servia. O C++20 praticamente aposentou a técnica com os concepts e o requires, que dizem a mesma coisa às claras.