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