-
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)