gpt4 book ai didi

c++ - 是否有 std::noncopyable (或等价物)?

转载 作者:IT老高 更新时间:2023-10-28 22:02:17 29 4
gpt4 key购买 nike

有一个 boost::noncopyable我的图书馆里有我自己的不可复制的类。在最新的 C++ 标准中是否存在 std::noncopyable 或等效项?

这是一件小事,但从这样一个类派生出来的意图更加清晰。

最佳答案

不,因为有一种标准方法可以使类不可复制:

class MyClass
{
MyClass(const MyClass&) = delete;
MyClass& operator=(const MyClass&) = delete;
}:

但是,一个不可复制的类可以通过重载 MyClass&& 的构造函数来移动。

使类不可复制的声明(上)可以在公共(public)或私有(private)部分。

如果您真的不想每次都输入所有内容,您可以随时定义一个宏,例如:

#define NONCOPYABLE(Type) Type(const Type&)=delete; Type& operator=(const Type&)=delete

class MyClass
{
NONCOPYABLE(MyClass);

// etc.
};




关于c++ - 是否有 std::noncopyable (或等价物)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31940886/

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