任何人都可以解释增强侵入性挂钩的概念吗?我不明白阅读文档 http://www.boost.org/doc/libs/1_47_0/doc/html/intrusive.html
问问题
1861 次
1 回答
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;
于 2012-07-04T08:04:20.550 回答