В этом конкретном фрагменте кода я понимаю, что это будет > >>
. Синтаксический анализатор является жадным и будет пытаться связать как можно больше в каждый отдельный токен. Когда встречается первый >
, правило контекста будет диктовать, что это полный токен и что он не должен пытаться анализировать больше, но один раз он находится вне контекста аргументов шаблона, он будет анализировать остальные, следуя общим правилам, как если бы это было X<int> >>
или
typedef X<int> X_int;
X_int >> 1;