c ++ 11 sintaxis foreach e iterador personalizado
Estoy escribiendo un iterador para un contenedor que se está utilizando en lugar de un contenedor STL. Actualmente, el contenedor STL se está utilizando en muchos lugares con c ++ 11 sintaxis foreach p.ej:for(auto &x: C)
. Necesitamos actualizar el código para usar una clase personalizada que envuelva el contenedor 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
};
¿Cómo obtengo auto para usar el iterador correcto para el contenedor personalizado para que se pueda invocar el código de la siguiente manera:
SomeSortedContainer C;
for(auto &x : C){
//do something with x...
}
En general, ¿qué se requiere para garantizar que auto use el iterador correcto para una clase?