- Qt 6.11
- Qt Core
- C++ Classes
- QTaggedIterator
- Qt 6.11.1 Reference Documentation

# QTaggedIterator Class

template <typename Iterator, typename IteratorCategory> class QTaggedIterator

QTaggedIterator 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

- List of all members, including inherited members

## 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.