Как отсоединить элементы от контейнера boost::intrusive set

Я пытаюсь отделить элементы от набора boost:: intrusive и получаю ошибку подтверждения. когда я удаляю элемент после отсоединения его от контейнера.

Класс наследуется от set_base_hook.

класс fileXfer: public set_base_hook > 70 {

Я использую функцию "стереть", чтобы отделить объект от контейнера. когда я пытаюсь удалить объект, я получаю ошибку подтверждения. Ошибка подтверждения происходит ниже в следующем месте.

/usr/local/include/boost/intrusive/detail/utilities.hpp:344: void boost:: intrusive:: detail:: destructor_impl (Hook &, boost:: intrusive:: detail:: link_dispatch<(boost:: intrusive:: link_mode_type) 1u>) [с Hook = boost::intrusive::detail::generic_hook, boost::intrusive::default_tag, (boost::intrusive::link_mode_type)1u, 3>]: утверждение `!hook.is_linked()' не удалось. Прервано (ядро сброшено)

когда я посмотрел на место ошибки, я увидел эту команду.

341 {// Если это утверждение повышается, возможно, вы уничтожили объект 342 //, пока он все еще был вставлен в живой контейнер. 343 // Если это так, удалите объект из контейнера, прежде чем уничтожить его. 344 (пустой) крюк; BOOST_INTRUSIVE_SAFE_HOOK_DESTRUCTOR_ASSERT(hook.is_linked (!)); 345 }

Посоветуйте, пожалуйста

1 ответ

Решение

Я решил это после долгих поисков. стереть (Classname::s_iterator_to(значение)) следует использовать вместо "стереть (значение)".

Другие вопросы по тегам