> On 24 Jun 2025, at 07:56, Sze Howe Koh <szehowe....@gmail.com> wrote: > > A few years ago, our private headers were updated to include > qglobal_p.h. Examples: > * https://codereview.qt-project.org/c/qt/qtbase/+/121135 > * https://codereview.qt-project.org/c/qt/qtdeclarative/+/395249 > > The commit messages say, "See script in qtbase/util/includeprivate for > the rules", but I wasn't able to find this script. > > 1. What's the rationale for #include-ing private headers like this? > 2. Is a copy of the script published somewhere? Should the script be > pushed to qtbase/util/includeprivate as advertised? > 3. Should the rules be enshrined in a QUIP, and/or should the Sanity > Bot be given a new job? >
On the rationale: The first change adds the include of QtCore/private/qglobal_p.h to qlogging_p.h. So the code is now: #include <QtCore/private/qglobal_p.h> QT_BEGIN_NAMESPACE … Without the qglobal_p.h include, QT_BEGIN_NAMESPACE would be undefined if a translation unit includes qlogging_p.h first. I have no knowledge about the script, but sanity bot checking that there is an include before any `QT_` or `Q_` preprocessor symbol is used would be useful, for any header (it would have saved me a bit of head scratching recently, leading to https://codereview.qt-project.org/c/qt/qtbase/+/654258). Volker -- Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development