【发布时间】:2023-03-09 20:15:01
【问题描述】:
谁能解释一下boost intrusive hooks的概念?我不明白阅读文档 http://www.boost.org/doc/libs/1_47_0/doc/html/intrusive.html
【问题讨论】:
-
请不要对新用户投反对票,评论问题或编辑以改进它!
谁能解释一下boost intrusive hooks的概念?我不明白阅读文档 http://www.boost.org/doc/libs/1_47_0/doc/html/intrusive.html
【问题讨论】:
Boost.intrusive 强制您提供有关要存储在侵入式容器中的对象的信息。
Hooks 是向关联的侵入式容器提供所需信息的方式。为此,定义您要存储的对象的类可以从挂钩继承或作为成员拥有它。
只要需要在编译时完全了解侵入式容器,就可以使用模板对钩子进行参数化,这导致语法中的选项是模板类,关联的值是它的参数。
例如,您可以通过在模板参数列表中指定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;
【讨论】: