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 */