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

Cristian Adam cristian.adam at gmail.com
Wed Jan 13 12:39:04 CET 2016

On Wed, Jan 13, 2016 at 12:29 PM, Christian Kandeler <
christian.kandeler at theqtcompany.com> wrote:

> 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.
Qt Creator could provide a fix-it for this. ;-)

What does Xcode do in the case of include guard headers? Does it create a
preamble file?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/qt-creator/attachments/20160113/dab63e2f/attachment.html>

More information about the Qt-creator mailing list