Deutsch   English   Français   Italiano  
<87a5kg5voc.fsf@nosuchdomain.example.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups: comp.lang.c
Subject: Re: C23 thoughts and opinions
Date: Thu, 23 May 2024 09:40:03 -0700
Organization: None to speak of
Lines: 29
Message-ID: <87a5kg5voc.fsf@nosuchdomain.example.com>
References: <v2l828$18v7f$1@dont-email.me> <20240523150226.00007e7d@yahoo.com>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Date: Thu, 23 May 2024 18:40:04 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="04393c0e0d87ab29eec6bf33d59d4ed3";
	logging-data="1940239"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/oFvpV2TO7lb6zBM/W+5+f"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:aS+YsMdwSIvsggq/rWJA2GrnagI=
	sha1:5R5eMqxIoG1JbsmBMQ22P1Pgjes=
Bytes: 2021

Michael S <already5chosen@yahoo.com> writes:
[...]
> Removed
[...]
> 7) static_assert is not provided as a macro defined in <assert.h>
> (becomes a keyword)
> 8) thread_local is not provided as a macro defined in <threads.h>
> (becomes a keyword) 
>
[...]
> 7) bad. Breaks existing code for weak reason
> 8) bad. Breaks existing code for weak reason

In pre-C23, _Static_assert and _Thread_local are keywords, and
static_assert and thread_local are macros that expand to those keywords.

In C23, _Static_assert, _Thread_local, static_assert, and thread_local
are all keywords.  Code that simply uses the old ugly keywords would not
break.

Code that does something like "#ifdef static_assert".  I suppose the
headers could have retained the old macro definitions.

    #define static_assert static_assert
    #define thread_local thread_local

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */