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

4

0 回答 0