Sto scrivendo un iteratore per un contenitore che viene utilizzato al posto di un container STL. Attualmente il container STL viene utilizzato in molti posti con c++11 foreach syntax ad es .: for(auto &x: C)
. Abbiamo bisogno di aggiornare il codice per utilizzare una classe personalizzata che avvolge il contenitore STL:C++ 11 foreach syntax e iteratore personalizzato
template< typename Type>
class SomeSortedContainer{
std::vector<typename Type> m_data; //we wish to iterate over this
//container implementation code
};
class SomeSortedContainerIterator{
//iterator code
};
Come faccio ad avere auto per utilizzare l'iteratore corretto per il contenitore personalizzato in modo che il codice è in grado di essere chiamato nel seguente modo ?:
SomeSortedContainer C;
for(auto &x : C){
//do something with x...
}
In generale, cosa è necessario per garantire che l'auto usi l'iteratore corretto per una classe?
Se si utilizza Visual Studio, è possibile passare con il mouse sul nome della variabile per visualizzarne il tipo. IIRC, mostra il tipo effettivo, non 'auto'. –