unique_ptr如何独一无二?

Me *_*d I 1 c++ c++11

我知道unique_ptrs不能复制只移动,他们没有引用计数.但我们可以有两个共享资源的智能指针:

Foo* f = new Foo;
auto p1 = std::unique_ptr<Foo>(f);
auto p2 = std::unique_ptr<Foo>(f);
Run Code Online (Sandbox Code Playgroud)

现在这两个类共享一个指针*f.此外,我知道这最终将导致UB,因为我们将进行双重删除但仍然:unique_ptr如果可能的话,我们真正意味着"独特"是什么意思?

The*_*dis 5

除了我不相信这是想要的或可移植的行为之外,我认为a unique_ptr也是对同一项目的其他人的陈述.

来自参考:

std :: unique_ptr是一个智能指针,它通过指针保留对象的唯一所有权,并在unique_ptr超出范围时销毁该对象.没有两个unique_ptr实例可以管理同一个对象.

据我所知,您展示的样本的行为实际上并不需要,根本不应该使用.

对于那些不了解主题的人(也就是傻瓜编程):OP所做的就像拥有两个女朋友,彼此不了解.他们没事,直到他们发现.当他们这样做时,他们肯定会,你可能希望你不会玩火.