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