我已经编写了这样的代码,该代码适用std::move
于临时构造函数中的纯右值。
// a std::string instance in class Obj
Obj&& myObj1 = std::move(Obj(1,"lost"));
print(myObj1);
Obj&& myObj2 = Obj(2,"keep");
print(myObj2);
打印效果是这样的(print
也在构造函数和析构函数中):
Construct lost
Destroy lost
obj1:
Construct keep
obj2: keep
Destroy keep
stackoverflow中的一些问题说第一种情况应该没有影响,我想知道我的代码会发生什么。那是Obj(1, "lost")
在函数中作为参数并在退出std::move
时死亡吗?std::move