Go to the documentation of this file.
23 #ifndef CASTED_ITERATOR_HPP_INCLUDED
24 #define CASTED_ITERATOR_HPP_INCLUDED
36 template <
class FromIt,
class To,
class Through = To>
44 typedef typename FromIt::difference_type difference_type;
51 FromIt
const &base()
const
53 return *
static_cast<FromIt
const *
>(
this);
58 return static_cast<FromIt &
>(*this);
71 return base() != other.base();
77 return base() == other.base();
82 return base() + offset;
87 return base() - offset;
92 return base() - other.base();
110 return static_cast<value_t const &
>(
111 static_cast<Through
const &
>(
112 FromIt::operator*()));
120 return static_cast<value_t const &
>(
121 static_cast<Through
const &
>(
130 return static_cast<value_t const*
>(
131 static_cast<Through const*
>(
138 #endif // CASTED_ITERATOR_HPP_INCLUDED
const value_t & operator[](size_t idx) const
index operator converts indexed element to casted type
casted_iterator(FromIt const &base=FromIt())
(copy) constructor from base iterator
casted_iterator type
self returning metafunction
iterator class provides access to its value_t after static cast
To value_type
the new value type
const value_t * operator->(void) const
dereference operator converts dereferenced element to casted type
Field automatically generated from an element using a field generation option.
const value_t & operator*(void) const
dereference operator converts dereferenced element to casted type