following code snipet is reducted testcase from external application. g++ and comeau online accept/reject source differently.
template < class T > struct A { }; template < class U > struct B { #if 1 typedef A< float > A; // <-- accepted by comeau but... // g++: error: declaration of typedef struct A<float> B<U>::A // g++: error: changes meaning of A from struct A<float> #else typedef ::A< float > A; // <-- accepted by g++ but... // comeau: class member typedef may not be redeclared // typedef ::A< float > A; // ^ #endif }; -- Summary: bogus 'changes meaning' error? Product: gcc Version: 4.3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pluto at agmk dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38764