Class template set_member_hook
boost::intrusive::set_member_hook
 
Synopsis
Description
Поставьте общедоступный член данных set_member_hook для хранения объектов этого класса в наборе/мультисете. set_member_hook содержит данные, необходимые для поддержания набора/мультизата и предоставляет соответствующие  value_traits класс для набора/мультистата.
Крючок допускает следующие варианты: void_pointer<>, link_mode<> и optimize_size<>.
void_pointer<> - это тип указателя, который будет использоваться внутри крючка и контейнер, настроенный на использование этого крюка.
link_mode<> будет указывать режим подключения крючка (нормальная_ссылка, auto_unlink или safe_link).
optimize_size<> расскажет крючок, чтобы оптимизировать крючок для размера вместо скорости.
set_member_hook 
        public
       construct/copy/destruct
- set_member_hook(); - Эффекты: Если - link_modeявляется- auto_unlinkили- safe_linkинициализирует узел к несвязанному состоянию.
 - Throws>>  
- set_member_hook(const set_member_hook &); - Следы: Если <2324>link_mode является - auto_unlinkили- _ссылкаАргумент проигнорирован.
 - Throws: Nothing. - Rationale: Предоставление копирайт-конструктора делает классы, используя крючок STL-совместимый без принуждения пользователя к дополнительной работе. - swapможет использоваться для эмулирования подвижной семантики.
 
- set_member_hook & оператор=(const set_member_hook &;; - >Effects: Empty function. Аргумент проигнорирован. - Throws: Nothing. - Rationale: Предоставление оператора уступки делает классы, используя крючок STL-совместимый без принуждения пользователя к дополнительной работе. - swapможет использоваться для эмулирования подвижной семантики.
 
- ~set_member_hook(); - Следы: Если - link_modeявляется- нормальная_ссылка, деструктор ничего не делает (т.е. не генерируется код). Если- link_modeявляется- safe_linkи объект хранится в наборе, то возникает утверждение. Если- link_modeявляется- auto_unlinkи- is_linked(), то узел не связан.
 - Throws: Ничего.  
 
set_member_hook public member functions
- void swap_nodes(set_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> Эта функция может быть использована для проверки того, вернет ли - set::iterator_toдействительный итератор.
 - Сложность: Постоян  
- void unlink(); - Effects: Удаляет узел, если он вставлен в контейнер. Эта функция допускается только в том случае, если - link_modeявляется- auto_unlink.
 - Throws: Nothing.