我有一堂课。它有unique_ptr的成员。如何解决生成操作符=赋值和复制构造函数的VC++ 2012错误?
struct A
{
std::unique_ptr<int> m;
};
和下面的语句应该工作
A a;
A b;
a = std::move(b);
std::swap(a, b);
然而,VC++ 2012在编译的代码中的错误。除了用R-Value参数手动生成你自己的拷贝构造函数和赋值运算符之外,是否有任何简单的方法可以解决这个bug?自动生成(如通过宏)很好。
不行。运气不好。 – Yakk
什么是错误? – aaronman
@aaronman:MSVC的所有版本都会尝试复制'A'而不是移动它,然后生成一个神秘的编译器错误,它不会告诉你它尝试复制的位置。这是它的行动:http://rise4fun.com/Vcpp/Kd1F –