10得票1回答
我需要使用weak_ptr.lock()来测试它是否指向一个有效的对象吗?

看起来创建一个临时的shared_ptr以检查weak_ptr是否指向有效对象有点低效。 我不想访问对象本身。 这是因为我有一个从shared_ptr向量返回weak_ptr的函数,如果它返回一个空的weak_ptr,则意味着该GUID下不存在该对象。 所以我只是在测试对象是否存在。 有没有...

8得票1回答
在std::set中使用weak_ptr安全吗?或者在std::map的key中使用weak_ptr安全吗?

今天关于std::weak_ptr和std::owner_less在关联容器std::set和std::map中的使用,出现了一些问题。有一些帖子认为在std::set中使用weak_ptr是不正确的,因为如果弱指针过期,它将产生未定义行为。这是正确的吗?

42得票2回答
原生指针和弱指针有什么区别?

如题。这个问题可能已经有答案,但我未能找到。

84得票10回答
为什么不能从unique_ptr构造weak_ptr?

如果我理解正确,weak_ptr不会增加所管理对象的引用计数,因此它不表示所有权。它只是让您访问由其他人管理的对象,该对象的生存期由其他人控制。 因此,我不明白为什么可以从shared_ptr构造weak_ptr,但不能从unique_ptr构造。 有人能简要解释一下吗?

15得票2回答
一个weak_ptr如何知道共享资源已经过期?

考虑以下代码:#include <memory> #include <iostream> using namespace std; struct MySharedStruct { int i; }; void print_value_of_i(weak_ptr...

19得票3回答
弱指针使用的 static_pointer_cast

在C++0x中,std::shared_ptr有一个std::static_pointer_cast方法,但是std::weak_ptr没有类似的方法。这是有意为之,还是一个疏忽呢?如果是疏忽,我该如何定义一个合适的函数呢?

30得票2回答
为什么我不能将nullptr转换为weak_ptr<>?

class MyClass { public: MyClass(std::weak_ptr&lt;MyClass&gt; parent){} } 我想要做这个:auto newInstance = std::make_shared&lt;MyClass&gt;(nullptr); 或...

364得票15回答
std::weak_ptr在什么情况下有用?

我开始学习C++11的智能指针,但我没有看到std::weak_ptr的任何有用的用途。有人可以告诉我什么时候使用std::weak_ptr是有用/必要的吗?

46得票4回答
提升(boost)、共享指针(shared ptr)和弱指针(weak ptr)?什么时候使用哪一个?

在我的当前项目中,我广泛使用了boost::shared_ptr。 最近,我的团队成员也开始使用weak_ptr。我不知道应该在什么情况下选择哪个。 除此之外,如果我想将weak_ptr转换为shared_ptr,我该怎么做?通过对weak_ptr进行锁定以创建shared_ptr会影响到...

14得票2回答
如何在没有引用时从缓存中删除(非侵入式)智能指针?

由于我的新手声誉,我无法回复这个Thread,具体来说是接受的答案: 我从未使用过boost::intrusive智能指针,但如果您使用shared_ptr智能指针,您可以为缓存使用weak_ptr对象。 当系统决定释放它们的内存时,这些weak_ptr指针不会被视为引用,但只要对象尚未被...