【发布时间】:2012-12-02 00:35:02
【问题描述】:
boost::intrusive 文档描述了you can use smart pointers with intrusive containers 如何使用你最有可能使用的智能指针,“它必须具有与原始指针相同的所有权语义。这意味着无法使用资源管理智能指针(如 boost::shared_ptr)。”
这是为什么?我想不出任何明显的理由应该禁止它们。究竟会破坏什么?侵入式容器无论如何都不管理它们内部项目的分配。在我的情况下,我想使用 intrusive_ptr,但我看不出为什么 shared_ptr 也不应该工作。
编辑:为了清楚起见,我的意思是挂钩指针(例如,侵入式单链表中的下一个指针)是一个智能指针。
【问题讨论】:
标签: c++ boost shared-ptr smart-pointers intrusive-containers