Dum*_*der 11
来自超越C++标准库:Boost的简介作者:BjörnKarlsson
在大多数情况下,您不应该使用boost :: intrusive_ptr,因为共享所有权的功能在boost :: shared_ptr中很容易获得,而非侵入式智能指针比侵入式智能指针更灵活.但是,有时候需要一个侵入式引用计数,可能是遗留代码或与第三方类集成.当需要时,intrusive_ptr适合账单,具有与其他Boost智能指针类相同的语义.
通过使用另一个Boost智能指针,您可以确保所有智能指针需求的一致界面,无论它们是否具有侵入性.引用计数必须由与intrusive_ptr一起使用的类提供.intrusive_ptr通过对两个函数intrusive_ptr_add_ref和intrusive_ptr_release进行非限定调用来管理引用计数; 这些函数必须正确操作侵入引用计数,以使intrusive_ptrs正常工作.对于要与intrusive_ptr一起使用的类型中已存在引用计数的所有情况,启用对intrusive_ptr的支持就像实现这两个函数一样简单.
使用intrusive_ptr时