22 #include <type_traits>
34 using ConstCircularIterator = Impl_::CircularIterator<T, typename std::add_const<typename T::value_type>::type,
35 typename std::add_const<typename T::value_type>::type*,
36 typename std::add_const<typename T::value_type>::type&>;
106 template <
typename T>
CircularIterator< T > prev(CircularIterator< T > i)
Helper yields the position the iterator would have if moved backward (in circular fashion) by 1 posit...
ConstCircularIterator< typename T::const_iterator > make_const_circular(const T &c)
Helper produces const circular iterator whose range corresponds to the begin and end iterators of a c...
Implementation of a circular iterator.
Circular iterator implementation.
Impl_::CircularIterator< T, typename std::add_const< typename T::value_type >::type, typename std::add_const< typename T::value_type >::type *, typename std::add_const< typename T::value_type >::type & > ConstCircularIterator
Alias template defines const circular iterator.
CircularIterator< T > next(CircularIterator< T > i)
Helper yields the position the iterator would have if moved forward (in circular fashion) by 1 positi...