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
qconstructormacros.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 QCONSTRUCTORMACROS_H
5#define QCONSTRUCTORMACROS_H
6
7#if 0
8#pragma qt_class(QtConstructorMacros)
9#pragma qt_sync_stop_processing
10#endif
11
12#if defined(__cplusplus)
13
14#ifndef Q_CONSTRUCTOR_FUNCTION
15# define Q_CONSTRUCTOR_FUNCTION0(AFUNC)
16 namespace {
17 static const struct AFUNC ## _ctor_class_ {
18 inline AFUNC ## _ctor_class_() { AFUNC(); }
19 } AFUNC ## _ctor_instance_;
20 }
21
22# define Q_CONSTRUCTOR_FUNCTION(AFUNC) Q_CONSTRUCTOR_FUNCTION0(AFUNC)
23#endif
24
25#ifndef Q_DESTRUCTOR_FUNCTION
26# define Q_DESTRUCTOR_FUNCTION0(AFUNC)
27 namespace {
28 static const struct AFUNC ## _dtor_class_ {
29 inline AFUNC ## _dtor_class_() { }
30 inline ~ AFUNC ## _dtor_class_() { AFUNC(); }
31 } AFUNC ## _dtor_instance_;
32 }
33# define Q_DESTRUCTOR_FUNCTION(AFUNC) Q_DESTRUCTOR_FUNCTION0(AFUNC)
34#endif
35
36#endif // __cplusplus
37
38#endif // QCONSTRUCTORMACROS_H