Substitution-Failure-Is-Not-An-Error (SFINAE) is decribed in CppTemplatesTheCompleteGuide p.106 and also in CppCommonKnowledge Item 59 p.217.
This [...] principle is clearly an important ingredient to make the overloading of function templates practical.
There is also a page on this on WikiPedia:
One of the CeePlusPlusIdiomsThis page may not reflect changes in C++11(CeePlusPlusEleven) and C++14(CeePlusPlusOneWhy).