The code in question: ==== begin ==== struct C { template <typename T> void f() {} };
template <typename T> void ff() { C c; c.f(); } ==== end ==== g++ 3.3 (version 3.3.5, Debian 1:3.3.5-2) cannot compile the above code. With command line "g++-3.3 -c -o a.o a.cc", it displays the following error messages: a.cc: In function `void ff()': a.cc:9: error: parse error before `>' token The above code compiles fine in g++ 3.4 (version 3.4.2, Debian 3.4.2-3). What interesting is if the member function and the free function above have same name, g++ 3.3 compiles the code without problem. And the code generated seems to be fine. -- Summary: error in parsing function template Product: gcc Version: 3.3.5 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: zhaojiangbin at yahoo dot com CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18497