1// Copyright (C) 2020 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QCONTAINERFWD_H
5#define QCONTAINERFWD_H
6
7#include <QtCore/qtconfigmacros.h>
8#include <QtCore/qtypes.h>
9
10#if 0
11#pragma qt_class(QtContainerFwd)
12#endif
13
14// std headers can unfortunately not be forward declared
15#include <cstddef> // std::size_t
16#include <utility>
17
18QT_BEGIN_NAMESPACE
19
20template <typename Key, typename T> class QCache;
21template <typename Key, typename T> class QHash;
22template <typename Key, typename T> class QMap;
23template <typename Key, typename T> class QMultiHash;
24template <typename Key, typename T> class QMultiMap;
25#ifndef QT_NO_QPAIR
26template <typename T1, typename T2>
27using QPair = std::pair<T1, T2>;
28#endif
29template <typename T> class QQueue;
30template <typename T> class QSet;
31template <typename T, std::size_t E = std::size_t(-1) /* = std::dynamic_extent*/> class QSpan;
32template <typename T> class QStack;
33constexpr qsizetype QVarLengthArrayDefaultPrealloc = 256;
34template <typename T, qsizetype Prealloc = QVarLengthArrayDefaultPrealloc> class QVarLengthArray;
35template <typename T> class QList;
36class QString;
37#ifndef Q_QDOC
38template<typename T> using QVector = QList<T>;
39using QStringList = QList<QString>;
40class QByteArray;
41using QByteArrayList = QList<QByteArray>;
42#else
43template<typename T> class QVector;
44class QStringList;
45class QByteArrayList;
46#endif
47class QMetaType;
48class QVariant;
49
50using QVariantList = QList<QVariant>;
51using QVariantMap = QMap<QString, QVariant>;
52using QVariantHash = QHash<QString, QVariant>;
53using QVariantPair = std::pair<QVariant, QVariant>;
54
55QT_END_NAMESPACE
56
57#endif // QCONTAINERFWD_H
58