我希望使用C++11使我的类不可复制,在私有继承boost::noncopyable
之前。在C++11中,我实现了以下内容:
class Foo
{
public:
Foo(const Foo&) = delete;
Foo& operator=(const Foo&) = delete;
};
随着这个变化,使用VS 2013编译客户端代码时会出现以下错误:
..\main.cpp(9): error C2512: 'Foo' : no appropriate default constructor available
我的客户端代码非常简单:
int main()
{
Foo foo;
}
在我的情况下,有没有任何C++11规则会隐式删除默认构造函数?
Foo() = default;
。 - undefined