首页 > 解决方案 > 使用相同的 unique_ptr 执行两次 std::move

问题描述

如果我用相同的 unique_ptr 调用两次 std::move 会发生什么?

unique_ptr<int> foo(new int(5));
unique_ptr<int> bar = move(foo);
unique_ptr<int> baz = move(foo);

PS:不,std::unique_ptr 用法不是同一个问题。这两个问题都是关于 unique_ptr 的,这是它们之间唯一的共同点。

标签: c++moveunique-ptr

解决方案


从 a 移动unique_ptr使其为空。所以baz最终也会为空。


推荐阅读