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

Reply via email to