现代 C++ 编译器遵循 "替换失败不是错误" (S.F.I.N.A.E.) 原则,在这种情况下,编译器会静默地从考虑中排除失败的专门化,而不会产生编译错误。
有关 S.F.I.N.A.E. 原则的更多信息(包括交互式示例)