gpt4 book ai didi

boost - 如何从 boost::intrusive set 容器中分离元素

转载 作者:行者123 更新时间:2023-12-05 01:27:36 25 4
gpt4 key购买 nike

我正在尝试从 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>) [with Hook = boost::intrusive::detail::generic_hook, boost::intrusive::default_tag, (boost::intrusive::link_mode_type)1u, 3>]: 断言 `!hook.is_linked ()' 失败的。
中止(核心转储)

当我查看错误的位置时,我看到了这个命令。

341 {//如果这个断言引发,你可能已经销毁了一个对象
342//虽然它仍然被插入到一个活着的容器中。
343//如果是,在销毁之前从容器中移除对象。
344(无效)钩子(Hook); BOOST_INTRUSIVE_SAFE_HOOK_DESTRUCTOR_ASSERT(!hook.is_linked());
第345章

请指示

最佳答案

经过大量谷歌搜索后,我解决了这个问题。应该使用erase(Classname::s_iterator_to(value)) 而不是“erase(value)”。

关于boost - 如何从 boost::intrusive set 容器中分离元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10831068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com