In the attached code, the parser gets confused by a use of operator< in the body of a function template. If the operator is changed (to ">" or "==" for example) the code compiles. I've not been able to figure out why it thinks it's in a constant expression. Changing the variable names involved doesn't make a difference, so it doesn't see to be a consequence of name clashes.
Ivan -- Summary: lost parser Product: gcc Version: 3.4.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: igodard at pacbell dot net CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20308