1 #ifndef CONTAINER_CONST_CIRCULAR_ITERATOR_H_
2 #define CONTAINER_CONST_CIRCULAR_ITERATOR_H_
25 #include <type_traits>
36 typename std::add_const<typename T::value_type>::type,
37 typename std::add_const<typename T::value_type>::type*,
38 typename std::add_const<typename T::value_type>::type&>;
118 #endif // end-of-include-guard
Implementation of a circular iterator.
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.
Namespace for the core simulator.
Circular iterator implementation.
CircularIterator< T > next(CircularIterator< T > i)
Helper yields the position the iterator would have if moved forward (in circular fashion) by 1 positi...
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...
Impl_::CircularIterator< T, typename T::value_type > CircularIterator
Alias template defines non-const circular iterator.
CircularIterator< T > prev(CircularIterator< T > i)
Helper yields the position the iterator would have if moved backward (in circular fashion) by 1 posit...