Повысить навязчивый список
-
26-09-2019 - |
Вопрос
В чем разница в базовом крючке и крюке участника в Boost :: навязчивая библиотека, и когда лучше использовать, то другой?
Я прочитал Boost Documentation, но не то, что объясняет.
Решение
Насколько я могу сказать, это вопрос стиля и объектно-ориентированного дизайна. Базовые крючки вторгаются на иерархию наследования, требуя дополнительных public
Родительский класс и, возможно, принудительный на наследство на дизайн. Использование крючков-членов позволяет программисту лечить объект как имеющий has-a
отношение с контейнером, а не is-a
отношение с контейнером.
Другие советы
IMHO, если ваш объект предназначен только в один контейнер только, базовый крюк кажется более разнообразным. В противном случае (для нескольких контейнеров) несколько крючков элементов обеспечивают менее амбидиозное решение (поскольку можно избежать нескольких наследований)
http://www.boost.org/doc/libs/1_47_0/doc/html/intlush/recursive.html.«Крючки-члены не подходят для рекурсивных структур»