无法从 boost multi_index_container++ 中删除元素
Unable to remove element from boost multi_index_container++
基于 CentOS 7、g++ 4.8.5-28 构建。语言标准:C++03
工作样本:https://godbolt.org/z/ijSFrK
在RemoveMapping方法中,调用mapDb.erase(clientIter);
失败(实际代码和编译错误见link中的示例代码)。我想知道是不是因为多个有序索引都使用复合键和键提取方法?
而不是
mapDb.erase(clientIter);
你必须写
clientView.erase(clientIter);
请记住,每个索引(视图)都有自己的迭代器类型,您不能随意交换它们。为方便起见,容器本身(此处为 mapDb
)的行为类似于其第一个 (#0) 索引,因此 mapDb.erase
只能接受 serverView
.
的迭代器
基于 CentOS 7、g++ 4.8.5-28 构建。语言标准:C++03
工作样本:https://godbolt.org/z/ijSFrK
在RemoveMapping方法中,调用mapDb.erase(clientIter);
失败(实际代码和编译错误见link中的示例代码)。我想知道是不是因为多个有序索引都使用复合键和键提取方法?
而不是
mapDb.erase(clientIter);
你必须写
clientView.erase(clientIter);
请记住,每个索引(视图)都有自己的迭代器类型,您不能随意交换它们。为方便起见,容器本身(此处为 mapDb
)的行为类似于其第一个 (#0) 索引,因此 mapDb.erase
只能接受 serverView
.