gpt4 book ai didi

c++ - 禁止复制操作是否自动禁止 move 操作?

转载 作者:太空狗 更新时间:2023-10-29 20:22:08 25 4
gpt4 key购买 nike

<分区>

我想编写一个没有任何复制和 move 语义的 C++ 类:我只对它的构造函数和析构函数感兴趣。

我使用 C++11 的 =delete 语法禁用了复制操作(即复制构造函数和复制赋值运算符)显式,例如:

class MyClass 
{
public:
MyClass() { /* Init something */ }
~MyClass() { /* Cleanup something */ }

// Disable copy
MyClass(const MyClass&) = delete;
MyClass& operator=(const MyClass&) = delete;
};

作为测试,我尝试在类实例上调用 std::move(),似乎没有自动生成 move 操作,因为 Visual Studio 2015 C++ 编译器会发出错误消息。

这是 MSVC 2015 特有的行为,还是 C++ 标准规定通过 =delete 复制操作自动禁用 move 构造函数和 move 赋值?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com