c++ - VS2010 支持 'controlling compiler-generated functions' 吗?

标签 c++ visual-studio-2010

class NonCopyable
{
public:
    NonCopyable() = default;
    NonCopyable(const NonCopyable&) = delete;
    NonCopyable& operator=(const NonCopyable&) = delete;
};

我用VS2010试过上面的代码,编译不通过。

1>c:\temp\app1\app1\app1.cpp(12): error C2065: 'default' : undeclared identifier
1>c:\temp\app1\app1\app1.cpp(12): error C2253: 'NonCopyable' : pure specifier or abstract override specifier only allowed on virtual function
1>c:\temp\app1\app1\app1.cpp(13): error C2059: syntax error : ';'
1>c:\temp\app1\app1\app1.cpp(13): error C2238: unexpected token(s) preceding ';'
1>c:\temp\app1\app1\app1.cpp(14): error C2059: syntax error : ';'
1>c:\temp\app1\app1\app1.cpp(14): error C2238: unexpected token(s) preceding ';'
1>
1>Build FAILED.

问题> 据我所知,defaultdelete 是C++0x 的新特性。 VS2010 是否支持这些新标准?

//已更新 -- gcc 版本 4.5.2 支持它//

//gcc 版本 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4)

$ ~/Documents/C++ $ g++ -o t2 t2.cpp -std=c++0x

最佳答案

不,遗憾的是 VC2010 没有。它甚至不支持自动生成的移动构造函数。

Here is a list of C++11 features VC2010 supports.请注意,其中一些仅得到部分支持。

关于c++ - VS2010 支持 'controlling compiler-generated functions' 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8495196/

相关文章:

c++ - 检查值是否已经存在于 multimap C++ 中

c# - 如何在 Visual Studio 2010 中恢复损坏的 .csproj 文件?

.net - WPF,设计器中的 'Object reference not set to an instance of an object'

c# - 如何使用填充数组的类型对象的属性序列化类

c# - VS 2010 的功能

c++ - 如何查找给定值是否与数组中的值匹配,然后使用数组值位置从 C++ 中的第二个数组中提取值?

c++ - 如何在c++中使用迭代器的倒数第二个位置

c++ - 在编译时将两个或多个不同大小的数组合并为一个数组

c++ - 带转换的无符号/有符号整数加法

asp.net-mvc - ASP.Net MVC 3中的多项目区域