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?

Respuestas a la pregunta(4)

Su respuesta a la pregunta