Sujet : Re: Results of survey re. a new array size operator
De : 643-408-1753 (at) *nospam* kylheku.com (Kaz Kylheku)
Groupes : comp.lang.cDate : 24. Jan 2025, 20:45:21
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20250124113853.6@kylheku.com>
References : 1
User-Agent : slrn/pre1.0.4-9 (Linux)
On 2025-01-24, Alexis <
flexibeast@gmail.com> wrote:
>
Hi all,
>
JeanHeyd Meneide, a Project Editor for WG14, has just posted the results
of a survey re. the preferred form of a new array size operator:
>
"There is a clear preference for a lowercase keyword, here, though it is
not by the biggest margin. One would imagine that with the way we keep
standardizing things since C89 (starting with _Keyword and then adding a
header with a macro) that C folks would be overwhelmingly in favor of
simply continuing that style. The graph here, however, tells a different
story: while there’s a large contingency that clearly hates having
_Keyword by itself, it’s not the _Keyword + stdkeyword.h macro that
comes out on top! It’s just having a plain lowercase keyword, instead."
The best way to have versioning for this in a C compiler is a
language dialect selection option. Say that C27 (or whatever year)
adds an "arraysize" keyword.
- To use that keyword in the updated gcc, you use -std=c27.
- To compile programs written for C99, use -std=c99. Those
programs can use arraysize as an identifier.
- To move those programs to C27, you fix all the uses of
that identifier.
I don't see why we need _Keyword cruft with a header which provides
a macro alias, when compilers not only can have dialect selection
options but realistically cannot avoid doing so.
I hope the propsed array size keyword raises a constraint violation when
applied to a non-array. GCC had to develop a diagnostic for when sizeof
ptr is divided by sizeof ptr[0]!
-- TXR Programming Language: http://nongnu.org/txrCygnal: Cygwin Native Application Library: http://kylheku.com/cygnalMastodon: @Kazinator@mstdn.ca