• Q: How does Cpp2 parse things that seem ambiguous? For example, template-argument has the two productions expression and id-expression, and wouldn't an identifier match both of those? Or what about a<b,c>d, doesn't that depend on whether a is a template or a comparable object?
  • A: First match wins, there are no comma-expressions, and a relational comparison in a template-argument must be parenthesized
  • (*) Template <> syntax, other options considered
  • (**) Why <>, make parsing today's C++ hard
  • (***) Parsing issues in today's C++
  • Basic vexing parse example (today's C++, not Cpp2)
  • Thomas Neumann's templates-and-commas parse change example (today's C++, not Cpp2)