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

Why this simple code is giving syntax error?

#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

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

这是一个 C++11 特性,没有出现在 MSDN documentation, even for VS2013, though I think that may just be a doc error on their part - the Microsoft site for C++11 compatibility(查找 "alias templates")列表中,它在 VS2013 下可用。

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