27class ConstResultIterator :
protected Row
30 using iterator_category = std::random_access_iterator_tag;
31 using pointer =
const Row *;
32 using reference =
const Row &;
33 using value_type =
const Row;
34 using size_type = Result::SizeType;
35 using difference_type = Result::DifferenceType;
49 ConstResultIterator operator++(
int);
51 ConstResultIterator &operator++()
57 ConstResultIterator operator--(
int);
59 ConstResultIterator &operator--()
65 ConstResultIterator &operator+=(difference_type i)
71 ConstResultIterator &operator-=(difference_type i)
77 bool operator==(
const ConstResultIterator &other)
const
82 bool operator!=(
const ConstResultIterator &other)
const
87 bool operator>(
const ConstResultIterator &other)
const
92 bool operator<(
const ConstResultIterator &other)
const
97 bool operator>=(
const ConstResultIterator &other)
const
102 bool operator<=(
const ConstResultIterator &other)
const
107 ConstResultIterator(
const ConstResultIterator &)
noexcept =
default;
108 ConstResultIterator(ConstResultIterator &&)
noexcept =
default;
113 ConstResultIterator(
const Result &r, SizeType index) noexcept
119class ConstReverseResultIterator :
private ConstResultIterator
122 using super = ConstResultIterator;
123 using iterator_type = ConstResultIterator;
124 using iterator_type::difference_type;
125 using iterator_type::iterator_category;
126 using iterator_type::pointer;
127 using iterator_type::reference;
131 ConstReverseResultIterator(
const ConstReverseResultIterator &rhs)
132 : ConstResultIterator(rhs)
136 explicit ConstReverseResultIterator(
const ConstResultIterator &rhs)
137 : ConstResultIterator(rhs)
142 ConstResultIterator base()
const noexcept;
144 using iterator_type::operator->;
145 using iterator_type::operator*;
147 ConstReverseResultIterator operator++(
int);
149 ConstReverseResultIterator &operator++()
151 iterator_type::operator--();
155 ConstReverseResultIterator operator--(
int);
157 ConstReverseResultIterator &operator--()
159 iterator_type::operator++();
163 ConstReverseResultIterator &operator+=(difference_type i)
165 iterator_type::operator-=(i);
169 ConstReverseResultIterator &operator-=(difference_type i)
171 iterator_type::operator+=(i);
175 bool operator==(
const ConstReverseResultIterator &other)
const
177 return index_ == other.index_;
180 bool operator!=(
const ConstReverseResultIterator &other)
const
182 return index_ != other.index_;
185 bool operator>(
const ConstReverseResultIterator &other)
const
187 return index_ < other.index_;
190 bool operator<(
const ConstReverseResultIterator &other)
const
192 return index_ > other.index_;
195 bool operator>=(
const ConstReverseResultIterator &other)
const
197 return index_ <= other.index_;
200 bool operator<=(
const ConstReverseResultIterator &other)
const
202 return index_ >= other.index_;