能够通过模板参数指定 Lock_Policy
-
class sp_counted_Base{}
- use_count => 当减为 0 析构资源 dispose
-
weak_count => 当减为 0
delete this;
destroy 开释管制区域二者皆为原子变量,原子操作扭转值,同时应用内存屏障确保可见性 dispose 肯定要能被调用 destroy 的线程察看到
class sp_counted_Ptr{}
继承了sp_counted_Base
-
class sp_counted_deleter{}
继承了sp_counted_Base
,存储了Deleter_
,应用 std::addressof 1 获取地址十分乏味,当面对模板时,传入的类型的 & operator 可能被重载,并非取地址的含意,因而应用这个补救。
- why use std::addressof versus &: https://stackoverflow.com/que… ↩