好像无法区分 vector<int> 和 a<b 这两种情况啊
感觉这种需求无法低成本地实现。
在这里,区分 less than 操作符和 template instantiation,需要依赖上下文。没有一个完整的 C++ 语法解析器是做不到的(甚至有的时候,需要引入额外关键字才能避免这种歧义)。
C++ 最早加入这个功能的时候,连编译器都无法分辨二义性(不过那个是泛型和 >> 的二义性),在后来编译器实现这个分析之前,嵌套的泛型参数得这样写 vector<vector<int> >
(中间有个空格)