侵入性与非侵入性注射指数
在过去几年中,我普遍接受了这一点
如果我要使用引用计数的智能指针 入侵智能指针是要走的路 – 但是,由于以下原因,我开始喜欢非侵入式智能指针: >我只使用智能指针(所以没有Foo *躺在,只有Ptr) 非侵入性智能指针中的这个Foo移动对象比入侵智能指针更容易的唯一原因是: 在非侵入式智能指针中,只有一个指针指向每个Foo. 在入侵智能指针中,我不知道有多少对象指向每个Foo. 现在,非侵入式智能指针的唯一代价是双重间接. [也许这会拧紧缓存]. 有没有人有一个很好的学习昂贵这个额外的间接层是? 编辑:通过智能指针,我可能指的是别人称之为“共享指针”;整个想法是:有一个引用计数附加到对象,当它命中0时,对象被自动删除 解决方法
侵入性或非侵入性指标之间有以下几个重要区别:
第二(无创)的最大优势: 实现对第二个弱引用(即shared_ptr / weak_ptr)简单得多. 首先的优点是当您需要获取智能指针(至少在boost :: shared_ptr,std :: tr1 :: shared_ptr的情况下) >您不能在构造函数和析构函数中使用shared_ptr.>在类的层次结构中有shared_from是非常不寻常的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |