template<int N>
struct foo {
template<int M>
void f(int i){}
};
template<int N>
void bar() {
foo<N> m;
m.f<1>(1); // line A
}
int main(){
bar<1>();
foo<1> n;
n.f<1>(1); // line B
return 0;
}
GCC 将A 行中的小于<
运算符视为B 行中的小于运算符。
是否有某种“宽松模式”,GCC 可以像 MSVC 那样处理 A 行,这样我就不必写了m.template f<1>(1)
?