Only the first message is relevant. The parser seems to think that it is in an expression and "<" is a relational operator rather than the bracket in front of a template parameter for the member template function "MMIOize". Note that if the expression is broken in two (the previous two lines) then it parses OK. I've tried to write something short that mimics the problem but no luck.
-- Summary: parse error Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: igodard at pacbell dot net http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30548