12template <
class IndexT =
size_t>
22template <
class IndexT>
28template <
class IndexT>
34template <
class IndexT =
size_t>
53 assert(
i.zerobased <
max);
55 i.circular =
i.circular + 1 ==
max ?
Index{0} :
i.circular + 1;
59 assert(
i.zerobased > 0);
61 i.circular =
i.circular ==
Index{0} ?
max - 1 :
i.circular - 1;
78template <
class IndexT>
86template <
class IndexT>
93template <
class IndexT =
size_t>
138template <
class IndexT>
145template <
class IndexT>
152template <
class IndexT>
188template <
class IndexT>
CircularIndexIterator< Index > const_iterator
const_reverse_iterator crbegin() const
CircularRange(Index size, Index idx1, Index idx2, Index max)
const_reverse_iterator reverse_iterator
CircularIndices< Index > Indices
reverse_iterator rend() const
const_reverse_iterator crend() const
reverse_iterator rbegin() const
ReverseCircularIndexIterator< Index > const_reverse_iterator
const_iterator cend() const
const_iterator cbegin() const
typename ForwardRange::reverse_iterator iterator
const_iterator cend() const
const_reverse_iterator crend() const
const_reverse_iterator crbegin() const
typename ForwardRange::Index Index
typename ForwardRange::Indices Indices
ReverseCircularRange(Index size, Index idx1, Index idx2, Index max)
CircularRange< IndexT > ForwardRange
reverse_iterator rend() const
reverse_iterator rbegin() const
typename ForwardRange::iterator reverse_iterator
ReverseCircularRange(const ForwardRange &forwardrange)
typename ForwardRange::const_iterator const_reverse_iterator
typename ForwardRange::const_reverse_iterator const_iterator
const_iterator cbegin() const
ForwardRange forwardrange
CircularIndexIterator operator--(int)
reference operator*() const
CircularIndexIterator(Indices i, Index max)
CircularIndices< Index > Indices
std::ptrdiff_t difference_type
CircularIndexIterator & operator--()
bool operator!=(CircularIndexIterator< IndexT > a, CircularIndexIterator< IndexT > b)
CircularIndexIterator operator++(int)
bool operator==(CircularIndexIterator< IndexT > a, CircularIndexIterator< IndexT > b)
std::input_iterator_tag iterator_category
CircularIndexIterator & operator++()
bool operator!=(CircularIndices< IndexT > a, CircularIndices< IndexT > b)
bool operator==(CircularIndices< IndexT > a, CircularIndices< IndexT > b)
CircularIndices(Index zerobased, Index circular)
reference operator*() const
ReverseCircularIndexIterator & operator++()
std::ptrdiff_t difference_type
ForwardIterator forwardit
ReverseCircularIndexIterator()
CircularIndexIterator< IndexT > ForwardIterator
bool operator==(ReverseCircularIndexIterator< IndexT > a, ReverseCircularIndexIterator< IndexT > b)
ReverseCircularIndexIterator & operator--()
ReverseCircularIndexIterator operator--(int)
std::input_iterator_tag iterator_category
ReverseCircularIndexIterator(ForwardIterator forwardit)
typename ForwardIterator::Index Index
typename ForwardIterator::Indices Indices
ReverseCircularIndexIterator operator++(int)
ReverseCircularIndexIterator(Indices i, Index max)
bool operator!=(ReverseCircularIndexIterator< IndexT > a, ReverseCircularIndexIterator< IndexT > b)