我最近尝试了解C ++ 11中的默认和删除函数,我编写了下面的示例代码。当我尝试运行时说:
错误C2065:'default':未声明的标识符
守则:
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
struct A
{
int age;
A(int x): age(x){};
A() = default;
};
int _tmain(int argc, _TCHAR* argv[])
{
A test(10);
cout << test.age << endl;
return 0;
}
答案 0 :(得分:7)
您似乎正在使用Microsoft Visual Studio。很抱歉,即使在新版本VC11中,Microsoft编译器也不允许这种新语法。
检查可用功能列表here。您将看到默认和删除的功能尚不可用。
答案 1 :(得分:1)
使用MSVC ++编译器does not support默认和删除函数的Visual Studio。你需要使用类似MinGW's G ++的东西。