任何人都可以解释 提升侵入式隐藏 概念吗?我不明白阅读文档 http://www.boost.org/doc/libs/1_47_0/doc/html/intrusive.html
答案 0 :(得分:3)
Boost.intrusive强制您沿着要存储在侵入式容器中的对象提供信息。
挂钩是向相关侵入式容器提供所需信息的方法。为此,定义要存储的对象的类可以从钩子继承,也可以将其作为成员拥有。
只要在编译时需要完全知道侵入式容器,就可以使用模板对钩子进行参数化,从而产生一种语法,其中选项是模板类,关联值是其参数。
例如,您可以通过在模板参数列表中指定link_mode
参数来定义链接模式并设置其值:
boost::intrusive::list< MyClass, boost::intrusive::link_mode< boost::intrusive::safe_link > > l;
最后但并非最不重要的是,如果您的钩子包含非默认值,则必须将其作为模板参数传递给您使用的侵入式容器类。
例如,考虑侵入性列表,这意味着替换
boost::intrusive::list<MyClass> l;
通过
boost::intrusive::list<MyClass, MyHook> l;