I think g++ incorrectly rejects the following code when compiled with -std=c++0x: template struct X {}; X 2)> x; // t.cpp:2: error: template argument 1 is invalid // t.cpp:2: error: invalid type in declaration before ‘;’ token For comparison, here is very similar code that is accepted: template struct Y {}; Y 2)> y; Hence, I suspect it is a problem with decltype. -- Summary: [c++0x] misinterpreted closing angle bracket in decltype operand Product: gcc Version: 4.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc-bugzilla at contacts dot eelis dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37875