Class template list_member_hook
boost::intrusive::list_member_hook
 
Synopsis
Description
Храните этот крючок в классе, который будет добавлен в список.
Крючок допускает следующие варианты: void_pointer<> и link_mode<>.
link_mode<> будет указывать режим подключения крючка (нормальная_ссылка, auto_unlink или safe_link).
void_pointer<> - это тип указателя, который будет использоваться внутри крючка и контейнер, настроенный на использование этого крюка.
list_member_hook 
        public
       construct/copy/destruct
- list_member_hook(); - 14>Эффекты: Если - link_modeявляется- auto_unlinkили- safe_linkинициализирует узел к несвязанному состоянию.
 - Throws>>  
- list_member_hook(const list_member_hook &); - Следы: Если <2324>link_mode является - auto_unlinkили- _link> Аргумент проигнорирован.
 - Throws: Nothing. - Rationale: Предоставление копирайт-конструктора делает классы, используя крючок STL-совместимый без принуждения пользователя к дополнительной работе. - swapможет использоваться для эмулирования подвижной семантики.
 
- list_member_hook & оператор=(const list_member_hook &;; - >Effects: Empty function. Аргумент проигнорирован. - Throws: Nothing. - Rationale: Предоставление оператора уступки делает классы, используя крючок STL-совместимый без принуждения пользователя к дополнительной работе. - swapможет использоваться для эмулирования подвижной семантики.
 
- ~list_member_hook(); - Следы: Если - link_modeявляется- нормальная_ссылка, деструктор ничего не делает (т.е. не генерируется код). Если- link_modeявляется- safe_linkи объект хранится в списке, то возникает утверждение. Если- link_modeявляется- auto_unlinkи- is_linked(), то узел не связан.
 - Throws: Ничего.  
 
list_member_hook public member functions
- void swap_nodes(list_member_hook & other); - Effects: Купление двух узлов меняет положение элементов, связанных с этими узлами в одном или двух контейнерах. То есть, если узел является частью элемента e1, узел x является частью элемента e2 и оба элемента включены в контейнеры s1 и s2, то после того, как обмен-операция e1 находится в s2 в положении e2 и e2 находится в s1 в положении e1. Если один элемент не находится в контейнере, то после замены другой элемент не находится в контейнере.  - Комплексность: Постоян - Throws: Nothing.  
- bool is_linked() const; - Pre condition:- link_modeдолжно быть- безопасное_linkили- auto_unlink
 - <1718> Эта функция может быть использована для проверки того, вернет ли - list::iterator_toдействительный итератор.
 - Сложность: Постоян  
- void unlink(); - Effects: Удаляет узел, если он вставлен в контейнер. Эта функция допускается только в том случае, если - link_modeявляется- auto_unlink.
 - Throws: Nothing.