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
qiterator.h File Reference

(900d4bd29f30effbb5dbb0efa96886af03839a15)

#include <QtCore/qglobal.h>
#include <QtCore/qcontainertools_impl.h>
+ Include dependency graph for qiterator.h:

Go to the source code of this file.

Classes

class  QKeyValueIterator< Key, T, Iterator >
 
class  QtPrivate::QKeyValueRangeStorage< Map >
 
class  QtPrivate::QKeyValueRangeStorage< Map & >
 
class  QtPrivate::QKeyValueRange< Map >
 

Namespaces

namespace  QtPrivate
 \macro QT_NO_KEYWORDS >
 

Macros

#define Q_DISABLE_BACKWARD_ITERATOR    template<typename It = decltype(i), QtPrivate::IfIteratorCanMoveBackwards<It> = true>
 
#define Q_DECLARE_SEQUENTIAL_ITERATOR(C)
 
#define Q_DECLARE_MUTABLE_SEQUENTIAL_ITERATOR(C)
 
#define Q_DECLARE_ASSOCIATIVE_ITERATOR(C)
 
#define Q_DECLARE_MUTABLE_ASSOCIATIVE_ITERATOR(C)
 
#define Q_DECLARE_ASSOCIATIVE_FORWARD_ITERATOR(C)
 
#define Q_DECLARE_MUTABLE_ASSOCIATIVE_FORWARD_ITERATOR(C)
 

Functions

template<typename Map >
 QtPrivate::QKeyValueRange (Map &) -> QKeyValueRange< Map & >
 
template<typename Map , std::enable_if_t<!std::is_reference_v< Map >, bool > = false>
 QtPrivate::QKeyValueRange (Map &&) -> QKeyValueRange< std::remove_const_t< Map > >
 

Macro Definition Documentation

◆ Q_DECLARE_ASSOCIATIVE_FORWARD_ITERATOR

#define Q_DECLARE_ASSOCIATIVE_FORWARD_ITERATOR ( C)
Value:
\
template <class Key, class T> \
class Q##C##Iterator \
{ \
typedef typename Q##C<Key,T>::const_iterator const_iterator; \
Q##C<Key,T> c; \
const_iterator i, n; \
inline bool item_exists() const { return n != c.constEnd(); } \
public: \
typedef const_iterator Item; \
inline Q##C##Iterator(const Q##C<Key,T> &container) \
: c(container), i(c.constBegin()), n(c.constEnd()) {} \
inline Q##C##Iterator &operator=(const Q##C<Key,T> &container) \
{ c = container; i = c.constBegin(); n = c.constEnd(); return *this; } \
inline void toFront() { i = c.constBegin(); n = c.constEnd(); } \
inline void toBack() { i = c.constEnd(); n = c.constEnd(); } \
inline bool hasNext() const { return i != c.constEnd(); } \
inline Item next() { n = i++; return n; } \
inline Item peekNext() const { return i; } \
inline const T &value() const { Q_ASSERT(item_exists()); return *n; } \
inline const Key &key() const { Q_ASSERT(item_exists()); return n.key(); } \
inline bool findNext(const T &t) \
{ while ((n = i) != c.constEnd()) if (*i++ == t) return true; return false; } \
};
Definition lalr.h:84
i toBack()
short next
Definition keywords.cpp:445
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLuint64 key
GLfloat n
const GLubyte * c
GLdouble GLdouble t
Definition qopenglext.h:243
#define Q_ASSERT(cond)
Definition qrandom.cpp:47
static bool hasNext(const Symbols &symbols, int i)
Definition main.cpp:78

Definition at line 172 of file qiterator.h.

◆ Q_DECLARE_ASSOCIATIVE_ITERATOR

#define Q_DECLARE_ASSOCIATIVE_ITERATOR ( C)

Definition at line 94 of file qiterator.h.

◆ Q_DECLARE_MUTABLE_ASSOCIATIVE_FORWARD_ITERATOR

#define Q_DECLARE_MUTABLE_ASSOCIATIVE_FORWARD_ITERATOR ( C)
Value:
\
template <class Key, class T> \
class QMutable##C##Iterator \
{ \
typedef typename Q##C<Key,T>::iterator iterator; \
typedef typename Q##C<Key,T>::const_iterator const_iterator; \
Q##C<Key,T> *c; \
iterator i, n; \
inline bool item_exists() const { return const_iterator(n) != c->constEnd(); } \
public: \
typedef iterator Item; \
inline QMutable##C##Iterator(Q##C<Key,T> &container) \
: c(&container) \
{ i = c->begin(); n = c->end(); } \
inline QMutable##C##Iterator &operator=(Q##C<Key,T> &container) \
{ c = &container; i = c->begin(); n = c->end(); return *this; } \
inline void toFront() { i = c->begin(); n = c->end(); } \
inline void toBack() { i = c->end(); n = c->end(); } \
inline bool hasNext() const { return const_iterator(i) != c->constEnd(); } \
inline Item next() { n = i++; return n; } \
inline Item peekNext() const { return i; } \
inline void remove() \
{ if (const_iterator(n) != c->constEnd()) { i = c->erase(n); n = c->end(); } } \
inline void setValue(const T &t) { if (const_iterator(n) != c->constEnd()) *n = t; } \
inline T &value() { Q_ASSERT(item_exists()); return *n; } \
inline const T &value() const { Q_ASSERT(item_exists()); return *n; } \
inline const Key &key() const { Q_ASSERT(item_exists()); return n.key(); } \
inline bool findNext(const T &t) \
{ while (const_iterator(n = i) != c->constEnd()) if (*i++ == t) return true; return false; } \
};
typename C::const_iterator const_iterator
settings setValue("DataPump/bgcolor", color)
settings remove("monkey")

Definition at line 198 of file qiterator.h.

◆ Q_DECLARE_MUTABLE_ASSOCIATIVE_ITERATOR

#define Q_DECLARE_MUTABLE_ASSOCIATIVE_ITERATOR ( C)

Definition at line 130 of file qiterator.h.

◆ Q_DECLARE_MUTABLE_SEQUENTIAL_ITERATOR

#define Q_DECLARE_MUTABLE_SEQUENTIAL_ITERATOR ( C)

Definition at line 53 of file qiterator.h.

◆ Q_DECLARE_SEQUENTIAL_ITERATOR

#define Q_DECLARE_SEQUENTIAL_ITERATOR ( C)
Value:
\
template <class T> \
class Q##C##Iterator \
{ \
typedef typename Q##C<T>::const_iterator const_iterator; \
Q##C<T> c; \
const_iterator i; \
public: \
inline Q##C##Iterator(const Q##C<T> &container) \
: c(container), i(c.constBegin()) {} \
inline Q##C##Iterator &operator=(const Q##C<T> &container) \
{ c = container; i = c.constBegin(); return *this; } \
inline void toFront() { i = c.constBegin(); } \
inline void toBack() { i = c.constEnd(); } \
inline bool hasNext() const { return i != c.constEnd(); } \
inline const T &next() { return *i++; } \
inline const T &peekNext() const { return *i; } \
Q_DISABLE_BACKWARD_ITERATOR \
inline bool hasPrevious() const { return i != c.constBegin(); } \
Q_DISABLE_BACKWARD_ITERATOR \
inline const T &previous() { return *--i; } \
Q_DISABLE_BACKWARD_ITERATOR \
inline const T &peekPrevious() const { const_iterator p = i; return *--p; } \
inline bool findNext(const T &t) \
{ while (i != c.constEnd()) if (*i++ == t) return true; return false; } \
Q_DISABLE_BACKWARD_ITERATOR \
inline bool findPrevious(const T &t) \
{ while (i != c.constBegin()) if (*(--i) == t) return true; \
return false; } \
};
GLfloat GLfloat p
[1]

Definition at line 21 of file qiterator.h.

◆ Q_DISABLE_BACKWARD_ITERATOR

#define Q_DISABLE_BACKWARD_ITERATOR    template<typename It = decltype(i), QtPrivate::IfIteratorCanMoveBackwards<It> = true>

Definition at line 17 of file qiterator.h.