19 class primitive_iterator_t
22 using difference_type = std::ptrdiff_t;
23 static constexpr difference_type begin_value = 0;
24 static constexpr difference_type end_value = begin_value + 1;
27 difference_type m_it = (std::numeric_limits<std::ptrdiff_t>::min)();
30 constexpr difference_type get_value() const noexcept
50 return m_it == begin_value;
54 constexpr
bool is_end() const noexcept
56 return m_it == end_value;
61 return lhs.m_it == rhs.m_it;
64 friend constexpr
bool operator<(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
66 return lhs.m_it < rhs.m_it;
69 primitive_iterator_t operator+(difference_type n) noexcept
76 friend constexpr difference_type operator-(primitive_iterator_t lhs, primitive_iterator_t rhs) noexcept
78 return lhs.m_it - rhs.m_it;
81 primitive_iterator_t& operator++() noexcept
87 primitive_iterator_t
const operator++(
int) noexcept
94 primitive_iterator_t& operator--() noexcept
100 primitive_iterator_t
const operator--(
int) noexcept
107 primitive_iterator_t& operator+=(difference_type n) noexcept
113 primitive_iterator_t& operator-=(difference_type n) noexcept