Visual C ++ - decltype作为类模板的成员函数的返回类型

时间:2015-08-05 21:27:51

标签: c++ visual-studio templates visual-studio-2013 decltype

代码

template <typename T>
struct Foo
{
    int x_;

    int x() const;
};

int a;

template <typename T>
decltype(a) Foo<T>::x() const
{
    return x_;
}

int main()
{
}

在Visual Studio 2013中生成以下错误:

1>...\source.cpp(15): error C2244: 'Foo<T>::x' : unable to match function 
definition to an existing declaration
1>          ...\source.cpp(6) : see declaration of 'Foo<T>::x'
1>          definition
1>          'unknown-type Foo<T>::x(void) const'
1>          existing declarations
1>          'int Foo<T>::x(void) const'

但在Coliru's GCC上编译正常。此外,它在VS中编译为非模板类​​。我想这是由于Visual Studio的不完整性,如果确实如此,我确定其原因已经有了它的名字。我只是用我粗鄙的术语找不到它。发生了什么事?

0 个答案:

没有答案