On Monday, 10 October 2022 02:55:20 PDT Volker Hilsheimer via Development 
wrote:
> Hi,
> 
> 
> We are using `#pragma once` in a number of examples and tests in the Qt
> source tree, but I don’t think we have officially endorsed it in favour of
> explicit include guards.
 
> #pragma once is “non-standard but widely supported” [1], with some caveats,
> e.g. when there are multiple header files with the same name (which each
> compiler then handles differently, as there is no standard).
 
> From what I see, it should in practice be ok to use. But perhaps I’m missing
> something. Does anything speak against using ‘#pragma once’ in new files?

The biggest problem we used to have was installing builds that had include 
paths pointing to both the source and installation directory. With 
preprocessor guards, only one of the two would actually get included; with 
#pragma once, the files are actually different so both would get included, 
causing a build error.

Now, with CMake I think our include paths are a lot cleaner so this may no 
longer be a problem.

I should also point out that the qglobal.h include mess, which we're trying to 
disentangle, may still require some guards and not #pragma once.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Cloud Software Architect - Intel DCAI Cloud Engineering



_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to