4#ifndef QASSOCIATIVEITERABLE_H
5#define QASSOCIATIVEITERABLE_H
7#include <QtCore/qiterable.h>
8#include <QtCore/qvariant.h>
17 using reference = QVariantRef<QAssociativeIterator>;
18 using pointer = QVariantPointer<QAssociativeIterator>;
25 QVariantRef<QAssociativeIterator>
value()
const;
27 QVariantRef<QAssociativeIterator>
operator*()
const;
28 QVariantPointer<QAssociativeIterator> operator->()
const;
53 using iterator = QTaggedIterator<QAssociativeIterator, void>;
59 using InputIterator = QTaggedIterator<iterator, std::input_iterator_tag>;
83 template<
typename Po
inter>
92 :
QIterable(metaAssociation, metaType.alignOf(), iterable)
99 :
QIterable(metaAssociation, metaType.alignOf(), iterable)
107 QIterable::operator=(std::move(
other));
135 if (m_pointer ==
nullptr)
138 const auto metaAssociation = m_pointer->metaContainer();
139 const QMetaType metaType(metaAssociation.mappedMetaType());
141 return m_pointer->key();
144 metaAssociation.mappedAtIterator(m_pointer->constIterator(),
145 metaType == QMetaType::fromType<QVariant>() ? &
v :
v.data());
153 if (m_pointer ==
nullptr)
156 const auto metaAssociation = m_pointer->metaContainer();
157 const QMetaType metaType(metaAssociation.mappedMetaType());
160 metaAssociation.setMappedAtIterator(m_pointer->constIterator(),
161 coercer.coerce(
value, metaType));
QAssociativeConstIterator(QConstIterator &&it)
The QAssociativeIterable class is an iterable interface for an associative container in a QVariant.
QTaggedIterator< iterator, std::forward_iterator_tag > ForwardIterator
Exposes an iterator using std::forward_iterator_tag.
QAssociativeIterable(const T *p)
QTaggedIterator< const_iterator, std::forward_iterator_tag > ForwardConstIterator
Exposes a const_iterator using std::forward_iterator_tag.
QTaggedIterator< QAssociativeConstIterator, void > const_iterator
const_iterator begin() const
QTaggedIterator< const_iterator, std::random_access_iterator_tag > RandomAccessConstIterator
Exposes a const_iterator using std::random_access_iterator_tag.
QAssociativeIterable(T *p)
QAssociativeIterable(const QMetaAssociation &metaAssociation, const QMetaType &metaType, const void *iterable)
QTaggedIterator< iterator, std::input_iterator_tag > InputIterator
Exposes an iterator using std::input_iterator_tag.
const_iterator constBegin() const
QTaggedIterator< const_iterator, std::bidirectional_iterator_tag > BidirectionalConstIterator
Exposes a const_iterator using std::bidirectional_iterator_tag.
const_iterator constFind(const QVariant &key) const
QAssociativeIterable(QIterable< QMetaAssociation > &&other)
QTaggedIterator< const_iterator, std::input_iterator_tag > InputConstIterator
Exposes a const_iterator using std::input_iterator_tag.
const_iterator constEnd() const
QTaggedIterator< iterator, std::bidirectional_iterator_tag > BidirectionalIterator
Exposes an iterator using std::bidirectional_iterator_tag.
QTaggedIterator< QAssociativeIterator, void > iterator
const_iterator end() const
QAssociativeIterable & operator=(QIterable< QMetaAssociation > &&other)
QAssociativeIterable(const QMetaAssociation &metaAssociation, const QMetaType &metaType, void *iterable)
QTaggedIterator< iterator, std::random_access_iterator_tag > RandomAccessIterator
Exposes an iterator using std::random_access_iterator_tag.
QAssociativeIterable(const QMetaAssociation &metaAssociation, Pointer iterable)
QVariantRef< QAssociativeIterator > reference
QVariantPointer< QAssociativeIterator > pointer
QAssociativeIterator(QIterator &&it)
QConstIterator< Container > constBegin() const
Returns a QConstIterator for the beginning of the container.
QIterator< Container > mutableEnd()
Returns a QSequentialIterable::iterator for the end of the container.
QIterator< Container > mutableBegin()
Returns a QIterator for the beginning of the container.
QConstIterator< Container > constEnd() const
Returns a Qterable::QConstIterator for the end of the container.
Emulated const pointer to QVariant based on a pointer.
The QVariantRef acts as a non-const reference to a QVariant.
QVariantRef & operator=(const QVariant &value)
Assigns a new value to the value pointed to by the pointer this QVariantRef refers to.
QSet< QString >::iterator it
Combined button and popup list for selecting options.
constexpr timespec operator*(const timespec &t1, int mul)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLsizei const GLfloat * v
[13]
#define Q_DECLARE_TYPEINFO(TYPE, FLAGS)
settings setValue("DataPump/bgcolor", color)
The QConstIterator allows iteration over a container in a QVariant.
The QIterator is a template class that allows iteration over a container in a QVariant.