c ++ 11 sintaxe foreach e iterador personalizado

Estou escrevendo um iterador para um contêiner que está sendo usado no lugar de um contêiner STL. Atualmente, o contêiner STL está sendo usado em muitos lugares com o c ++ 11 sintaxe foreach por exemplo:for(auto &x: C). Precisamos atualizar o código para usar uma classe personalizada que agrupa o contêiner 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
};

Como obtenho automaticamente o uso do iterador correto para o contêiner personalizado, para que o código possa ser chamado da seguinte maneir

SomeSortedContainer C;
for(auto &x : C){
    //do something with x... 
}

m geral, o que é necessário para garantir que o auto use o iterador correto para uma class

questionAnswers(4)

yourAnswerToTheQuestion