https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116888
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |diagnostic --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #2) > I think this is "ill-formed; no diagnostic required". Note we reject: ``` template <class T> void d() {} template <class T> struct Test1 { template <class U, class = void> struct Helper {}; template <class U> struct Helper<U, decltype(d<T>(1))>{}; }; Test1<int>::Helper<int, int> a; ``` With an odd message though: ``` <source>:10:32: error: aggregate 'Test1<int>::Helper<int, int> a' has incomplete type and cannot be defined ``` So there is at least a diagnostic issue here.