9#include <dr/detail/iterator_adaptor.hpp>
17 using value_type = std::iter_value_t<Iter>;
18 using difference_type = std::iter_difference_t<Iter>;
19 using reference = std::iter_reference_t<Iter>;
24 using iterator_category = std::random_access_iterator_tag;
26 using is_passed_directly = ::std::true_type;
37 iterator operator+(difference_type offset)
const noexcept {
41 iterator operator-(difference_type offset)
const noexcept {
45 difference_type operator-(
iterator other)
const noexcept {
46 return iter_ - other.iter_;
49 bool operator<(
iterator other)
const noexcept {
return iter_ < other.iter_; }
51 bool operator>(
iterator other)
const noexcept {
return iter_ > iter_; }
53 bool operator<=(
iterator other)
const noexcept {
54 return iter_ <= other.iter_;
57 bool operator>=(
iterator other)
const noexcept {
58 return iter_ >= other.iter_;
83 iterator &operator+=(difference_type offset)
noexcept {
88 iterator &operator-=(difference_type offset)
noexcept {
93 reference operator*()
const noexcept {
return *iter_; }
95 reference operator[](difference_type offset)
const noexcept {
96 return reference(*(*
this + offset));
100 return iter.iter_ + n;
103 Iter base()
const noexcept {
return iter_; }
Definition: onedpl_direct_iterator.hpp:15