2 #ifndef DUNE_GENERICITERATOR_HH
3 #define DUNE_GENERICITERATOR_HH
146 template<
class C,
class T,
class R=T&,
class D = std::ptrdiff_t,
149 public IteratorFacade<GenericIterator<C,T,R,D,IteratorFacade>,T,R,D>
152 friend class
GenericIterator<const typename remove_const<C>::type, const typename remove_const<T>::type, typename const_reference<R>::type, D, IteratorFacade>;
154 typedef
GenericIterator<typename remove_const<C>::type, typename remove_const<T>::type, typename mutable_reference<R>::type, D, IteratorFacade>
MutableIterator;
155 typedef
GenericIterator<const typename remove_const<C>::type, const typename remove_const<T>::type, typename const_reference<R>::type, D, IteratorFacade>
ConstIterator;
198 : container_(&cont), position_(pos)
226 return position_ == other.position_ && container_ == other.container_;
231 return position_ == other.position_ && container_ == other.container_;
235 return container_->operator[](position_);
249 return container_->operator[](position_+i);
253 position_=position_+n;
258 assert(other.container_==container_);
259 return other.position_ - position_;
264 assert(other.container_==container_);
265 return other.position_ - position_;