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.