C++ Language/Templates/Traits/SfinaeConditionalCompilation
Modern C++ compilers follow the "Substitution Failure is not an Error" (S.F.I.N.A.E.) principle, whereby the compiler silently eliminates a failed specialization from consideration, without that generating a compilation-error.
Additional information about the S.F.I.N.A.E. principle (includes interactive examples)