以下操作是否安全?
auto pt = getUniquePtr();
while (pt) {
vector_of_objects.push_back(std::move(pt));
pt = getUniquePtr();
}
getUniquePtr
返回一个 unique_ptr<MyObject>
。我认为,在移动对象后,如果我重新分配其他东西给pt
,这不应该有影响,对吗?
unique_ptr
没有可能仍然链接到旧对象并删除它(因为operator=
基本上是一个reset(release)
),对吗? - Deanstd::unique_ptr
进行移动构造被记录为转移所有权,因此不会发生这种情况。 - TartanLlama