https://docs.microsoft.com/zh-cn/cpp/cpp/explicitly-defaulted-and-deleted-functions?view=msvc-160
class DataOnly {
public:
DataOnly () // 默认构造函数
~DataOnly () // 默认析构函数
DataOnly (const DataOnly & rhs) // 默认拷贝构造函数
DataOnly & operator=(const DataOnly & rhs) // 默认赋值函数
DataOnly (const DataOnly && rhs) // C++11, 移动构造函数
DataOnly & operator=(DataOnly && rhs) // C++11, 移动拷贝函数
};
类不可复制的通用写法
struct noncopyable
{
noncopyable() =default;
noncopyable(const noncopyable&) =delete;
noncopyable& operator=(const noncopyable&) =delete;
};