【问题标题】:How do you get shared_ptr weak count?你如何获得 shared_ptr 弱计数?
【发布时间】:2014-08-07 16:15:08
【问题描述】:

是否有可能获得对 shared_ptr 的弱引用计数?我知道如何使用

获取 shared_ptr 使用计数
std::shared_ptr::use_count

但我想知道是否有任何非实现特定的方法来获取weak_count 引用的数量?

【问题讨论】:

  • 没有。最多可能有许多实现支持的方式。
  • 您要解决的真正问题是什么? (还要注意该标准对use_count[20.7.2.2.5/8] 都没有性能限制)。
  • @MarkB:我也对这个感兴趣;因为没有办法阻止其他人同时创建另一个引用......
  • 即使你可以获得弱引用计数,它也不太可能有用,因为该值取决于实现。库可以选择将其实现为 weak_count = num_weak_refs + (use_count > 0)weak_count = num_weak_refs + use_count
  • 我只是在探索防止 shared_ptr 循环的选项。

标签: c++ c++11 shared-ptr tr1


【解决方案1】:

不在 C++11 中,也不在 C++14 的 this draft 中。

【讨论】:

    【解决方案2】:

    不,请记住,weak_ptrs 只是观察者,而不是指向对象的实际指针,它们并非旨在返回其计数。

    【讨论】:

      猜你喜欢
      • 2010-09-13
      • 2018-04-01
      • 2013-05-21
      • 2017-12-10
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多