是否可以保证unique_ptr在移动后存储nullptr

std::unique_ptr<int> p1{new int{23}};
std::unique_ptr<int> p2{std::move(p1)};
assert(!p1); // is this always true?

最佳答案

是的,您可以在nullptr之后将其与move比较,并保证比较相等。

从§20.8.1/4 [unique.ptr]



(成员p之前被描述为-唯一指针是对象u,它存储指向第二个对象p的指针)

关于c++ - 是否可以保证unique_ptr在 move 后存储nullptr?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24061767/

10-12 20:35