241class QKeyValueIterator
244 typedef typename Iterator::iterator_category iterator_category;
245 typedef typename Iterator::difference_type difference_type;
246 typedef std::pair<Key, T> value_type;
247 typedef const value_type &reference;
249 QKeyValueIterator() =
default;
250 constexpr explicit QKeyValueIterator(Iterator o)
noexcept(std::is_nothrow_move_constructible<Iterator>::value)
253 std::pair<Key, T> operator*()
const {
254 return std::pair<Key, T>(i.key(), i.value());
257 using pointer = QtPrivate::ArrowProxy<value_type>;
259 pointer operator->()
const {
260 return pointer{std::pair<Key, T>(i.key(), i.value())};
263 friend bool operator==(QKeyValueIterator lhs, QKeyValueIterator rhs)
noexcept {
return lhs.i == rhs.i; }
264 friend bool operator!=(QKeyValueIterator lhs, QKeyValueIterator rhs)
noexcept {
return lhs.i != rhs.i; }
266 inline QKeyValueIterator &operator++() { ++i;
return *
this; }
267 inline QKeyValueIterator operator++(
int) {
return QKeyValueIterator(i++);}
268 inline QKeyValueIterator &operator--() { --i;
return *
this; }
269 inline QKeyValueIterator operator--(
int) {
return QKeyValueIterator(i--); }
270 Iterator base()
const {
return i; }