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