> 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

Reply via email to