我应该手动调用非参考构造函数参数吗?

时间:2013-09-02 15:19:08

标签: c++ c++11 move-semantics

鉴于此构造函数:

MyClass::MyClass(SomeOtherClass other)
    : myOther(other)
{
}

我应该在初始化列表中手动调用std::move,还是编译器足够智能自动执行?

1 个答案:

答案 0 :(得分:3)

必须打电话给它。编译器无法知道您是否仍希望稍后“使用”该对象(在任何情况下,这将是一个非常混乱的语言规则)。所以说: myOther(std::move(other))