https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91418
Harald van Dijk <harald at gigawatt dot nl> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |harald at gigawatt dot nl --- Comment #2 from Harald van Dijk <harald at gigawatt dot nl> --- The `auto` also is not part of it. An even simpler example: class A { void func(); }; void A::func() { class B { B() {} friend class A; }; B(); } was accepted in GCC 3.4, but started getting rejected in GCC 4.0. It works with `friend class ::A;` or `friend A;` (the latter since GCC 4.7+). MSVC and clang do accept it with `friend class A;`, but Intel agrees with GCC.