27class ConstRowIterator :
protected Field
30 using pointer =
const Field *;
31 using reference =
const Field &;
32 using value_type =
const Field;
33 using size_type = Row::SizeType;
34 using difference_type = Row::DifferenceType;
35 using iterator_category = std::random_access_iterator_tag;
49 ConstRowIterator operator++(
int);
51 ConstRowIterator &operator++()
57 ConstRowIterator operator--(
int);
59 ConstRowIterator &operator--()
65 ConstRowIterator &operator+=(difference_type i)
71 ConstRowIterator &operator-=(difference_type i)
77 bool operator==(
const ConstRowIterator &other)
const
82 bool operator!=(
const ConstRowIterator &other)
const
87 bool operator>(
const ConstRowIterator &other)
const
92 bool operator<(
const ConstRowIterator &other)
const
97 bool operator>=(
const ConstRowIterator &other)
const
102 bool operator<=(
const ConstRowIterator &other)
const
110 ConstRowIterator(
const Row &r, SizeType column) noexcept : Field(r, column)
115class ConstReverseRowIterator :
private ConstRowIterator
118 using super = ConstRowIterator;
119 using iterator_type = ConstRowIterator;
120 using iterator_type::difference_type;
121 using iterator_type::iterator_category;
122 using iterator_type::pointer;
123 using iterator_type::reference;
127 ConstReverseRowIterator(
const ConstReverseRowIterator &rhs)
128 : ConstRowIterator(rhs)
132 explicit ConstReverseRowIterator(
const ConstRowIterator &rhs)
133 : ConstRowIterator(rhs)
138 ConstRowIterator base()
const noexcept;
140 using iterator_type::operator->;
141 using iterator_type::operator*;
143 ConstReverseRowIterator operator++(
int);
145 ConstReverseRowIterator &operator++()
147 iterator_type::operator--();
151 ConstReverseRowIterator operator--(
int);
153 ConstReverseRowIterator &operator--()
155 iterator_type::operator++();
159 ConstReverseRowIterator &operator+=(difference_type i)
161 iterator_type::operator-=(i);
165 ConstReverseRowIterator &operator-=(difference_type i)
167 iterator_type::operator+=(i);
171 bool operator==(
const ConstReverseRowIterator &other)
const
173 return column_ == other.column_;
176 bool operator!=(
const ConstReverseRowIterator &other)
const
178 return column_ != other.column_;
181 bool operator>(
const ConstReverseRowIterator &other)
const
183 return column_ < other.column_;
186 bool operator<(
const ConstReverseRowIterator &other)
const
188 return column_ > other.column_;
191 bool operator>=(
const ConstReverseRowIterator &other)
const
193 return column_ <= other.column_;
196 bool operator<=(
const ConstReverseRowIterator &other)
const
198 return column_ >= other.column_;