如何解决VC++2012生成运算符=赋值和复制构造函数的错误

How to work around the VC++ 2012 bug on generating operator = assignment and copy constructor?

本文关键字:赋值 复制 构造函数 错误 运算符 何解决 解决 VC++2012      更新时间:2023-10-16

我有一个类。它有一个unique_ptr成员。

struct A
{
    std::unique_ptr<int> m;
};

以下语句应适用于

A a;
A b;
a = std::move(b);
std::swap(a, b);

然而,VC++2012在编译代码时出现了一个错误。除了用R-Value参数手动生成自己的复制构造函数和赋值运算符之外,还有什么简单的方法可以解决这个错误吗?自动生成(例如通过宏)是可以的。

不,除了宏,没有其他简单的方法可以绕过这个错误。