Как отсоединить элементы от контейнера 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(значение)) следует использовать вместо "стереть (значение)".