повысить навязчивый получить следующий непосредственно от узла

Можно ли получить следующий узел / элемент непосредственно из узла / элемента? Вот так:

struct Data{
boost::intrusive::list_member_hook<> node;

Data* get_next(){
node.get_next() ???
}
}

0

Решение

У многих интрузивных контейнеров есть статическая функция-член s_iterator_to получить итератор непосредственно из значения.

Таким образом, вы можете получить итератор, а затем использовать интерфейс итератора:

struct Data{
boost::intrusive::list_member_hook<> node;

inline Data* get_next();
}

namespace bis = boost::intrusive;

using List = bis::list<Data,
bis::member_hook<Data, bis::list_member_hook<>, &Data::node>
>;

Data* Data::get_next() {
return &*++List::s_iterator_to(*this);
}

Live Demo

1

Другие решения

Других решений пока нет …