25.01.2018, 13:27, "Mathias Hasselmann" <[email protected]>: > 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.
The latter statement is not exactly true, both libstdc++ and libc++ can be used by many compilers, and they also aren't guaranteed 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 -- Regards, Konstantin _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
