QTaggedIterator Class
template <typename Iterator, typename IteratorCategory> class QTaggedIteratorQTaggedIterator is a template class that wraps an iterator and exposes standard iterator traits. More...
| Header: | #include <QTaggedIterator> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Core)target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
| Since: | Qt 6.0 |
Public Functions
| QTaggedIterator(Iterator &&it) | |
| bool | operator!=(const QTaggedIterator<Iterator, IteratorCategory> &other) const |
| QTaggedIterator<Iterator, IteratorCategory> | operator+(qsizetype j) const |
| QTaggedIterator<Iterator, IteratorCategory> & | operator++() |
| QTaggedIterator<Iterator, IteratorCategory> | operator++(int x) |
| QTaggedIterator<Iterator, IteratorCategory> & | operator+=(qsizetype j) |
| qsizetype | operator-(const QTaggedIterator<Iterator, IteratorCategory> &j) const |
| QTaggedIterator<Iterator, IteratorCategory> | operator-(qsizetype j) const |
| QTaggedIterator<Iterator, IteratorCategory> & | operator--() |
| QTaggedIterator<Iterator, IteratorCategory> | operator--(int x) |
| QTaggedIterator<Iterator, IteratorCategory> & | operator-=(qsizetype j) |
| bool | operator==(const QTaggedIterator<Iterator, IteratorCategory> &other) const |
Related Non-Members
| QTaggedIterator<Iterator, IteratorCategory> | operator+(qsizetype j, const QTaggedIterator<Iterator, IteratorCategory> &k) |
Detailed Description
In order to use an iterator any of the standard algorithms, its iterator traits need to be known. As QMetaSequence::Iterable can work with many different kinds of containers, we cannot declare the traits in the iterator classes themselves. A QTaggedIterator gives you a way to explicitly declare a trait for a concrete instance of an iterator or QConstIterator.
Member Function Documentation
QTaggedIterator::QTaggedIterator(Iterator &&it)
Constructs a QTaggedIterator from an iterator or QConstIterator it. Checks whether the IteratorCategory passed as template argument matches the run time capabilities of it; if there's no match, it is refused.
bool QTaggedIterator::operator!=(const QTaggedIterator<Iterator, IteratorCategory> &other) const
Returns true if other points to a different item than this iterator; otherwise returns false.
See also operator==().
QTaggedIterator<Iterator, IteratorCategory> QTaggedIterator::operator+(qsizetype j) const
Returns an iterator to the item at j positions forward from this iterator.
See also operator-() and operator+=().
QTaggedIterator<Iterator, IteratorCategory> &QTaggedIterator::operator++()
The prefix ++ operator (++it) advances the iterator to the next item in the container and returns an iterator to the new current item.
Calling this function on QMetaSequence::Iterable::constEnd() leads to undefined results.
See also operator--().
QTaggedIterator<Iterator, IteratorCategory> QTaggedIterator::operator++(int x)
The postfix ++ operator (it++) advances the iterator to the next item in the container and returns an iterator to the previously current item.
This is an overloaded function.
QTaggedIterator<Iterator, IteratorCategory> &QTaggedIterator::operator+=(qsizetype j)
Advances the iterator by j items.
See also operator-=() and operator+().
qsizetype QTaggedIterator::operator-(const QTaggedIterator<Iterator, IteratorCategory> &j) const
Returns the distance between this iterator and j.
See also operator+(), operator-=(), and QIterable::canReverseIterate().
QTaggedIterator<Iterator, IteratorCategory> QTaggedIterator::operator-(qsizetype j) const
Returns an iterator to the item at j positions backward from this iterator.
If the container in the QVariant does not support bi-directional iteration, calling this function leads to undefined results.
See also operator+(), operator-=(), and QIterable::canReverseIterate().
QTaggedIterator<Iterator, IteratorCategory> &QTaggedIterator::operator--()
The prefix -- operator (--it) makes the preceding item current and returns an iterator to the new current item.
Calling this function on QMetaSequence::Iterable::constBegin() leads to undefined results.
If the container in the QVariant does not support bi-directional iteration, calling this function leads to undefined results.
See also operator++() and QIterable::canReverseIterate().
QTaggedIterator<Iterator, IteratorCategory> QTaggedIterator::operator--(int x)
The postfix -- operator (it--) makes the preceding item current and returns an iterator to the previously current item.
If the container in the QVariant does not support bi-directional iteration, calling this function leads to undefined results.
This is an overloaded function.
See also QIterable::canReverseIterate().
QTaggedIterator<Iterator, IteratorCategory> &QTaggedIterator::operator-=(qsizetype j)
Makes the iterator go back by j items.
If the container in the QVariant does not support bi-directional iteration, calling this function leads to undefined results.
See also operator+=(), operator-(), and QIterable::canReverseIterate().
bool QTaggedIterator::operator==(const QTaggedIterator<Iterator, IteratorCategory> &other) const
Returns true if other points to the same item as this iterator; otherwise returns false.
See also operator!=().
Related Non-Members
QTaggedIterator<Iterator, IteratorCategory> operator+(qsizetype j, const QTaggedIterator<Iterator, IteratorCategory> &k)
Returns an iterator to the item at j positions forward from iterator k.