$ cat >test.cxx template <typename x> struct s { struct t { enum v { a, b }; }; t::v m_; };
$ g++ -v Reading specs from /usr/local/lib/gcc/i686-pc-linux-gnu/3.4.3/specs Configured with: ./configure --enable-languages=c,c++ --enable-shared --with-system-zlib --enable-nls --program-suffix=-3.4 --enable-__cxa_atexit --enable-libstdcxx-allocator=new --enable-clocale=gnu --enable-libstdcxx-debug --disable-werror Thread model: posix gcc version 3.4.3 20041101 (prerelease) $ g++ -c test.cxx test.cxx:9: error: expected `;' before "m_ -- Summary: unnecessary typename expected Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: boris at kolpackov dot net CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i686-linux-gnu GCC host triplet: i686-linux-gnu GCC target triplet: i686-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18304