存储Boost Multi_index索引迭代器



我有一个有多个索引的boost :: multi_index类。

如果我想存储一个普通的迭代器,我可以做

multi_index_table :: const_iterator x_itr == my_table.find(x);

,但是如果我尝试

multi_index_table :: const_iterator x_itr == my_table.get_index(y).find(x),它抱怨它不是相同类型的迭代器。

我是C 的新手,来自Java背景,理想情况下,我想要某种形式的超级类,如果可能的话,可以存储任何类型的迭代器。

任何指导都将不胜感激!

编辑:我基本上是想做这样的事情:

my_table.get_index(a).find(x);
x.erase<a>(x):
my_table.get_index(b).find(y);
    x.erase<b>(y):   
template<uint64_t Index>
template<typename Iterator>  
Iterator erase(Iterator itr){
  my_table.get_index<Index>().erase(itr)
}

带有C 11的

很容易。只是使用:

auto x_itr = my_table.get_index(y).find(x)

编译器将找出x_itr的类型。

最新更新