C++ Logo

liaison

Advanced search

Re: [wg14/wg21 liaison] #once proposal

From: Ville Voutilainen <ville.voutilainen_at_[hidden]>
Date: Thu, 3 Feb 2022 22:42:03 +0200
On Thu, 3 Feb 2022 at 22:30, Miguel Ojeda
<miguel.ojeda.sandonis_at_[hidden]> wrote:
>
> On Thu, Feb 3, 2022 at 9:03 PM Ville Voutilainen
> <ville.voutilainen_at_[hidden]> wrote:
> >
> > That's a rather bold claim to make, considering that there are
>
> There is nothing bold about it, it is reality:
>
> https://www.reddit.com/r/cpp/comments/rxb6r2/include_guards_or_pragma_once/
> https://github.com/search?l=C&q=%22%23pragma+once%22&type=Code

The second link is performing a search on a tiny drop in the ocean of
source code in this world.
I fail to see how that proves your claim of "widely used everywhere".


>The pitfalls with `#pragma once` are understood, and even
>mentioned in the paper, and referenced too. You don't need to convince
>me.

If that's really the case, I wonder why you haven't dropped that
identifier-less part of your proposal.
Based on field experience, those caveats are not widely understood,
and standardizing that footgun
will lead to rather nasty surprises when innocent users think a plain
#once works as it advertises on
the tin. "Surely a standards committee knows better than to
standardize something as quirky as that", they'll
say.

> > So no - it's not widely used everywhere, there are quite a few
> > software houses where its use is completely banned,
> > because it doesn't work.
> "Widely used everywhere" does not mean *every single project*. It
> simply means it is widely used in many domains / projects / companies.

We seem to have different definitions of "everywhere". Mine is not a
synonym of "used in many <insert whichever word here>".
That's not what "everywhere" means, according to any dictionary that I
can consult.

Received on 2022-02-03 20:42:17