c++11 foreach de la syntaxe et de la coutume itérateur

Je suis en train d'écrire un itérateur pour un conteneur qui est utilisé à la place d'un conteneur STL. Actuellement, le conteneur STL est utilisé dans de nombreux endroits avec le c++11 syntaxe foreach par exemple: for(auto &x: C). Nous avons besoin de mettre à jour le code pour utiliser une classe personnalisée qui enveloppe le conteneur 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
};

Comment puis-je obtenir de l'auto pour utiliser la bonne itérateur pour le conteneur personnalisé de sorte que le code peut être appelé de la manière suivante?:

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

En général ce qui est nécessaire pour s'assurer que les auto utilise le bon itérateur pour une classe?

  • Si vous utilisez Visual Studio, vous pouvez passer la souris sur la variable du nom de son type. Autant que je me souvienne, il montre le type réel, pas auto.
InformationsquelleAutor shuttle87 | 2011-09-26