关于c++:sharedptr源码阅读

35次阅读

共计 394 个字符,预计需要花费 1 分钟才能阅读完成。

能够通过模板参数指定 Lock_Policy

  1. class sp_counted_Base{}

    • use_count => 当减为 0 析构资源 dispose
    • weak_count => 当减为 0 delete this; destroy 开释管制区域

      二者皆为原子变量,原子操作扭转值,同时应用内存屏障确保可见性 dispose 肯定要能被调用 destroy 的线程察看到

  2. class sp_counted_Ptr{} 继承了 sp_counted_Base
  3. class sp_counted_deleter{} 继承了 sp_counted_Base,存储了Deleter_,应用 std::addressof 1 获取地址

    十分乏味,当面对模板时,传入的类型的 & operator 可能被重载,并非取地址的含意,因而应用这个补救。


  1. why use std::addressof versus &: https://stackoverflow.com/que… ↩
正文完
 0