https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102039
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |24666 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This is another one where the arrays decay too fast to pointers in the argument. Or rather not fast enough: struct A{ typedef int Arr3[3]; }; template<class T> void f(const typename T::Arr3){} template<> void f<A>(const int*){} Or maybe not, I will leave this more to C++ standards expert because ICC (EDG) also rejects both of these testcases for the same reason as GCC. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24666 [Bug 24666] [meta-bug] array decaying to pointers