标签: c++ c++11 move-semantics
鉴于此构造函数:
MyClass::MyClass(SomeOtherClass other) : myOther(other) { }
我应该在初始化列表中手动调用std::move,还是编译器足够智能自动执行?
std::move
答案 0 :(得分:3)
你必须打电话给它。编译器无法知道您是否仍希望稍后“使用”该对象(在任何情况下,这将是一个非常混乱的语言规则)。所以说: myOther(std::move(other))。
: myOther(std::move(other))