为什么这个简单的代码会出现语法错误?

时间:2015-01-07 02:15:08

标签: c++ visual-studio c++11 decltype

#include <iostream>
using namespace std;


void fun(int i)
{
    cout<<"Called with int "<<i;
}

void main()
{
    using df = decltype(&fun);
}

我在Visual Studio中遇到了以下语法错误,

Error   1   error C2143: syntax error : missing ';' before '='  c:\users\kpranit\documents\visual studio 2012\projects\sample\sample\sample.cpp 12

Error   2   error C2873: 'df' : symbol cannot be used in a using-declaration    c:\users\kpranit\documents\visual studio 2012\projects\sample\sample\sample.cpp 12

1 个答案:

答案 0 :(得分:3)

Visual Studio 2012,根据您的项目目录,是您正在使用的目录,不支持类型别名。

它是一个C ++ 11功能,并且不会在MSDN documentation中出现,即使对于VS2013,尽管我认为这可能只是他们的文档错误 - {{3} }(查找&#34;别名模板&#34;)将其列为在VS2013下可用。

因此,如果您想使用该功能,您可能需要升级到更高版本的编译器。