https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103564
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Hmm, this is not really concept related, because GCC/ICC/MSVC all accept the following too: struct base { }; template<class T> void f(void) { typename T::base a; }; int main(void) { f<base>(); } --- CUT ---- While clang rejects it. Maybe there is defect report in this area.