Let's see what people who know much more about compiler features than any of us think about "#pragma once". Let's check what GCC and Clang do for their C++ library headers:

$ grep -r pragma.*once /usr/include/clang/5.0.0/include /usr/include/c++/7.2.0/
  $

...and this is about headers that target exactly one compiler and are known to be locally installed.

Hope this helps,
Mathias

Am 24.01.2018 um 13:19 schrieb Mitch Curtis:


-----Original Message-----
From: Ville Voutilainen [mailto:[email protected]]
Sent: Wednesday, 24 January 2018 1:11 PM
To: Mitch Curtis <[email protected]>
Cc: Alexander Nassian <[email protected]>; development@qt-
project.org
Subject: Re: [Development] #pragma once

On 24 January 2018 at 12:34, Mitch Curtis <[email protected]> wrote:


-----Original Message-----
From: Ville Voutilainen [mailto:[email protected]]
Sent: Wednesday, 24 January 2018 11:25 AM
To: Alexander Nassian <[email protected]>
Cc: Mitch Curtis <[email protected]>; [email protected]
Subject: Re: [Development] #pragma once

On 24 January 2018 at 12:22, Alexander Nassian <nassian@bitshift-
dynamics.com> wrote:
Maybe because it’s not part of the C++ standard?

#pragma once is not a replacement for include guards.

Why not?

It's not part of the C++ standard because it doesn't always work

In which ways? My quick search gave me these:

https://stackoverflow.com/a/1946730/904422
https://en.wikipedia.org/wiki/Pragma_once#Caveats

That wikipedia link seems to describe the problems fairly accurately.

Do we have that issue in Qt?

and modules are a superior solution anyway.
How so?

Because you can import the same module multiple times without concerns
about re-definitions, and that import is much faster than parsing a header
file.
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to