4 #ifndef DUNE_GENERICITERATOR_HH
5 #define DUNE_GENERICITERATOR_HH
148 template<
class C,
class T,
class R=T&,
class D = std::ptrdiff_t,
151 public IteratorFacade<GenericIterator<C,T,R,D,IteratorFacade>,T,R,D>
154 friend class
GenericIterator<const typename remove_const<C>::type, const typename remove_const<T>::type, typename const_reference<R>::type, D, IteratorFacade>;
156 typedef
GenericIterator<typename remove_const<C>::type, typename remove_const<T>::type, typename mutable_reference<R>::type, D, IteratorFacade>
MutableIterator;
157 typedef
GenericIterator<const typename remove_const<C>::type, const typename remove_const<T>::type, typename const_reference<R>::type, D, IteratorFacade>
ConstIterator;
200 : container_(&cont), position_(pos)
228 return position_ == other.position_ && container_ == other.container_;
233 return position_ == other.position_ && container_ == other.container_;
237 return container_->operator[](position_);
251 return container_->operator[](position_+i);
255 position_=position_+n;
260 assert(other.container_==container_);
261 return other.position_ - position_;
266 assert(other.container_==container_);
267 return other.position_ - position_;