Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qtextstream.h
Go to the documentation of this file.
1// Copyright (C) 2016 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// Qt-Security score:significant reason:header-decls-only
4
5#ifndef QTEXTSTREAM_H
6#define QTEXTSTREAM_H
7
8#include <QtCore/qiodevicebase.h>
9#include <QtCore/qchar.h>
10#include <QtCore/qstringconverter_base.h>
11
12#include <memory>
13
14#include <stdio.h>
15
16#if 0
17// the macros around the class name throw off syncqt:
18#pragma qt_class(QTextStream)
19#endif
20
21#ifdef Status
22#error qtextstream.h must be included before any header file that defines Status
23#endif
24
25QT_BEGIN_NAMESPACE
26
27class QIODevice;
28class QLocale;
29class QString;
30
31#if !QT_DEPRECATED_SINCE(6, 9)
32# define QT_NO_INHERITABLE_TEXT_STREAM
33#endif
34
35#ifdef QT_NO_INHERITABLE_TEXT_STREAM
36# define QT_TEXT_STREAM_FINAL final
37#else
38# define QT_TEXT_STREAM_FINAL
39#endif
40
42class Q_CORE_EXPORT QTextStream QT_TEXT_STREAM_FINAL : public QIODeviceBase
43{
44 Q_DECLARE_PRIVATE(QTextStream)
45
46public:
47 enum RealNumberNotation {
48 SmartNotation,
49 FixedNotation,
50 ScientificNotation
51 };
52 enum FieldAlignment {
53 AlignLeft,
54 AlignRight,
55 AlignCenter,
56 AlignAccountingStyle
57 };
58 enum Status {
59 Ok,
60 ReadPastEnd,
61 ReadCorruptData,
62 WriteFailed
63 };
64 enum NumberFlag {
65 ShowBase = 0x1,
66 ForcePoint = 0x2,
67 ForceSign = 0x4,
68 UppercaseBase = 0x8,
69 UppercaseDigits = 0x10
70 };
71 Q_DECLARE_FLAGS(NumberFlags, NumberFlag)
72
73 QTextStream();
74 explicit QTextStream(QIODevice *device);
75 explicit QTextStream(FILE *fileHandle, OpenMode openMode = ReadWrite);
76 explicit QTextStream(QString *string, OpenMode openMode = ReadWrite);
77 explicit QTextStream(QByteArray *array, OpenMode openMode = ReadWrite);
78 explicit QTextStream(const QByteArray &array, OpenMode openMode = ReadOnly);
79 QT_WARNING_PUSH
80 #if defined(__has_warning)
81 # if __has_warning("-Wunnecessary-virtual-specifier")
82 QT_WARNING_DISABLE_CLANG("-Wunnecessary-virtual-specifier")
83 # endif
84 #endif
85 QT6_ONLY(virtual)
86 ~QTextStream();
87 QT_WARNING_POP
88
89 void setEncoding(QStringConverter::Encoding encoding);
90 QStringConverter::Encoding encoding() const;
91 void setAutoDetectUnicode(bool enabled);
92 bool autoDetectUnicode() const;
93 void setGenerateByteOrderMark(bool generate);
94 bool generateByteOrderMark() const;
95
96 void setLocale(const QLocale &locale);
97 QLocale locale() const;
98
99 void setDevice(QIODevice *device);
100 QIODevice *device() const;
101
102 void setString(QString *string, OpenMode openMode = ReadWrite);
103 QString *string() const;
104
105 Status status() const;
106 void setStatus(Status status);
107 void resetStatus();
108
109 bool atEnd() const;
110 void reset();
111 void flush();
112 bool seek(qint64 pos);
113 qint64 pos() const;
114
115 void skipWhiteSpace();
116
117 QString readLine(qint64 maxlen = 0);
118 bool readLineInto(QString *line, qint64 maxlen = 0);
119 QString readAll();
120 QString read(qint64 maxlen);
121
122 void setFieldAlignment(FieldAlignment alignment);
123 FieldAlignment fieldAlignment() const;
124
125 void setPadChar(QChar ch);
126 QChar padChar() const;
127
128 void setFieldWidth(int width);
129 int fieldWidth() const;
130
131 void setNumberFlags(NumberFlags flags);
132 NumberFlags numberFlags() const;
133
134 void setIntegerBase(int base);
135 int integerBase() const;
136
137 void setRealNumberNotation(RealNumberNotation notation);
138 RealNumberNotation realNumberNotation() const;
139
140 void setRealNumberPrecision(int precision);
141 int realNumberPrecision() const;
142
143 QTextStream &operator>>(QChar &ch);
144 QTextStream &operator>>(char &ch);
145 QTextStream &operator>>(char16_t &ch)
146 { QChar c; *this >> c; ch = c.unicode(); return *this; }
147 QTextStream &operator>>(signed short &i);
148 QTextStream &operator>>(unsigned short &i);
149 QTextStream &operator>>(signed int &i);
150 QTextStream &operator>>(unsigned int &i);
151 QTextStream &operator>>(signed long &i);
152 QTextStream &operator>>(unsigned long &i);
153 QTextStream &operator>>(qlonglong &i);
154 QTextStream &operator>>(qulonglong &i);
155 QTextStream &operator>>(float &f);
156 QTextStream &operator>>(double &f);
157 QTextStream &operator>>(QString &s);
158 QTextStream &operator>>(QByteArray &array);
159#if QT_REMOVAL_QT7_DEPRECATED_SINCE(6, 12)
160 QT_DEPRECATED_VERSION_X_6_12("Use the QByteArray overload: this function cannot be used safely.")
161 QTextStream &operator>>(char *c);
162#endif
163
164 QTextStream &operator<<(QChar ch);
165 QTextStream &operator<<(char ch);
166 QTextStream &operator<<(char16_t ch) { return *this << QChar(ch); }
167 QTextStream &operator<<(signed short i);
168 QTextStream &operator<<(unsigned short i);
169 QTextStream &operator<<(signed int i);
170 QTextStream &operator<<(unsigned int i);
171 QTextStream &operator<<(signed long i);
172 QTextStream &operator<<(unsigned long i);
173 QTextStream &operator<<(qlonglong i);
174 QTextStream &operator<<(qulonglong i);
175 QTextStream &operator<<(float f);
176 QTextStream &operator<<(double f);
177 QTextStream &operator<<(const QString &s);
178 QTextStream &operator<<(QStringView s);
179 QTextStream &operator<<(QLatin1StringView s);
180 QTextStream &operator<<(const QByteArray &array);
181 QTextStream &operator<<(const char *c);
182 QTextStream &operator<<(const void *ptr);
183
184 explicit operator bool() const noexcept { return status() == Ok; }
185
186private:
187 Q_DISABLE_COPY(QTextStream)
188 friend class QDebugStateSaverPrivate;
189 friend class QDebug;
190
191 std::unique_ptr<QTextStreamPrivate> d_ptr;
192};
193
194Q_DECLARE_OPERATORS_FOR_FLAGS(QTextStream::NumberFlags)
195
196/*****************************************************************************
197 QTextStream manipulators
198 *****************************************************************************/
199
200typedef QTextStream & (*QTextStreamFunction)(QTextStream &);// manipulator function
201typedef void (QTextStream::*QTSMFI)(int); // manipulator w/int argument
202typedef void (QTextStream::*QTSMFC)(QChar); // manipulator w/QChar argument
203
204
205class Q_CORE_EXPORT QTextStreamManipulator
206{
207public:
208 constexpr QTextStreamManipulator(QTSMFI m, int a) noexcept : mf(m), mc(nullptr), arg(a), ch() {}
209 constexpr QTextStreamManipulator(QTSMFC m, QChar c) noexcept : mf(nullptr), mc(m), arg(-1), ch(c) {}
210 void exec(QTextStream &s) { if (mf) { (s.*mf)(arg); } else { (s.*mc)(ch); } }
211
212private:
213 QTSMFI mf; // QTextStream member function
214 QTSMFC mc; // QTextStream member function
215 int arg; // member function argument
216 QChar ch;
217};
218
219inline QTextStream &operator>>(QTextStream &s, QTextStreamFunction f)
220{ return (*f)(s); }
221
222inline QTextStream &operator<<(QTextStream &s, QTextStreamFunction f)
223{ return (*f)(s); }
224
225inline QTextStream &operator<<(QTextStream &s, QTextStreamManipulator m)
226{ m.exec(s); return s; }
227
228namespace Qt {
229Q_CORE_EXPORT QTextStream &bin(QTextStream &s);
230Q_CORE_EXPORT QTextStream &oct(QTextStream &s);
231Q_CORE_EXPORT QTextStream &dec(QTextStream &s);
232Q_CORE_EXPORT QTextStream &hex(QTextStream &s);
233
234Q_CORE_EXPORT QTextStream &showbase(QTextStream &s);
235Q_CORE_EXPORT QTextStream &forcesign(QTextStream &s);
236Q_CORE_EXPORT QTextStream &forcepoint(QTextStream &s);
237Q_CORE_EXPORT QTextStream &noshowbase(QTextStream &s);
238Q_CORE_EXPORT QTextStream &noforcesign(QTextStream &s);
239Q_CORE_EXPORT QTextStream &noforcepoint(QTextStream &s);
240
241Q_CORE_EXPORT QTextStream &uppercasebase(QTextStream &s);
242Q_CORE_EXPORT QTextStream &uppercasedigits(QTextStream &s);
243Q_CORE_EXPORT QTextStream &lowercasebase(QTextStream &s);
244Q_CORE_EXPORT QTextStream &lowercasedigits(QTextStream &s);
245
246Q_CORE_EXPORT QTextStream &fixed(QTextStream &s);
247Q_CORE_EXPORT QTextStream &scientific(QTextStream &s);
248
249Q_CORE_EXPORT QTextStream &left(QTextStream &s);
250Q_CORE_EXPORT QTextStream &right(QTextStream &s);
251Q_CORE_EXPORT QTextStream &center(QTextStream &s);
252
253Q_CORE_EXPORT QTextStream &endl(QTextStream &s);
254Q_CORE_EXPORT QTextStream &flush(QTextStream &s);
255Q_CORE_EXPORT QTextStream &reset(QTextStream &s);
256
257Q_CORE_EXPORT QTextStream &bom(QTextStream &s);
258
259Q_CORE_EXPORT QTextStream &ws(QTextStream &s);
260
261} // namespace Qt
262
264{
265 QTSMFI func = &QTextStream::setFieldWidth;
266 return QTextStreamManipulator(func,width);
267}
268
270{
271 QTSMFC func = &QTextStream::setPadChar;
272 return QTextStreamManipulator(func, ch);
273}
274
276{
277 QTSMFI func = &QTextStream::setRealNumberPrecision;
278 return QTextStreamManipulator(func, precision);
279}
280
281QT_END_NAMESPACE
282
283#endif // QTEXTSTREAM_H
The QCommandLineOption class defines a possible command-line option. \inmodule QtCore.
The QCommandLineParser class provides a means for handling the command line options.
Definition qfile.h:71
\inmodule QtCore
Definition qhash.h:1184
const_iterator & operator++() noexcept
The prefix ++ operator ({++i}) advances the iterator to the next item in the hash and returns an iter...
Definition qhash.h:1209
const_iterator(const iterator &o) noexcept
Constructs a copy of other.
Definition qhash.h:1200
constexpr const_iterator() noexcept=default
Constructs an uninitialized iterator.
const_iterator operator++(int) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qhash.h:1214
std::forward_iterator_tag iterator_category
Definition qhash.h:1193
const T * operator->() const noexcept
Returns a pointer to the current item's value.
Definition qhash.h:1205
const T & reference
Definition qhash.h:1197
bool operator==(const const_iterator &o) const noexcept
Returns true if other points to the same item as this iterator; otherwise returns false.
Definition qhash.h:1206
const T & value() const noexcept
Returns the current item's value.
Definition qhash.h:1203
const Key & key() const noexcept
Returns the current item's key.
Definition qhash.h:1202
qptrdiff difference_type
Definition qhash.h:1194
const T * pointer
Definition qhash.h:1196
bool operator!=(const const_iterator &o) const noexcept
Returns true if other points to a different item than this iterator; otherwise returns false.
Definition qhash.h:1207
const T & operator*() const noexcept
Returns the current item's value.
Definition qhash.h:1204
\inmodule QtCore
Definition qhash.h:1224
key_iterator & operator++() noexcept
The prefix ++ operator ({++i}) advances the iterator to the next item in the hash and returns an iter...
Definition qhash.h:1242
key_iterator() noexcept=default
bool operator!=(key_iterator o) const noexcept
Returns true if other points to a different item than this iterator; otherwise returns false.
Definition qhash.h:1240
key_iterator operator++(int) noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qhash.h:1243
const Key & operator*() const noexcept
Returns the current item's key.
Definition qhash.h:1237
const Key * operator->() const noexcept
Returns a pointer to the current item's key.
Definition qhash.h:1238
key_iterator(const_iterator o) noexcept
Definition qhash.h:1235
qptrdiff difference_type
Definition qhash.h:1229
const Key * pointer
Definition qhash.h:1231
bool operator==(key_iterator o) const noexcept
Returns true if other points to the same item as this iterator; otherwise returns false.
Definition qhash.h:1239
const_iterator::iterator_category iterator_category
Definition qhash.h:1228
const Key & reference
Definition qhash.h:1232
const_iterator base() const noexcept
Returns the underlying const_iterator this key_iterator is based on.
Definition qhash.h:1244
\inmodule QtCore
Definition qhash.h:844
T value_type
Definition qhash.h:856
key_value_iterator try_emplace(const_iterator, K &&key, Args &&...args)
Definition qhash.h:1652
T & operator[](const K &key)
Definition qhash.h:1600
key_iterator keyEnd() const noexcept
Definition qhash.h:1260
const T operator[](const K &key) const noexcept
Definition qhash.h:1605
T take(const K &key)
Definition qhash.h:1569
std::pair< const_iterator, const_iterator > equal_range(const Key &key) const noexcept
Definition qhash.h:1314
TryEmplaceResult insertOrAssign(const Key &key, Value &&value)
Definition qhash.h:1494
float load_factor() const noexcept
Returns the current load factor of the QHash's internal hash table.
Definition qhash.h:1536
const_iterator constFind(const Key &key) const noexcept
Definition qhash.h:1362
iterator insert(const Key &key, T &&value)
Definition qhash.h:1372
std::pair< key_value_iterator, bool > insert_or_assign(Key &&key, Value &&value)
Definition qhash.h:1509
~QHash()
Destroys the hash.
Definition qhash.h:875
T & reference
Definition qhash.h:859
QHash & operator=(const QHash &other) noexcept
Assigns other to this hash and returns a reference to this hash.
Definition qhash.h:884
iterator erase(const_iterator it)
Definition qhash.h:1296
std::pair< key_value_iterator, bool > try_emplace(K &&key, Args &&...args)
Definition qhash.h:1647
iterator emplace(const Key &key, Args &&... args)
Definition qhash.h:1403
key_value_iterator keyValueBegin()
Definition qhash.h:1261
const_iterator constFind(const K &key) const noexcept
Definition qhash.h:1632
T value(const K &key, const T &defaultValue) const noexcept
Definition qhash.h:1592
QHash(const QHash &other) noexcept
Constructs a copy of other.
Definition qhash.h:869
auto asKeyValueRange() const &&
Definition qhash.h:1270
TryEmplaceResult tryEmplace(K &&key, Args &&...args)
Definition qhash.h:1637
TryEmplaceResult tryInsert(const Key &key, const T &value)
Definition qhash.h:1434
iterator emplace(Key &&key, Args &&... args)
Inserts a new element into the container.
Definition qhash.h:1410
friend bool comparesEqual(const QHash &lhs, const QHash &rhs) noexcept
Definition qhash.h:940
TryEmplaceResult tryEmplace(const Key &key, Args &&...args)
\variable QHash::TryEmplaceResult::iterator
Definition qhash.h:1424
const_key_value_iterator constKeyValueEnd() const noexcept
Definition qhash.h:1266
bool empty() const noexcept
This function is provided for STL compatibility.
Definition qhash.h:1542
std::pair< key_value_iterator, bool > insert_or_assign(K &&key, Value &&value)
Definition qhash.h:1662
const_iterator cbegin() const noexcept
Definition qhash.h:1253
std::pair< key_value_iterator, bool > try_emplace(const Key &key, Args &&...args)
Definition qhash.h:1440
key_value_iterator insert_or_assign(const_iterator, K &&key, Value &&value)
Definition qhash.h:1667
iterator insert(Key &&key, T &&value)
Definition qhash.h:1382
iterator begin()
Returns an \l{STL-style iterators}{STL-style iterator} pointing to the first item in the hash.
Definition qhash.h:1251
void insert(const QHash &hash)
Definition qhash.h:1387
const_iterator find(const Key &key) const noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qhash.h:1358
std::pair< key_value_iterator, bool > try_emplace(Key &&key, Args &&...args)
Definition qhash.h:1445
static float max_load_factor() noexcept
Definition qhash.h:1537
auto asKeyValueRange() &
Definition qhash.h:1267
QKeyValueIterator< const Key &, const T &, const_iterator > const_key_value_iterator
\inmodule QtCore
Definition qhash.h:1247
const_key_value_iterator keyValueBegin() const noexcept
Definition qhash.h:1263
TryEmplaceResult insertOrAssign(K &&key, Value &&value)
Definition qhash.h:1657
key_value_iterator keyValueEnd()
Definition qhash.h:1262
const_iterator end() const noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qhash.h:1256
Key key_type
Typedef for Key.
Definition qhash.h:854
iterator find(const K &key)
Definition qhash.h:1622
const_key_value_iterator constKeyValueBegin() const noexcept
Definition qhash.h:1264
iterator insert(const Key &key, const T &value)
Inserts a new item with the key and a value of value.
Definition qhash.h:1367
qsizetype count(const K &key) const
Definition qhash.h:1579
iterator insert(Key &&key, const T &value)
Definition qhash.h:1377
std::pair< iterator, iterator > equal_range(const K &key)
Definition qhash.h:1611
key_iterator keyBegin() const noexcept
Definition qhash.h:1259
iterator Iterator
Qt-style synonym for QHash::iterator.
Definition qhash.h:1351
key_value_iterator insert_or_assign(const_iterator, const Key &key, Value &&value)
Definition qhash.h:1514
bool contains(const K &key) const
Definition qhash.h:1574
TryEmplaceResult tryInsert(K &&key, const T &value)
Definition qhash.h:1642
std::pair< const_iterator, const_iterator > equal_range(const K &key) const noexcept
Definition qhash.h:1617
size_t bucket_count() const noexcept
Definition qhash.h:1538
const_iterator ConstIterator
Qt-style synonym for QHash::const_iterator.
Definition qhash.h:1352
key_value_iterator try_emplace(const_iterator, Key &&key, Args &&...args)
Definition qhash.h:1455
auto asKeyValueRange() &&
Definition qhash.h:1269
auto asKeyValueRange() const &
Definition qhash.h:1268
const_iterator constBegin() const noexcept
Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the first item in the hash.
Definition qhash.h:1254
qsizetype count() const noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qhash.h:1353
QHash(std::initializer_list< std::pair< Key, T > > list)
Definition qhash.h:863
T value(const K &key) const noexcept
Definition qhash.h:1584
const_iterator find(const K &key) const noexcept
Definition qhash.h:1627
iterator find(const Key &key)
Returns an iterator pointing to the item with the key in the hash.
Definition qhash.h:1354
iterator end() noexcept
Returns an \l{STL-style iterators}{STL-style iterator} pointing to the imaginary item after the last ...
Definition qhash.h:1255
QHash(QHash &&other) noexcept
Move-constructs a QHash instance, making it point at the same object that other was pointing to.
Definition qhash.h:897
std::pair< key_value_iterator, bool > insert_or_assign(const Key &key, Value &&value)
Definition qhash.h:1504
std::pair< iterator, iterator > equal_range(const Key &key)
Definition qhash.h:1310
const_iterator cend() const noexcept
Definition qhash.h:1257
key_value_iterator insert_or_assign(const_iterator, Key &&key, Value &&value)
Definition qhash.h:1519
static size_t max_bucket_count() noexcept
Definition qhash.h:1539
bool remove(const K &key)
Definition qhash.h:1564
QKeyValueIterator< const Key &, T &, iterator > key_value_iterator
\inmodule QtCore
Definition qhash.h:1248
TryEmplaceResult insertOrAssign(Key &&key, Value &&value)
Definition qhash.h:1499
QHash() noexcept=default
Constructs an empty hash.
const T & const_reference
Definition qhash.h:860
TryEmplaceResult tryEmplace(Key &&key, Args &&...args)
Definition qhash.h:1429
key_value_iterator try_emplace(const_iterator, const Key &key, Args &&...args)
Definition qhash.h:1450
T mapped_type
Typedef for T.
Definition qhash.h:855
const_key_value_iterator keyValueEnd() const noexcept
Definition qhash.h:1265
const_iterator begin() const noexcept
This is an overloaded member function, provided for convenience. It differs from the above function o...
Definition qhash.h:1252
const_iterator constEnd() const noexcept
Returns a const \l{STL-style iterators}{STL-style iterator} pointing to the imaginary item after the ...
Definition qhash.h:1258
RCCResourceLibrary(quint8 formatVersion)
Definition rcc.cpp:495
ResourceDataFileMap resourceDataFileMap() const
Definition rcc.cpp:916
bool readFiles(bool listMode, QIODevice &errorDevice)
Definition rcc.cpp:837
QStringList failedResources() const
Definition rcc.h:82
bool noZstd() const
Definition rcc.h:87
bool verbose() const
Definition rcc.h:49
QStringList dataFiles() const
Definition rcc.cpp:878
int formatVersion() const
Definition rcc.h:84
Format format() const
Definition rcc.h:37
QStringList inputFiles() const
Definition rcc.h:40
void setNoZstd(bool v)
Definition rcc.h:86
void setResourceRoot(const QString &root)
Definition rcc.h:76
static int parseCompressionLevel(CompressionAlgorithm algo, const QString &level, QString *errorMsg)
Definition rcc.cpp:947
bool useNameSpace() const
Definition rcc.h:80
int compressLevel() const
Definition rcc.h:71
bool output(QIODevice &outDevice, QIODevice &tempDevice, QIODevice &errorDevice)
Definition rcc.cpp:973
void setVerbose(bool b)
Definition rcc.h:48
void setInitName(const QString &name)
Definition rcc.h:51
void setCompressionAlgorithm(CompressionAlgorithm algo)
Definition rcc.h:66
int compressThreshold() const
Definition rcc.h:74
void setCompressThreshold(int t)
Definition rcc.h:73
CompressionAlgorithm compressionAlgorithm() const
Definition rcc.h:67
void setCompressLevel(int c)
Definition rcc.h:70
void setFormat(Format f)
Definition rcc.h:36
QString resourceRoot() const
Definition rcc.h:77
void setOutputName(const QString &name)
Definition rcc.h:54
QHash< QString, QString > ResourceDataFileMap
Definition rcc.h:45
QString initName() const
Definition rcc.h:52
QString outputName() const
Definition rcc.h:55
void setUseNameSpace(bool v)
Definition rcc.h:79
void setInputFiles(const QStringList &files)
Definition rcc.h:39
static CompressionAlgorithm parseCompressionAlgorithm(QStringView algo, QString *errorMsg)
Definition rcc.cpp:924
QT_FORWARD_DECLARE_CLASS(QTextStream)
constexpr size_t bucketForHash(size_t nBuckets, size_t hash) noexcept
Definition qhash.h:446
constexpr size_t bucketsForCapacity(size_t requestedCapacity) noexcept
Definition qhash.h:426
constexpr bool HasStdHashSpecializationWithoutSeed
Definition qhash.h:56
constexpr bool isRelocatable_v
Definition qhash.h:226
size_t calculateHash(const T &t, size_t seed=0)
Definition qhash.h:64
constexpr bool HasQHashOverload
Definition qhash.h:40
std::conditional_t< std::is_same_v< HashKey, q20::remove_cvref_t< KeyArgument > >, KeyArgument, HashKey > HeterogenousConstructProxy
Definition qhash.h:834
constexpr bool HasStdHashSpecializationWithSeed
Definition qhash.h:48
Combined button and popup list for selecting options.
const QString & asString(const QString &s)
Definition qstring.h:1713
Definition qcompare.h:111
QList< QFileInfo > QFileInfoList
Definition qfileinfo.h:195
qsizetype erase_if(QMultiHash< Key, T > &hash, Predicate pred)
Definition qhash.h:2782
size_t qHash(const QMultiHash< Key, T > &key, size_t seed=0) noexcept(noexcept(qHash(std::declval< Key & >())) &&noexcept(qHash(std::declval< T & >())))
Definition qhash.h:2762
qsizetype erase_if(QHash< Key, T > &hash, Predicate pred)
Definition qhash.h:2776
#define qPrintable(string)
Definition qstring.h:1718
#define QStringLiteral(str)
Definition qstring.h:1865
#define ALGOS
void dumpRecursive(const QDir &dir, QTextStream &out)
Definition main.cpp:30
int runRcc(int argc, char *argv[])
Definition main.cpp:111
void writeDepFile(QIODevice &iodev, const QStringList &depsList, const QString &targetName)
Definition main.cpp:95
QString makefileEscape(const QString &filepath)
Definition main.cpp:81
int createProject(const QString &outFileName)
Definition main.cpp:45
QTextStreamManipulator qSetPadChar(QChar ch)
QTextStreamManipulator qSetRealNumberPrecision(int precision)
#define QT_TEXT_STREAM_FINAL
Definition qtextstream.h:36
QTextStreamManipulator qSetFieldWidth(int width)
int main(int argc, char *argv[])
[ctor_close]
friend bool operator==(Bucket lhs, Bucket rhs) noexcept
Definition qhash.h:524
size_t offset() const noexcept
Definition qhash.h:506
bool isUnused() const noexcept
Definition qhash.h:502
Bucket(const Data *d, size_t bucket) noexcept
Definition qhash.h:481
Bucket(Span *s, size_t i) noexcept
Definition qhash.h:478
Node * insert() const
Definition qhash.h:518
void advance(const Data *d) noexcept
Definition qhash.h:498
Node & nodeAtOffset(size_t offset)
Definition qhash.h:510
iterator toIterator(const Data *d) const noexcept
Definition qhash.h:493
friend bool operator!=(Bucket lhs, Bucket rhs) noexcept
Definition qhash.h:528
void advanceWrapped(const Data *d) noexcept
Definition qhash.h:494
Bucket(iterator it) noexcept
Definition qhash.h:485
size_t toBucketIndex(const Data *d) const noexcept
Definition qhash.h:489
Bucket findBucketWithHash(const K &key, size_t hash) const noexcept
Definition qhash.h:699
iterator begin() const noexcept
Definition qhash.h:635
QHashPrivate::Span< Node > Span
Definition qhash.h:460
size_t nextBucket(size_t bucket) const noexcept
Definition qhash.h:676
typename Node::ValueType T
Definition qhash.h:459
InsertionResult findOrInsert(const K &key) noexcept
Definition qhash.h:734
Node * findNode(const K &key) const noexcept
Definition qhash.h:720
QHashPrivate::iterator< Node > iterator
Definition qhash.h:461
static Data * detached(Data *d)
Definition qhash.h:603
iterator detachedIterator(iterator other) const noexcept
Definition qhash.h:630
constexpr iterator end() const noexcept
Definition qhash.h:643
bool shouldGrow() const noexcept
Definition qhash.h:688
typename Node::KeyType Key
Definition qhash.h:458
void rehash(size_t sizeHint=0)
Definition qhash.h:648
Q_ALWAYS_INLINE void reallocationHelper(const Data &other, size_t nSpans)
Definition qhash.h:573
void erase(Bucket bucket) noexcept(std::is_nothrow_destructible< Node >::value)
Definition qhash.h:754
QtPrivate::RefCount ref
Definition qhash.h:463
static Data * detached(Data *d, size_t size)
Definition qhash.h:612
float loadFactor() const noexcept
Definition qhash.h:684
Data(size_t reserve=0)
Definition qhash.h:562
static auto allocateSpans(size_t numBuckets)
Definition qhash.h:543
Data(const Data &other, size_t reserved)
Definition qhash.h:595
Data(const Data &other)
Definition qhash.h:589
static constexpr size_t maxNumBuckets() noexcept
Definition qhash.h:469
Bucket findBucket(const K &key) const noexcept
Definition qhash.h:693
size_t numBuckets
Definition qhash.h:465
qsizetype free() noexcept(std::is_nothrow_destructible_v< T >)
Definition qhash.h:133
bool contains(const T &val) const noexcept
Definition qhash.h:145
MultiNodeChain * next
Definition qhash.h:129
static qsizetype freeChain(MultiNode *n) noexcept(std::is_nothrow_destructible_v< T >)
Definition qhash.h:206
MultiNode(MultiNode &&other)
Definition qhash.h:183
void insertMulti(Args &&... args)
Definition qhash.h:213
MultiNode(const MultiNode &other)
Definition qhash.h:189
static void createInPlace(MultiNode *n, const Key &k, Args &&... args)
Definition qhash.h:171
MultiNode(const Key &k, Chain *c)
Definition qhash.h:174
static void createInPlace(MultiNode *n, Key &&k, Args &&... args)
Definition qhash.h:168
MultiNode(Key &&k, Chain *c) noexcept(std::is_nothrow_move_assignable_v< Key >)
Definition qhash.h:178
MultiNodeChain< T > Chain
Definition qhash.h:162
void emplaceValue(Args &&... args)
Definition qhash.h:219
static void createInPlace(Node *n, const Key &k, Args &&...)
Definition qhash.h:115
bool valuesEqual(const Node *) const
Definition qhash.h:122
static void createInPlace(Node *n, Key &&k, Args &&...)
Definition qhash.h:112
void emplaceValue(Args &&... args)
Definition qhash.h:94
bool valuesEqual(const Node *other) const
Definition qhash.h:102
T && takeValue() noexcept
Definition qhash.h:98
static void createInPlace(Node *n, const Key &k, Args &&... args)
Definition qhash.h:91
static void createInPlace(Node *n, Key &&k, Args &&... args)
Definition qhash.h:88
static constexpr size_t SpanShift
Definition qhash.h:231
static constexpr size_t LocalBucketMask
Definition qhash.h:233
static constexpr size_t UnusedEntry
Definition qhash.h:234
static constexpr size_t NEntries
Definition qhash.h:232
unsigned char & nextFree()
Definition qhash.h:258
const Node & at(size_t i) const noexcept
Definition qhash.h:326
void moveLocal(size_t from, size_t to) noexcept
Definition qhash.h:345
void addStorage()
Definition qhash.h:379
void freeData() noexcept(std::is_nothrow_destructible< Node >::value)
Definition qhash.h:274
void erase(size_t bucket) noexcept(std::is_nothrow_destructible< Node >::value)
Definition qhash.h:299
unsigned char nextFree
Definition qhash.h:265
Span() noexcept
Definition qhash.h:266
unsigned char allocated
Definition qhash.h:264
unsigned char offsets[SpanConstants::NEntries]
Definition qhash.h:262
Entry * entries
Definition qhash.h:263
Node & atOffset(size_t o) noexcept
Definition qhash.h:333
size_t offset(size_t i) const noexcept
Definition qhash.h:311
Node * insert(size_t i)
Definition qhash.h:287
bool hasNode(size_t i) const noexcept
Definition qhash.h:315
void moveFromSpan(Span &fromSpan, size_t fromIndex, size_t to) noexcept(std::is_nothrow_move_constructible_v< Node >)
Definition qhash.h:352
const Node & atOffset(size_t o) const noexcept
Definition qhash.h:339
Node & at(size_t i) noexcept
Definition qhash.h:319
Node * node() const noexcept
Definition qhash.h:806
size_t span() const noexcept
Definition qhash.h:802
iterator operator++() noexcept
Definition qhash.h:813
size_t index() const noexcept
Definition qhash.h:803
const Data< Node > * d
Definition qhash.h:799
QHashPrivate::Span< Node > Span
Definition qhash.h:797
bool isUnused() const noexcept
Definition qhash.h:804
bool operator!=(iterator other) const noexcept
Definition qhash.h:829
bool atEnd() const noexcept
Definition qhash.h:811
bool operator==(iterator other) const noexcept
Definition qhash.h:827
\inmodule QtCore
Definition qhash.h:1273
QHash::iterator iterator
Definition qhash.h:1274
TryEmplaceResult(QHash::iterator it, bool b)
Definition qhash.h:1279