https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113110
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- EDG 6.5 also rejects the code: ``` <source>(21): error: more than one instance of overloaded function "compare" matches the argument list: function template "int compare(const char (&)[N], const char (&)[M])" (declared at line 8) function template "int compare(const T &, const T &)" (declared at line 14) argument types are: (const char [4], const char [4]) compare("dog", "cat"); //gcc and clang rejects while msvc accepts ^ ``` I suspect this is either a bug or an extension for MSVC.