Path: csiph.com!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: Tim Rentsch
Newsgroups: comp.lang.c
Subject: Re: Why does C allow structs to have a tag?
Date: Sat, 02 Oct 2021 01:37:38 -0700
Organization: A noiseless patient Spider
Lines: 54
Message-ID: <86tuhzstyl.fsf@linuxsc.com>
References: <87czqnlp2m.fsf@bsb.me.uk> <2c0cb99f-2d5f-4149-8b03-d96ecc3d6543n@googlegroups.com> <1f79b2e5-0e07-488f-a529-c00f7d6e046fn@googlegroups.com> <86czootqz0.fsf@linuxsc.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Injection-Info: reader02.eternal-september.org; posting-host="394007ef4ff0447a8819fcdafe9c3245"; logging-data="6215"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/C3N16HvdZSKI6mUNyVDV6VnCrNZXEg9E="
User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux)
Cancel-Lock: sha1:/enHFKTQKcJWbXExihCUIX8rjDA= sha1:BAV+ba3ayhJ+229tz5qrc62ZWCc=
Xref: csiph.com comp.lang.c:162931
Andrey Tarasevich writes:
> On 10/1/2021 1:44 PM, Tim Rentsch wrote:
>
>> The ISO C standard normally uses the term "obsolescent" to
>> indicate a language or library feature that may be removed at
>> ...
>> The ISO C standard normally uses the term "deprecated" to
>> indicate a language or library feature that is expected to be
>> ...
>
> Um...
>
> The ISO C standard uses the term "obsolescent" to refer to
> features marked for future removal.
No, it doesn't. ISO C standard, Introduction, paragraph 2:
Certain features are /obsolescent/, which means that they may
be considered for withdrawal in future revisions of this
International Standard.
Note the phrase "may be considered". (The slant characters around
the word obsolescent indicate italics, meaning a definition.) Such
features may be /considered/ for removal, but they are not /marked/
for removal.
> ISO C standard does designate the word "deprecated" as a standard
> term.
None of the several versions of the ISO C standard that I looked
at give a definition for "deprecate" or "deprecated". All use
the word, but none of them define it.
> One can encounter the word "deprecated" in the standard text, but
> it is never used to refer to language features.
Certainly it is is. For example N1256, which is C99 plus three
technical corrigenda, says this in 7.26.9 paragraph 2:
The gets function is obsolescent, and is deprecated.
> "Deprecated" is used by C++ standard. "Deprecated" in C++ is an
> exact synonym of "obsolescent" in C.
No, it isn't. A feature being obsolescent in C means only that
it "may be considered" at a later time, whereas a feature being
deprecated in C++ means that it "[has] been identified" as being
subject to removal in a later standard. The word obsolescent is
tentative, the word deprecated more definite. The two terms may
be related but they are not the same.