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
qtdeprecationmarkers.h
Go to the documentation of this file.
1// Copyright (C) 2022 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 QTDEPRECATIONMARKERS_H
5#define QTDEPRECATIONMARKERS_H
6
7#include <QtCore/qtconfigmacros.h>
8#include <QtCore/qtclasshelpermacros.h>
9#include <QtCore/qtdeprecationdefinitions.h>
10#include <QtCore/qtversionchecks.h>
11#include <QtCore/qcompilerdetection.h> // for Q_DECL_DEPRECATED
12
13#if 0
14#pragma qt_class(QtDeprecationMarkers)
15#pragma qt_sync_stop_processing
16#endif
17
18QT_BEGIN_NAMESPACE
19
20#if defined(QT_NO_DEPRECATED)
21/* undef, so as to cause compile-errors when they're used outside #if QT_DEPRECATED_SINCE blocks */
22# undef QT_DEPRECATED
23# undef QT_DEPRECATED_X
24# undef QT_DEPRECATED_VARIABLE
25# undef QT_DEPRECATED_CONSTRUCTOR
26#elif !defined(QT_NO_DEPRECATED_WARNINGS)
27# undef QT_DEPRECATED
28# define QT_DEPRECATED Q_DECL_DEPRECATED
29# undef QT_DEPRECATED_X
30# define QT_DEPRECATED_X(text) Q_DECL_DEPRECATED_X(text)
31# undef QT_DEPRECATED_VARIABLE
32# define QT_DEPRECATED_VARIABLE Q_DECL_VARIABLE_DEPRECATED
33# undef QT_DEPRECATED_CONSTRUCTOR
34# define QT_DEPRECATED_CONSTRUCTOR Q_DECL_CONSTRUCTOR_DEPRECATED explicit
35#else
36# undef QT_DEPRECATED
37# define QT_DEPRECATED
38# undef QT_DEPRECATED_X
39# define QT_DEPRECATED_X(text)
40# undef QT_DEPRECATED_VARIABLE
41# define QT_DEPRECATED_VARIABLE
42# undef QT_DEPRECATED_CONSTRUCTOR
43# define QT_DEPRECATED_CONSTRUCTOR
44# undef Q_DECL_ENUMERATOR_DEPRECATED
45# define Q_DECL_ENUMERATOR_DEPRECATED
46# undef Q_DECL_ENUMERATOR_DEPRECATED_X
47# define Q_DECL_ENUMERATOR_DEPRECATED_X(ignored)
48#endif
49
50/*
51 QT_DEPRECATED_SINCE(major, minor) evaluates as true if the Qt version is greater than
52 the deprecation point specified.
53
54 Use it to specify from which version of Qt a function or class has been deprecated
55
56 Example:
57 #if QT_DEPRECATED_SINCE(5,1)
58 QT_DEPRECATED void deprecatedFunction(); //function deprecated since Qt 5.1
59 #endif
60
61*/
62#ifdef QT_DEPRECATED
63#define QT_DEPRECATED_SINCE(major, minor) (QT_VERSION_CHECK(major, minor, 0) > QT_DISABLE_DEPRECATED_UP_TO)
64#else
65#define QT_DEPRECATED_SINCE(major, minor) 0
66#endif
67
68/*
69 QT_REMOVAL_QT{VER}_DEPRECATED_SINCE(major, minor)
70
71 The macro should be used if the API is deprecated and should be removed
72 in the {VER} major release.
73
74 The \a major and \a minor parameters specify the deprecation version.
75
76 For now, we provide the macros to remove the deprecated APIs in Qt 7
77 and in Qt 8.
78
79 Example:
80
81 \code
82 #if QT_REMOVAL_QT7_DEPRECATED_SINCE(6, 9)
83 QT_DEPRECATED_VERSION_X_6_9("The reason for the deprecation")
84 void deprecatedFunc();
85 #endif
86 \endcode
87
88 The \c {deprecatedFunc()} function is deprecated since Qt 6.9, and will be
89 completely removed in Qt 7.0.
90*/
91#define QT_DEPRECATED_TO_BE_REMOVED_HELPER(dep_major, dep_minor, rem_major)
92 (QT_DEPRECATED_SINCE(dep_major, dep_minor) && (QT_VERSION < QT_VERSION_CHECK(rem_major, 0, 0)))
93
94// For APIs that should be removed in Qt 7
95#define QT_REMOVAL_QT7_DEPRECATED_SINCE(major, minor)
97
98// For APIs that should be removed in Qt 8
99#define QT_REMOVAL_QT8_DEPRECATED_SINCE(major, minor)
101
102/*
103 QT_DEPRECATED_VERSION(major, minor) and QT_DEPRECATED_VERSION_X(major, minor, text)
104 outputs a deprecation warning if QT_WARN_DEPRECATED_UP_TO is equal to or greater
105 than the version specified as major, minor. This makes it possible to deprecate a
106 function without annoying a user who needs to stay compatible with a specified minimum
107 version and therefore can't use the new function.
108*/
109#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(5, 12, 0)
110# define QT_DEPRECATED_VERSION_X_5_12(text) QT_DEPRECATED_X(text)
111# define QT_DEPRECATED_VERSION_5_12 QT_DEPRECATED
112#else
113# define QT_DEPRECATED_VERSION_X_5_12(text)
114# define QT_DEPRECATED_VERSION_5_12
115#endif
116
117#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(5, 13, 0)
118# define QT_DEPRECATED_VERSION_X_5_13(text) QT_DEPRECATED_X(text)
119# define QT_DEPRECATED_VERSION_5_13 QT_DEPRECATED
120#else
121# define QT_DEPRECATED_VERSION_X_5_13(text)
122# define QT_DEPRECATED_VERSION_5_13
123#endif
124
125#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(5, 14, 0)
126# define QT_DEPRECATED_VERSION_X_5_14(text) QT_DEPRECATED_X(text)
127# define QT_DEPRECATED_VERSION_5_14 QT_DEPRECATED
128#else
129# define QT_DEPRECATED_VERSION_X_5_14(text)
130# define QT_DEPRECATED_VERSION_5_14
131#endif
132
133#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(5, 15, 0)
134# define QT_DEPRECATED_VERSION_X_5_15(text) QT_DEPRECATED_X(text)
135# define QT_DEPRECATED_VERSION_5_15 QT_DEPRECATED
136#else
137# define QT_DEPRECATED_VERSION_X_5_15(text)
138# define QT_DEPRECATED_VERSION_5_15
139#endif
140
141#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 0, 0)
142# define QT_DEPRECATED_VERSION_X_6_0(text) QT_DEPRECATED_X(text)
143# define QT_DEPRECATED_VERSION_6_0 QT_DEPRECATED
144#else
145# define QT_DEPRECATED_VERSION_X_6_0(text)
146# define QT_DEPRECATED_VERSION_6_0
147#endif
148
149#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 1, 0)
150# define QT_DEPRECATED_VERSION_X_6_1(text) QT_DEPRECATED_X(text)
151# define QT_DEPRECATED_VERSION_6_1 QT_DEPRECATED
152#else
153# define QT_DEPRECATED_VERSION_X_6_1(text)
154# define QT_DEPRECATED_VERSION_6_1
155#endif
156
157#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 2, 0)
158# define QT_DEPRECATED_VERSION_X_6_2(text) QT_DEPRECATED_X(text)
159# define QT_DEPRECATED_VERSION_6_2 QT_DEPRECATED
160#else
161# define QT_DEPRECATED_VERSION_X_6_2(text)
162# define QT_DEPRECATED_VERSION_6_2
163#endif
164
165#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 3, 0)
166# define QT_DEPRECATED_VERSION_X_6_3(text) QT_DEPRECATED_X(text)
167# define QT_DEPRECATED_VERSION_6_3 QT_DEPRECATED
168#else
169# define QT_DEPRECATED_VERSION_X_6_3(text)
170# define QT_DEPRECATED_VERSION_6_3
171#endif
172
173#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 4, 0)
174# define QT_DEPRECATED_VERSION_X_6_4(text) QT_DEPRECATED_X(text)
175# define QT_DEPRECATED_VERSION_6_4 QT_DEPRECATED
176#else
177# define QT_DEPRECATED_VERSION_X_6_4(text)
178# define QT_DEPRECATED_VERSION_6_4
179#endif
180
181#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 5, 0)
182# define QT_DEPRECATED_VERSION_X_6_5(text) QT_DEPRECATED_X(text)
183# define QT_DEPRECATED_VERSION_6_5 QT_DEPRECATED
184#else
185# define QT_DEPRECATED_VERSION_X_6_5(text)
186# define QT_DEPRECATED_VERSION_6_5
187#endif
188
189#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 6, 0)
190# define QT_DEPRECATED_VERSION_X_6_6(text) QT_DEPRECATED_X(text)
191# define QT_DEPRECATED_VERSION_6_6 QT_DEPRECATED
192#else
193# define QT_DEPRECATED_VERSION_X_6_6(text)
194# define QT_DEPRECATED_VERSION_6_6
195#endif
196
197#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 7, 0)
198# define QT_DEPRECATED_VERSION_X_6_7(text) QT_DEPRECATED_X(text)
199# define QT_DEPRECATED_VERSION_6_7 QT_DEPRECATED
200#else
201# define QT_DEPRECATED_VERSION_X_6_7(text)
202# define QT_DEPRECATED_VERSION_6_7
203#endif
204
205#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 8, 0)
206# define QT_DEPRECATED_VERSION_X_6_8(text) QT_DEPRECATED_X(text)
207# define QT_DEPRECATED_VERSION_6_8 QT_DEPRECATED
208#else
209# define QT_DEPRECATED_VERSION_X_6_8(text)
210# define QT_DEPRECATED_VERSION_6_8
211#endif
212
213#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 9, 0)
214# define QT_DEPRECATED_VERSION_X_6_9(text) QT_DEPRECATED_X(text)
215# define QT_DEPRECATED_VERSION_6_9 QT_DEPRECATED
216#else
217# define QT_DEPRECATED_VERSION_X_6_9(text)
218# define QT_DEPRECATED_VERSION_6_9
219#endif
220
221#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 10, 0)
222# define QT_DEPRECATED_VERSION_X_6_10(text) QT_DEPRECATED_X(text)
223# define QT_DEPRECATED_VERSION_6_10 QT_DEPRECATED
224#else
225# define QT_DEPRECATED_VERSION_X_6_10(text)
226# define QT_DEPRECATED_VERSION_6_10
227#endif
228
229#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 11, 0)
230# define QT_DEPRECATED_VERSION_X_6_11(text) QT_DEPRECATED_X(text)
231# define QT_DEPRECATED_VERSION_6_11 QT_DEPRECATED
232#else
233# define QT_DEPRECATED_VERSION_X_6_11(text)
234# define QT_DEPRECATED_VERSION_6_11
235#endif
236
237#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 12, 0)
238# define QT_DEPRECATED_VERSION_X_6_12(text) QT_DEPRECATED_X(text)
239# define QT_DEPRECATED_VERSION_6_12 QT_DEPRECATED
240#else
241# define QT_DEPRECATED_VERSION_X_6_12(text)
242# define QT_DEPRECATED_VERSION_6_12
243#endif
244
245#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 13, 0)
246# define QT_DEPRECATED_VERSION_X_6_13(text) QT_DEPRECATED_X(text)
247# define QT_DEPRECATED_VERSION_6_13 QT_DEPRECATED
248#else
249# define QT_DEPRECATED_VERSION_X_6_13(text)
250# define QT_DEPRECATED_VERSION_6_13
251#endif
252
253#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 14, 0)
254# define QT_DEPRECATED_VERSION_X_6_14(text) QT_DEPRECATED_X(text)
255# define QT_DEPRECATED_VERSION_6_14 QT_DEPRECATED
256#else
257# define QT_DEPRECATED_VERSION_X_6_14(text)
258# define QT_DEPRECATED_VERSION_6_14
259#endif
260
261#if QT_WARN_DEPRECATED_UP_TO >= QT_VERSION_CHECK(6, 15, 0)
262# define QT_DEPRECATED_VERSION_X_6_15(text) QT_DEPRECATED_X(text)
263# define QT_DEPRECATED_VERSION_6_15 QT_DEPRECATED
264#else
265# define QT_DEPRECATED_VERSION_X_6_15(text)
266# define QT_DEPRECATED_VERSION_6_15
267#endif
268
269#define QT_DEPRECATED_VERSION_X_5(minor, text) QT_DEPRECATED_VERSION_X_5_##minor(text)
270#define QT_DEPRECATED_VERSION_X(major, minor, text) QT_DEPRECATED_VERSION_X_##major##_##minor(text)
271
272#define QT_DEPRECATED_VERSION_5(minor) QT_DEPRECATED_VERSION_5_##minor
273#define QT_DEPRECATED_VERSION(major, minor) QT_DEPRECATED_VERSION_##major##_##minor
274
275/*
276 QT_IF_DEPRECATED_SINCE(major, minor, whenTrue, whenFalse) expands to
277 \a whenTrue if the specified (\a major, \a minor) version is less than or
278 equal to the deprecation version defined by QT_DISABLE_DEPRECATED_UP_TO,
279 and to \a whenFalse otherwise.
280
281 Currently used for QT_INLINE_SINCE(maj, min), but can also be helpful for
282 other macros of that kind.
283
284 The implementation uses QT_DEPRECATED_SINCE(maj, min) to define a bunch of
285 helper QT_IF_DEPRECATED_SINCE_X_Y macros, which expand to \a whenTrue or
286 \a whenFalse depending on the value of QT_DEPRECATED_SINCE.
287
288 If you need to use QT_IF_DEPRECATED_SINCE() for a (major, minor) version,
289 that is not yet covered by the list below, you need to copy the definition
290 and change the major and minor versions accordingly. For example, for
291 version (X, Y), you will need to add
292
293 \code
294 #if QT_DEPRECATED_SINCE(X, Y)
295 # define QT_IF_DEPRECATED_SINCE_X_Y(whenTrue, whenFalse) whenFalse
296 #else
297 # define QT_IF_DEPRECATED_SINCE_X_Y(whenTrue, whenFalse) whenTrue
298 #endif
299 \endcode
300*/
301
302#define QT_IF_DEPRECATED_SINCE(major, minor, whenTrue, whenFalse)
303 QT_IF_DEPRECATED_SINCE_ ## major ## _ ## minor(whenTrue, whenFalse)
304
305#if QT_DEPRECATED_SINCE(6, 0)
306# define QT_IF_DEPRECATED_SINCE_6_0(whenTrue, whenFalse) whenFalse
307#else
308# define QT_IF_DEPRECATED_SINCE_6_0(whenTrue, whenFalse) whenTrue
309#endif
310
311#if QT_DEPRECATED_SINCE(6, 1)
312# define QT_IF_DEPRECATED_SINCE_6_1(whenTrue, whenFalse) whenFalse
313#else
314# define QT_IF_DEPRECATED_SINCE_6_1(whenTrue, whenFalse) whenTrue
315#endif
316
317#if QT_DEPRECATED_SINCE(6, 2)
318# define QT_IF_DEPRECATED_SINCE_6_2(whenTrue, whenFalse) whenFalse
319#else
320# define QT_IF_DEPRECATED_SINCE_6_2(whenTrue, whenFalse) whenTrue
321#endif
322
323#if QT_DEPRECATED_SINCE(6, 3)
324# define QT_IF_DEPRECATED_SINCE_6_3(whenTrue, whenFalse) whenFalse
325#else
326# define QT_IF_DEPRECATED_SINCE_6_3(whenTrue, whenFalse) whenTrue
327#endif
328
329#if QT_DEPRECATED_SINCE(6, 4)
330# define QT_IF_DEPRECATED_SINCE_6_4(whenTrue, whenFalse) whenFalse
331#else
332# define QT_IF_DEPRECATED_SINCE_6_4(whenTrue, whenFalse) whenTrue
333#endif
334
335#if QT_DEPRECATED_SINCE(6, 5)
336# define QT_IF_DEPRECATED_SINCE_6_5(whenTrue, whenFalse) whenFalse
337#else
338# define QT_IF_DEPRECATED_SINCE_6_5(whenTrue, whenFalse) whenTrue
339#endif
340
341#if QT_DEPRECATED_SINCE(6, 6)
342# define QT_IF_DEPRECATED_SINCE_6_6(whenTrue, whenFalse) whenFalse
343#else
344# define QT_IF_DEPRECATED_SINCE_6_6(whenTrue, whenFalse) whenTrue
345#endif
346
347#if QT_DEPRECATED_SINCE(6, 7)
348# define QT_IF_DEPRECATED_SINCE_6_7(whenTrue, whenFalse) whenFalse
349#else
350# define QT_IF_DEPRECATED_SINCE_6_7(whenTrue, whenFalse) whenTrue
351#endif
352
353#if QT_DEPRECATED_SINCE(6, 8)
354# define QT_IF_DEPRECATED_SINCE_6_8(whenTrue, whenFalse) whenFalse
355#else
356# define QT_IF_DEPRECATED_SINCE_6_8(whenTrue, whenFalse) whenTrue
357#endif
358
359#if QT_DEPRECATED_SINCE(6, 9)
360# define QT_IF_DEPRECATED_SINCE_6_9(whenTrue, whenFalse) whenFalse
361#else
362# define QT_IF_DEPRECATED_SINCE_6_9(whenTrue, whenFalse) whenTrue
363#endif
364
365#if QT_DEPRECATED_SINCE(6, 10)
366# define QT_IF_DEPRECATED_SINCE_6_10(whenTrue, whenFalse) whenFalse
367#else
368# define QT_IF_DEPRECATED_SINCE_6_10(whenTrue, whenFalse) whenTrue
369#endif
370
371#if QT_DEPRECATED_SINCE(6, 11)
372# define QT_IF_DEPRECATED_SINCE_6_11(whenTrue, whenFalse) whenFalse
373#else
374# define QT_IF_DEPRECATED_SINCE_6_11(whenTrue, whenFalse) whenTrue
375#endif
376
377#if QT_DEPRECATED_SINCE(6, 12)
378# define QT_IF_DEPRECATED_SINCE_6_12(whenTrue, whenFalse) whenFalse
379#else
380# define QT_IF_DEPRECATED_SINCE_6_12(whenTrue, whenFalse) whenTrue
381#endif
382
383#if QT_DEPRECATED_SINCE(6, 13)
384# define QT_IF_DEPRECATED_SINCE_6_13(whenTrue, whenFalse) whenFalse
385#else
386# define QT_IF_DEPRECATED_SINCE_6_13(whenTrue, whenFalse) whenTrue
387#endif
388
389#ifdef __cplusplus
390// A tag to help mark stuff deprecated (cf. QStringViewLiteral)
391namespace QtPrivate {
392inline QT_DEFINE_TAG(Deprecated);
393}
394#endif
395
396#ifdef QT_ASCII_CAST_WARNINGS
397# define QT_ASCII_CAST_WARN
398 Q_DECL_DEPRECATED_X("Use fromUtf8, QStringLiteral, or QLatin1StringView")
399#else
400# define QT_ASCII_CAST_WARN
401#endif
402
403QT_END_NAMESPACE
404
405#endif // QTDEPRECATIONMARKERS_H
#define QT_DEPRECATED
#define QT_DEPRECATED_TO_BE_REMOVED_HELPER(dep_major, dep_minor, rem_major)
#define QT_DEPRECATED_SINCE(major, minor)