У меня есть класс 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)
}