C++ Logo


Advanced search

Re: [std-proposals] The Oxford variadic comma

From: Jonathan Wakely <cxx_at_[hidden]>
Date: Fri, 1 Mar 2024 20:45:54 +0000
On Fri, 1 Mar 2024 at 15:53, Tom Honermann <tom_at_[hidden]> wrote:
> On 3/1/24 6:43 AM, Jonathan Wakely via Std-Proposals wrote:
> > On Fri, 1 Mar 2024 at 01:53, Zhihao Yuan via Std-Proposals
> > <std-proposals_at_[hidden]> wrote:
> >> On Thursday, February 29th, 2024 at 10:48 AM, Tom Honermann via Std-Proposals <std-proposals_at_[hidden]> wrote:
> >>
> >> See also P0281R0 (Remove comma elision in variadic function declarations). EWG rejected the paper during the Jacksonville, 2016 meeting. There isn't much for meeting minutes. From what I recall, concerns were mostly about the potential to break existing code.
> >>
> >> My view: ship it.
> >>
> >> Tom.
> >>
> >> My view: ship it.
> >>
> >> And prove my stand-up outdated: https://youtu.be/PSvJ_j4rKOE
> > I'm glad I'm not the only one who enjoys the hexadot.
> >
> > https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/include/bits/refwrap.h;h=2d4338b718fca19439223512fae2a131de0784ff;hb=HEAD#l140
> Hmm, usage in a system header. And that isn't the only use.
> https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/libsupc%2B%2B/new;h=8b07150fb94941bd29a334cfa178c922255ea394;hb=HEAD#l206
> https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libstdc%2B%2B-v3/include/tr1/type_traits;h=f5714b0032cc8015840a90a002911da62bc9dd27;hb=HEAD#l229
> That last one is tr1, so I'm not sure it matters much. The paper should
> probably note these uses. They probably don't affect deprecation since
> deprecation warnings are typically suppressed for uses in system
> headers, but they could be an issue for removal. This suggests getting
> some implementation experience might be worthwhile as well (e.g., add a
> warning to gcc, build it and libstc++, run the testsuite).

Libstdc++ headers are changed in lockstep with GCC itself, so if this
change goes ahead I'll just add the commas to libstdc++ (and weep
quietly to mourn the loss of the hexadot).

There's a minor issue for libstdc++ headers being consumed by non-GCC
compilers, so somebody trying to use today's libstdc++ headers with a
version of Clang that implements this proposal would be an issue. My
thinking is that if you're trying to use -std=c++2c -stdlib=libstdc++
with clang then you had better make sure you have up-to-date libstdc++
headers. It's not reasonable to expect headers from 2024 to support
-std=c++2c well.

Uses in non-stdlib code are more of a concern.

Received on 2024-03-01 20:47:12