[Qt-creator] Use #pragma once as default instead of header guards

Christian Kandeler christian.kandeler at theqtcompany.com
Wed Jan 13 12:29:16 CET 2016

On 01/13/2016 11:55 AM, Bubke Marco wrote:
> Hello
> With the clang code model there is a problem to generate a preamble file with header guards. Imaging a preamble file is like a automatically pre compiled header for the include block at the top. But there are limitations. One is that every ifndef has to match is #endif inside of the preamble but this not the case for header guards.
> #ifndef HEADER_GUARD
> #define HEADER_GUARD
> #include <QtGui> // this would be compiled in the preamble once
> void foo()
> {
>     auto bahn = nullptr;
> }
> #endif
> We don't generate a preamble for this case because the opening ifndefs is not matching the endif. In that case the clang model will be very slow!
> So I propose we change our wizards to utilize #pragma once and use it for every new file. We can change header files where we need code completion on demand too.

Unless I'm misunderstanding the point, you seem to suggest that people 
change their (non-broken) projects to work around problems in Creator's 
code model. This cannot possibly be the solution, can it? The code model 
needs to support users' code, not the other way around.


More information about the Qt-creator mailing list