J'écris un itérateur pour un conteneur qui est utilisé à la place d'un conteneur STL. Actuellement, le conteneur STL est utilisé à de nombreux endroits avec la balise syntaxe foreach c++11 eg : for(auto &x: C)
. Nous avons dû mettre à jour le code pour utiliser une classe personnalisée qui englobe 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 faire pour qu'auto utilise l'itérateur correct pour le conteneur personnalisé afin que le code puisse être appelé de la manière suivante :
SomeSortedContainer C;
for(auto &x : C){
//do something with x...
}
En général, que faut-il faire pour s'assurer que auto utilise le bon itérateur pour une classe ?