Повысить навязчивый хук списка - PullRequest
7 голосов
/ 29 сентября 2010

В чем разница между базовым хуком и хуком члена в библиотеке Boost :: Intrusive и когда один лучше использовать, чем другой?

Я прочитал документацию по бусту, но это не так объяснительно.

Ответы [ 3 ]

3 голосов
/ 02 октября 2010

Насколько я могу судить, это вопрос стиля и объектно-ориентированного дизайна. Базовые хуки вторгаются в иерархию наследования, что требует дополнительного public родительского класса и, возможно, навязывает множественное наследование проекту. Использование хуков-членов позволяет программисту обрабатывать объект как имеющий отношение has-a с контейнером, а не как is-a отношение с членством контейнера.

1 голос
/ 07 июня 2012

http://www.boost.org/doc/libs/1_47_0/doc/html/intrusive/recursive.html "Крюки-элементы не подходят для рекурсивных структур"

1 голос
/ 29 сентября 2010

imho, если ваш объект предназначен для включения только в один контейнер, базовый хук кажется более удобным.В противном случае (для нескольких контейнеров) множественные хуки-члены обеспечивают менее амбициозное решение (поскольку избегается множественное наследование)

...