我想從boost :: intrusive集合中分離元素並獲得斷言失敗。 當我從容器中分離元素後刪除元素。如何從boost :: intrusive集合容器中分離元素
該類派生自set_base_hook。
類fileXfer:公共set_base_hook> 70 {
我使用 「擦除」 功能分離從容器的對象。當我嘗試刪除對象時,我斷言失敗。斷言失敗發生在以下位置。
/usr/local/include/boost/intrusive/detail/utilities.hpp:344:無效的boost ::侵入::詳細:: destructor_impl(掛鉤&,提振::侵入::詳細:: link_dispatch <( boost :: intrusive :: link_mode_type)1u>)[with Hook = boost :: intrusive :: detail :: generic_hook,boost :: intrusive :: default_tag,(boost :: intrusive :: link_mode_type)1u,3>]:聲明`!hook.is_linked()'失敗。 Aborted(核心轉儲)
當我看到錯誤的位置,我看到了這個命令。
341 {//如果這個斷言提出了,你可能已經銷燬了一個對象,它仍然被插入到一個活着的容器中。 343 //如果是這樣,請在銷燬之前從容器中取出物體。 344(void)hook; BOOST_INTRUSIVE_SAFE_HOOK_DESTRUCTOR_ASSERT(hook.is_linked()!); 345}
請告知
我在google搜索之後解決了這個問題。應該使用擦除(Classname :: s_iterator_to(value))而不是「擦除(值)」。 –