function 1
function 2
和function 1
之间的区别是什么?
将vector
与move(data)
构建一个临时vector
,然后将临时v
分配给{{1}}?
无需添加详细信息......
答案 0 :(得分:2)
在您的小测试案例中,可能没有区别。几乎肯定会省略额外的临时对象。 main中的v
将保存成员变量的内容。
但在一般情况下:
版本1将肯定将成员data
留在某些未指定的"空"州。即使丢弃了函数返回值。
版本2 可能使成员处于某种未指定的空状态,或者可能不会。例如,如果调用该函数并丢弃其返回值,则该成员将保持不变。这就是为什么可以说std::move
本身并没有移动任何东西。