【发布时间】:2013-12-10 22:00:17
【问题描述】:
如果在用户定义的对象上调用 std::move() 会发生什么,该对象未定义移动构造函数?是抄袭的吗?
【问题讨论】:
-
您的意思是删除了移动构造函数?因为如果你自己不定义移动构造函数,并且所有对象成员都有移动构造函数,就会生成一个普通的移动构造函数。
-
请注意,
std::move本身对对象没有任何作用。所以答案取决于上下文。例如,被移动的对象可以用于移动分配。或者完全不同的东西。所以它并不完全依赖于可移动构造的类型 -
std::move不动,std::forward不转发。
标签: c++ move move-constructor