37 #ifndef VIGRA_ITERATORADAPTER_HXX 38 #define VIGRA_ITERATORADAPTER_HXX 147 template <
class Policy>
152 typedef typename Policy::BaseType BaseType;
153 typedef typename Policy::value_type value_type;
154 typedef typename Policy::difference_type difference_type;
155 typedef typename Policy::reference reference;
156 typedef typename Policy::index_reference index_reference;
157 typedef typename Policy::pointer pointer;
158 typedef typename Policy::iterator_category iterator_category;
172 Policy::initialize(adaptee_);
176 : adaptee_(o.adaptee_)
184 Policy::initialize(adaptee_);
192 adaptee_ = o.adaptee_;
198 Policy::advance(adaptee_, d);
209 Policy::advance(adaptee_, -d);
220 Policy::increment(adaptee_);
227 Policy::increment(adaptee_);
233 Policy::decrement(adaptee_);
240 Policy::decrement(adaptee_);
246 return Policy::equal(adaptee_, o.adaptee_);
251 return !Policy::equal(adaptee_, o.adaptee_);
256 return Policy::less(adaptee_, o.adaptee_);
261 return !Policy::less(o.adaptee_, adaptee_);
266 return Policy::less(o.adaptee_, adaptee_);
271 return !Policy::less(adaptee_, o.adaptee_);
276 return Policy::difference(adaptee_, o.adaptee_);
279 reference operator*()
const 281 return Policy::dereference(adaptee_);
284 index_reference operator[](difference_type d)
const 286 return Policy::dereference(adaptee_, d);
289 pointer operator->()
const 291 return &Policy::dereference(adaptee_);
Definition: accessor.hxx:43
IteratorAdaptor(BaseType const &o)
Definition: iteratoradapter.hxx:169
Quickly create 1-dimensional iterator adapters.
Definition: iteratoradapter.hxx:148