Я пишу итератор для контейнера, который используется вместо контейнера STL. В настоящее время контейнер STL используется во многих местах с С++ 11 foreach синтаксисом, например: for(auto &x: C)
. Нам нужно было обновить код, чтобы использовать собственный класс, который обертывает контейнер STL:
template< typename Type>
class SomeSortedContainer{
std::vector<typename Type> m_data; //we wish to iterate over this
//container implementation code
};
class SomeSortedContainerIterator{
//iterator code
};
Как мне получить автоматическое использование правильного итератора для пользовательского контейнера, чтобы код мог быть вызван следующим образом:
SomeSortedContainer C;
for(auto &x : C){
//do something with x...
}
В общем, что необходимо для обеспечения того, что auto использует правильный итератор для класса?