[N3818] Clarify terminology for obsolete features, v2

Motivation

Mixing the terms "obsolete", "obsolescent", "deprecated", and "removed", despite distinctions in their meanings, sends confusing and inconsistent message to the outside world, leading to misunderstandings even among the members of the Committee.

This paper aims to clarify the terminology by defining term "obsolete" and the categories of such state.

The Standard itself ought to use the precise categories for individual features. The word "obsolete" is an umbrella term, already seen as existing practice in community (see: cppreference.com, Wikipedia), which would also be useful for papers that put to a discussion the degree to which a feature can be obsoleted (e.g. N3353). As an added bonus, defining it highlights existence of a distinction between "obsolete" and "obsolescent", which may not be clear to all readers otherwise.

As an additional option, there is also a proposition for a term "destandardized", which would describe features no longer maintained by the Standard, but for reasons other than being obsolete, and thus still possibly specified by supplementary documents, or made available as extensions.

The proposed wording for all defined terms is intended to align with their existing usage in the Standard, within the community, as well as common English. As such, if there is an inclination for any feature needing to be reclassified, it should be addressed through a separate paper.

Changes to wording

Introduction

Certain obsolete [3.?] features are obsolescent, which means that they could be considered for withdrawal in future revisions of this document. They are retained because of their widespread use for compatibility reasons, but their use in new implementations (for implementation features) or new programs (for language [6.11] or library features [7.35]) is discouraged.

3. Terms, definitions, and symbols

3.?

obsolete feature

feature outdated by being obsolescent, deprecated, or removed

3.?.1

obsolescent feature

feature with a new replacement; retained for the foreseeable future to ensure backward compatibility

3.?.2

deprecated feature

feature identified as a candidate for removal in a future revision of this document

(optional) Definition of "removed"

3.?.3

removed feature

feature that is no longer part of the standard

(optional) Definition of "destandardized"

3.?

destandardized feature

feature no longer mandated nor specified by the standard

Polls