Mateus, the whole issue is related to make a std::map iterator return values rather then pair(key,value) so we can't consider them "exception" but rather the main focus.
Probably a MapValueIterator would do as we wouldn't need an adapter for the other containers. I already suggested a simpler interface: only use for the iterator would be: comparison ( current != end ) // map_iter == other.map_iter dereference ( *current ) // return map_iter->second advance ( ++current; current++; ) // ++map_iter; map_iter++ I don't know if making this a STL-compatible iterator would do. For example, would standard algorithms rely on the *dereference operator ? Note that we wouldn't need most operations defined for standard iterators. --strk; On Fri, May 26, 2006 at 10:22:03AM +0200, Mateusz Loskot wrote: > Hi Sandro, > > I have 2-3 concepts about the generic iterator adapter > but I'd need some details how would you like to use it. > If you could provide me with some pseudo-code > or some assumptions that would be helpful. > I know the idea but I'd need to know what kind of information > do you want to provide to the adapter and what information > you want to be deduced automatically. > > There are a few possibilities, the idea is to have adapter unifying > iterators from STL containers, so you will be able to apply > the same algorithm on different collections. > This is quite simple idea and the only exceptions are trees: > map and multimap containers. > > Simples possibility is to specialize the adapter with container: > > adapter<std::vector<T> > ( v.begin() ); > adapter<std::list<T> > ( v.begin() ); > > where T is a type of objects stored in container > > adapter<std::map<K,V> > ( m.begin() ); > > where K is a key type and V is a mapped value type > > Another option is to specialize only with base iterator: > adapter<std::list<T>::iterator> ( v.begin() ); > adapter<std::map<K,V>::iterator> ( v.begin() ); > > but here the std::map is problematic, because there the adapter is > specialized for map in more sophisticated way - we need a special > dereferencing to make adapter returning only value type, not the pair of > key and value. > > Is this similar to your idea? > > Cheers > -- > Mateusz Åoskot > http://mateusz.loskot.net > _______________________________________________ > geos-devel mailing list > geos-devel@geos.refractions.net > http://geos.refractions.net/mailman/listinfo/geos-devel -- /"\ ASCII Ribbon Campaign \ / Respect for low technology. X Keep e-mail messages readable by any computer system. / \ Keep it ASCII. _______________________________________________ geos-devel mailing list geos-devel@geos.refractions.net http://geos.refractions.net/mailman/listinfo/geos-devel