Ranges (detail)

SegmentedRange

template<typename SegRng>
concept SegmentedRange
  1. Refines the ForwardRange (stl) concept.

  2. SegRng provides the method rows.

Notation

SegRng rng

Valid Expressions

  • All expression from ForwardRange (stl) are valid.

  • rng.rows() return-type models ForwardRange (stl).

  • stl::iter_value_t<stl::iterator_t<stl::iter_value_t<stl::iterator_t<decltype(rng.rows())>>>> must be the same as stl::iter_value_t<stl::iterator_t<SegRng>>.

Implementation

  template <class R>
  concept reversible_mdrange = MDBidirectionalRange<R> || ::ranges::cpp20::bidirectional_range<R>;

}

ReversibleRange

template<typename RevRng>
concept ReversibleRange
  1. Refines the ForwardRange (stl) concept.

  1. RevRng provides the method reversed.

Notation

RevRng rng

Valid Expressions

  • All expression from ForwardRange (stl) are valid.

  • rng.reversed() return-type models ForwardRange (stl).

  • stl::iter_value_t<stl::iterator_t<decltype(rng.reversed())>>> must be the same as stl::iter_value_t<stl::iterator_t<RevRng>>.

Implementation