I get spurious errors from g++ in the following cases: // case 1: int m; template< int* p> struct A { }; template<> struct A<&(m)>;
// case 2: int m; template< int* p> struct A { }; template<> struct A<(&m)>; Just a guess: is there something about the parse of '(' that gums up the works? -- Summary: Parentheses elicit spurious error: "missing '>' to terminate the template argument list" Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: widman at gimpel dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27732