【发布时间】:2011-10-29 03:47:06
【问题描述】:
在 VS 2010 SP1 中,如下:
class Foo
{
public:
Foo() { }
Foo(Foo const&) = delete; // Line 365
Foo& operator=(Foo const&) = delete; // Line 366
};
不编译。它抱怨:
CPPConsole.cpp(365):错误 C2059:语法错误:';'
CPPConsole.cpp(365): 错误 C2238: ';'之前的意外令牌
CPPConsole.cpp(366):错误 C2059:语法错误:';'
CPPConsole.cpp(366): 错误 C2238: ';' 前面的意外标记
这还不支持吗?奇怪的是,Intellisense 似乎可以识别这个结构。它说“IntelliSense: function "Foo::operator=(const Foo &)"(在第 366 行声明)不能被引用——它是一个已删除的函数”
我错过了什么?
【问题讨论】:
标签: c++11 copy-constructor assignment-operator