В С++ символы '<' и ' > ' используются для сравнения, а также для обозначения аргумента шаблона. Таким образом, фрагмент кода
[...] Foo < Bar > [...]
может быть интерпретирован как любой из следующих двух способов:
- Объект типа Foo с аргументом шаблона Bar
- Сравните Foo с Bar, затем сравните результат с тем, что будет дальше.
Как синтаксический анализатор компилятора С++ эффективно решает эти две возможности?