我正在尝试创建一个自定义兑现机制,在其中将 a 返回weak_ptr
到创建的缓存。在内部,我持有一个shared_ptr
来控制对象的生命周期。
当最大缓存预设被消耗完时,disposer会寻找那些长时间没有被访问的缓存对象,并将其清理干净。
不幸的是,这可能并不理想。如果可以检查通过 可以访问多少缓存对象weak_ptr
,那么这可以作为决定是否清理的标准。
事实证明,没有办法检查有多少人weak_ptr(s)
可以处理该资源。
但是当我查看shared_ptr
文档和实现说明时
=>weak_ptrs
引用托管对象的数量
是实施的一部分。为什么这不通过 API 公开?