[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?

Cheers,
Cristian.
-------------- 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