我刚刚听完了Scott Meyers关于C++ 0x的软件工程电台播客采访.大多数新功能对我来说都很有意义,我现在对C++ 0x感到兴奋,除了一个.我仍然没有得到移动语义 ......它们究竟是什么?
error: use of deleted function 'A::A(const A&)'
return tmp;
^~~
Run Code Online (Sandbox Code Playgroud)
为什么仅在其中存在虚拟析构函数时才调用复制构造函数A?如何避免这种情况?
struct B {};
struct A{
std::unique_ptr<B> x;
virtual ~A() = default;
};
A f() {
A tmp;
return tmp;
}
Run Code Online (Sandbox Code Playgroud)