我有一堂課。它有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 –