Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
QSequentialIterable Class Reference

The QSequentialIterable class is an iterable interface for a container in a QVariant. More...

#include <qsequentialiterable.h>

+ Inheritance diagram for QSequentialIterable:
+ Collaboration diagram for QSequentialIterable:

Public Types

enum  Position { Unspecified , AtBegin , AtEnd }
 
using iterator = QTaggedIterator<QSequentialIterator, void>
 
using const_iterator = QTaggedIterator<QSequentialConstIterator, void>
 
using RandomAccessIterator = QTaggedIterator<iterator, std::random_access_iterator_tag>
 Exposes an iterator using std::random_access_iterator_tag.
 
using BidirectionalIterator = QTaggedIterator<iterator, std::bidirectional_iterator_tag>
 Exposes an iterator using std::bidirectional_iterator_tag.
 
using ForwardIterator = QTaggedIterator<iterator, std::forward_iterator_tag>
 Exposes an iterator using std::forward_iterator_tag.
 
using InputIterator = QTaggedIterator<iterator, std::input_iterator_tag>
 Exposes an iterator using std::input_iterator_tag.
 
using RandomAccessConstIterator = QTaggedIterator<const_iterator, std::random_access_iterator_tag>
 Exposes a const_iterator using std::random_access_iterator_tag.
 
using BidirectionalConstIterator = QTaggedIterator<const_iterator, std::bidirectional_iterator_tag>
 Exposes a const_iterator using std::bidirectional_iterator_tag.
 
using ForwardConstIterator = QTaggedIterator<const_iterator, std::forward_iterator_tag>
 Exposes a const_iterator using std::forward_iterator_tag.
 
using InputConstIterator = QTaggedIterator<const_iterator, std::input_iterator_tag>
 Exposes a const_iterator using std::input_iterator_tag.
 

Public Member Functions

template<class T >
 QSequentialIterable (const T *p)
 
template<class T >
 QSequentialIterable (T *p)
 
 QSequentialIterable ()
 
template<typename Pointer >
 QSequentialIterable (const QMetaSequence &metaSequence, Pointer iterable)
 
 QSequentialIterable (const QMetaSequence &metaSequence, const QMetaType &metaType, void *iterable)
 
 QSequentialIterable (const QMetaSequence &metaSequence, const QMetaType &metaType, const void *iterable)
 
 QSequentialIterable (QIterable< QMetaSequence > &&other)
 
QSequentialIterableoperator= (QIterable< QMetaSequence > &&other)
 
const_iterator begin () const
 
const_iterator end () const
 
const_iterator constBegin () const
 
const_iterator constEnd () const
 
iterator mutableBegin ()
 
iterator mutableEnd ()
 
QVariant at (qsizetype idx) const
 Returns the value at position idx in the container.
 
void set (qsizetype idx, const QVariant &value)
 Sets the element at position idx in the container to value.
 
void addValue (const QVariant &value, Position position=Unspecified)
 Adds value to the container, at position, if possible.
 
void removeValue (Position position=Unspecified)
 Removes a value from the container, at position, if possible.
 
QMetaType valueMetaType () const
 
- Public Member Functions inherited from QIterable< QMetaSequence >
 QIterable (const QMetaSequence &metaContainer, const T *p)
 
 QIterable (const QMetaSequence &metaContainer, T *p)
 
 QIterable (const QMetaSequence &metaContainer, Pointer iterable)
 
 QIterable (const QMetaSequence &metaContainer, qsizetype alignment, const void *p)
 
 QIterable (const QMetaSequence &metaContainer, qsizetype alignment, void *p)
 
bool canInputIterate () const
 Returns whether the container has an input iterator.
 
bool canForwardIterate () const
 Returns whether it is possible to iterate over the container in forward direction.
 
bool canReverseIterate () const
 Returns whether it is possible to iterate over the container in reverse.
 
bool canRandomAccessIterate () const
 Returns whether it is possible to efficiently skip over multiple values using and iterator.
 
const voidconstIterable () const
 
voidmutableIterable ()
 
QConstIterator< QMetaSequenceconstBegin () const
 Returns a QConstIterator for the beginning of the container.
 
QConstIterator< QMetaSequenceconstEnd () const
 Returns a Qterable::QConstIterator for the end of the container.
 
QIterator< QMetaSequencemutableBegin ()
 Returns a QIterator for the beginning of the container.
 
QIterator< QMetaSequencemutableEnd ()
 Returns a QSequentialIterable::iterator for the end of the container.
 
qsizetype size () const
 Returns the number of values in the container.
 
QMetaSequence metaContainer () const
 

Additional Inherited Members

- Protected Attributes inherited from QIterable< QMetaSequence >
uint m_revision
 
QtPrivate::QConstPreservingPointer< void, quint16m_iterable
 
QMetaSequence m_metaContainer
 

Detailed Description

The QSequentialIterable class is an iterable interface for a container in a QVariant.

Since
5.2 \inmodule QtCore

This class allows several methods of accessing the values of a container held within a QVariant. An instance of QSequentialIterable can be extracted from a QVariant if it can be converted to a QVariantList.

QList<int> intList = {7, 11, 42};
// Can use foreach:
foreach (const QVariant &v, iterable) {
qDebug() << v;
}
// Can use C++11 range-for:
for (const QVariant &v : iterable) {
qDebug() << v;
}
// Can use iterators:
const QSequentialIterable::const_iterator end = iterable.end();
for ( ; it != end; ++it) {
qDebug() << *it;
}
}

The container itself is not copied before iterating over it.

See also
QVariant

Definition at line 42 of file qsequentialiterable.h.

Member Typedef Documentation

◆ BidirectionalConstIterator

Exposes a const_iterator using std::bidirectional_iterator_tag.

Definition at line 54 of file qsequentialiterable.h.

◆ BidirectionalIterator

Exposes an iterator using std::bidirectional_iterator_tag.

Definition at line 49 of file qsequentialiterable.h.

◆ const_iterator

◆ ForwardConstIterator

Exposes a const_iterator using std::forward_iterator_tag.

Definition at line 55 of file qsequentialiterable.h.

◆ ForwardIterator

Exposes an iterator using std::forward_iterator_tag.

Definition at line 50 of file qsequentialiterable.h.

◆ InputConstIterator

Exposes a const_iterator using std::input_iterator_tag.

Definition at line 56 of file qsequentialiterable.h.

◆ InputIterator

Exposes an iterator using std::input_iterator_tag.

Definition at line 51 of file qsequentialiterable.h.

◆ iterator

◆ RandomAccessConstIterator

Exposes a const_iterator using std::random_access_iterator_tag.

Definition at line 53 of file qsequentialiterable.h.

◆ RandomAccessIterator

Exposes an iterator using std::random_access_iterator_tag.

Definition at line 48 of file qsequentialiterable.h.

Member Enumeration Documentation

◆ Position

Enumerator
Unspecified 
AtBegin 
AtEnd 

Definition at line 116 of file qsequentialiterable.h.

Constructor & Destructor Documentation

◆ QSequentialIterable() [1/7]

template<class T >
QSequentialIterable::QSequentialIterable ( const T * p)
inline

Definition at line 59 of file qsequentialiterable.h.

References Q_UNUSED.

◆ QSequentialIterable() [2/7]

template<class T >
QSequentialIterable::QSequentialIterable ( T * p)
inline

Definition at line 66 of file qsequentialiterable.h.

◆ QSequentialIterable() [3/7]

QSequentialIterable::QSequentialIterable ( )
inline

Definition at line 71 of file qsequentialiterable.h.

◆ QSequentialIterable() [4/7]

template<typename Pointer >
QSequentialIterable::QSequentialIterable ( const QMetaSequence & metaSequence,
Pointer iterable )
inline

Definition at line 77 of file qsequentialiterable.h.

◆ QSequentialIterable() [5/7]

QSequentialIterable::QSequentialIterable ( const QMetaSequence & metaSequence,
const QMetaType & metaType,
void * iterable )
inline

Definition at line 83 of file qsequentialiterable.h.

◆ QSequentialIterable() [6/7]

QSequentialIterable::QSequentialIterable ( const QMetaSequence & metaSequence,
const QMetaType & metaType,
const void * iterable )
inline

Definition at line 90 of file qsequentialiterable.h.

◆ QSequentialIterable() [7/7]

QSequentialIterable::QSequentialIterable ( QIterable< QMetaSequence > && other)
inline

Definition at line 96 of file qsequentialiterable.h.

Member Function Documentation

◆ addValue()

void QSequentialIterable::addValue ( const QVariant & value,
Position position = Unspecified )

Adds value to the container, at position, if possible.

Definition at line 71 of file qsequentialiterable.cpp.

References QMetaSequence::addValue(), QMetaSequence::addValueAtBegin(), QMetaSequence::addValueAtEnd(), AtBegin, AtEnd, QtPrivate::QVariantTypeCoercer::coerce(), QIterable< QMetaSequence >::metaContainer(), QIterable< QMetaSequence >::mutableIterable(), position(), Unspecified, and valueMetaType().

+ Here is the call graph for this function:

◆ at()

◆ begin()

const_iterator QSequentialIterable::begin ( ) const
inline

Definition at line 104 of file qsequentialiterable.h.

◆ constBegin()

const_iterator QSequentialIterable::constBegin ( ) const
inline

Definition at line 107 of file qsequentialiterable.h.

References QIterable< Container >::constBegin().

+ Here is the call graph for this function:

◆ constEnd()

const_iterator QSequentialIterable::constEnd ( ) const
inline

Definition at line 108 of file qsequentialiterable.h.

References QIterable< Container >::constEnd().

+ Here is the call graph for this function:

◆ end()

const_iterator QSequentialIterable::end ( ) const
inline

Definition at line 105 of file qsequentialiterable.h.

◆ mutableBegin()

iterator QSequentialIterable::mutableBegin ( )
inline

Definition at line 110 of file qsequentialiterable.h.

References QIterable< Container >::mutableBegin().

+ Here is the call graph for this function:

◆ mutableEnd()

iterator QSequentialIterable::mutableEnd ( )
inline

Definition at line 111 of file qsequentialiterable.h.

References QIterable< Container >::mutableEnd().

+ Here is the call graph for this function:

◆ operator=()

QSequentialIterable & QSequentialIterable::operator= ( QIterable< QMetaSequence > && other)
inline

Definition at line 98 of file qsequentialiterable.h.

References other().

+ Here is the call graph for this function:

◆ removeValue()

void QSequentialIterable::removeValue ( Position position = Unspecified)

Removes a value from the container, at position, if possible.

Definition at line 95 of file qsequentialiterable.cpp.

References AtBegin, AtEnd, QIterable< QMetaSequence >::metaContainer(), QIterable< QMetaSequence >::mutableIterable(), position(), QMetaSequence::removeValue(), QMetaSequence::removeValueAtBegin(), QMetaSequence::removeValueAtEnd(), and Unspecified.

+ Here is the call graph for this function:

◆ set()

void QSequentialIterable::set ( qsizetype idx,
const QVariant & value )

◆ valueMetaType()

QMetaType QSequentialIterable::valueMetaType ( ) const

Definition at line 113 of file qsequentialiterable.cpp.

References QIterable< QMetaSequence >::metaContainer(), and valueMetaType().

Referenced by addValue(), at(), set(), and valueMetaType().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

The documentation for this class was generated from the following files: