https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60994
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- Another example, with a function template: struct s { static int i; }; template <typename T> int s() { return s::i; } p.cc: In function ‘int s()’: p.cc:9:10: error: ‘s’ is not a class, namespace, or enumeration return s::i; ^ Clang and EDG accept it.