不要理解g ++ - 4.8的行为

时间:2017-01-17 04:09:28

标签: c++ templates g++

我在类T的函数foo中遇到问题。我认为,GCC没有解决类型项,它认为" item.foo< 0>()"是合乎逻辑的表达。

为什么编译器在解析类型之前检查表达式。

MSVC在Windows上运行良好。

template<class TType>
class A
{
public:
    template<int TNum>
    void foo()
    {}
};


template<class TType>
class T
{
public:
    void boo()
    {
        A<TType> item;
        item.foo<0>(); // error: expected primary-expression before ‘)’ token
    }
    void foo()
    {
        A<int> item;
        item.foo<0>(); // OK!
    }
};

0 个答案:

没有答案