2
這段代碼有什麼問題嗎?爲什麼此片段在VS 2013中不起作用?
#include <memory>
class Foo {
};
class Bar {
std::unique_ptr<Foo> foo_;
};
int main() {
Bar bar;
Bar bar2 = std::move(bar);
}
我得到這個錯誤:
1>c:\users\szx\documents\visual studio 2013\projects\consoleapplication1\consoleapplication1\main.cpp(13): error C2280: 'std::unique_ptr<Foo,std::default_delete<_Ty>>::unique_ptr(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)' : attempting to reference a deleted function
1> with
1> [
1> _Ty=Foo
1> ]
1> c:\program files (x86)\microsoft visual studio 12.0\vc\include\memory(1486) : see declaration of 'std::unique_ptr<Foo,std::default_delete<_Ty>>::unique_ptr'
1> with
1> [
1> _Ty=Foo
1> ]
1> This diagnostic occurred in the compiler generated function 'Bar::Bar(const Bar &)'
但是GCC能夠編譯它沒有錯誤:http://ideone.com/CiDcGI
只是作爲一個附加的信息:這是在2013年11月的CTP,這不是一個官方發佈反正固定(模數錯誤)。 –