Class template bs_set_member_hook
boost::intrusive::bs_set_member_hook
 
Synopsis
Description
Поместите общедоступный элемент данных bs_set_member_hook для хранения объектов этого класса в bs_set/bs_multiset. bs_set_member_hook содержит данные, необходимые для поддержания bs_set/bs_multiset и обеспечивает соответствующие value_traits Класс для bs_set/bs_multiset.
Крюк допускает следующие варианты: void_pointer<>, link_mode<>.
void_pointer<> - тип указателя, который будет использоваться внутри крючка и контейнера, сконфигурированного для использования этого крючка.
link_mode<> будет указывать режим связывания крючка (normal_link, auto_unlink или safe_link).
bs_set_member_hook 
        public
       construct/copy/destruct
- bs_set_member_hook; - Последствия: Если - link_modeявляется- auto_unlinkили- safe_linkинициализирует узел в несвязанное состояние.
 - Броски: Ничего.  
- bs_set_member_hook(const bs_set_member_hook &; - Влияние link_mode означает - auto_unlinkили- safe_linkинициализирует узел в несвязанное состояние. Аргумент игнорируется.
 -  Броски: Ничего. - Рациональность: Предоставление копи-конструктора делает занятия с помощью крючка STL-совместимыми, не заставляя пользователя выполнять какую-то дополнительную работу. - swapможно использовать для эмуляции подвижной семантики.
 
- bs_set_member_hook &оператор=(конст bs_set_member_hook &; - Последствия: Пустая функция. Аргумент игнорируется. - Броски: Ничего. - Рациональность: Предоставление оператору задания делает занятия с помощью крючка STL-совместимыми, не заставляя пользователя выполнять какую-то дополнительную работу. - swapможно использовать для эмуляции подвижной семантики.
 
- ~bs_set_member_hook(); - Последствия: Если - link_modeявляется- normal_link, деструктор ничего не делает (т.е. код не генерируется). Если- link_modeявляется- safe_linkи объект хранится в наборе, то возникает утверждение. Если- link_modeявляется- auto_unlinkи- is_linked()является истинным, узел является несвязанным.
 -  Броски: Ничего.  
 
bs_set_member_hook public member functions
- void swap_nodes(bs_set_member_hook & other); - Последствия:Переключение двух узлов сменяет положение элементов, относящихся к этим узлам, в одном или двух контейнерах. То есть, если узел является частью элемента e1, узел x является частью элемента e2 и оба элемента включены в контейнеры s1 и s2, то после операции обмена e1 находится в s2 в положении e2, а e2 находится в s1 в положении e1. Если один элемент не находится в контейнере, то после операции обмена другой элемент не находится в контейнере. Итераторы к e1 и e2, относящиеся к этим узлам, недействительны. -  Сложность: Константа -  Броски: Ничего.  
- boolссылкаконст; - Предпосылка: - link_modeили- auto_unlink.
 - Возврат : истинно, если узел принадлежит контейнеру, ложно в противном случае. Эта функция может использоваться для проверки того, будет ли - set::iterator_toвозвращать действительный итератор.
 - Сложность: Константа  
- void unlink(); - Последствия: Удаляет узел, если он вставлен в контейнер. Эта функция допускается только в том случае, если - link_mode- auto_unlink.
 -  Броски: Ничего.