我有一堂课。它有一个 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 参数手动生成自己的复制构造函数和赋值运算符之外,还有什么简单的方法可以解决这个错误?自动生成(例如通过宏)很好。
我有一堂课。它有一个 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 参数手动生成自己的复制构造函数和赋值运算符之外,还有什么简单的方法可以解决这个错误?自动生成(例如通过宏)很好。