Синтаксис C ++ 11 foreach и настраиваемый итератор

Я пишу итератор для контейнера, который используется вместо Контейнер 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 использовал правильный итератор для класса?

59
задан shuttle87 25 June 2014 в 18:01
поделиться