给定这个构造函数:
MyClass::MyClass(SomeOtherClass other)
: myOther(other)
{
}
我应该在初始化列表中手动调用 std::move
,还是编译器会足够聪明自动执行此操作?
最佳答案
您必须调用它。编译器无法知道您以后是否仍想“使用”该对象(无论如何这将是一个非常令人困惑的语言规则)。所以说 : myOther(std::move(other))
。
关于c++ - 我应该在非引用构造函数参数上手动调用 move 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18576453/