QObject: clarify docs wrt. member access following Q_OBJECT and co

The macros expand to declarations that end in a private: section, which
means everything following them is private. As Fabian said in the bug
report, this is obvious when Q_OBJECT/GADGET ...etc are used in a class,
but might be a bit surprising when used in a `struct`.

Fixes: QTBUG-120297
Pick-to: 6.5 6.2 5.15
Change-Id: Iacdfc4eb3bab3554cc1142f682b11b32c3868b8f
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
(cherry picked from commit eb2db79064bd6e74d0b3485a650e4025d0a39c96)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 9fb14df81428a23d0fd63f2b532d047bb754c775)
This commit is contained in:
Ahmad Samir 2024-01-04 12:05:31 +02:00 committed by Qt Cherry-pick Bot
parent 0ecb6b0180
commit 8db678128e

View File

@ -4618,6 +4618,13 @@ QDebug operator<<(QDebug dbg, const QObject *o)
Q_GADGET or Q_GADGET_EXPORT instead of Q_OBJECT to enable the meta object system's support
for enums in a class that is not a QObject subclass.
//! [qobject-macros-private-access-specifier]
\note This macro expansion ends with a \c private: access specifier, which makes member
declarations immediately after the macro private, too. If you want add public (or protected)
members immediately after the macro, you need to use a \c public: (or \c protected:)
access specifier.
//! [qobject-macros-private-access-specifier]
\sa {Meta-Object System}, {Signals and Slots}, {Qt's Property System}
*/
@ -4637,6 +4644,8 @@ QDebug operator<<(QDebug dbg, const QObject *o)
\c{staticMetaObject} is of type QMetaObject and provides access to the
enums declared with Q_ENUM.
\include qobject.cpp qobject-macros-private-access-specifier
\sa Q_GADGET_EXPORT
*/
@ -4662,6 +4671,8 @@ QDebug operator<<(QDebug dbg, const QObject *o)
~~~
\endcode
\include qobject.cpp qobject-macros-private-access-specifier
\sa Q_GADGET, {Creating Shared Libraries}
*/