Here testcase: namespace foo { struct bar {}; } void f(foo::bar::bar &) {} ------------------------------
As you can see instead of foo::bar I wrote foo::bar::bar, but >g++ -c -Wall test.cpp && echo "ok" ok >g++ --version g++ (GCC) 4.1.2 (Gentoo 4.1.2 p1.0.2) Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. compiler from M$ VC++ 2005 and Comeau online found errors in this code -- Summary: accept invalid: double class name Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: dushistov at mail dot ru http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36306