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.
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.
obsolete feature
feature outdated by being obsolescent, deprecated, or removed
obsolescent feature
feature with a new replacement; retained for the foreseeable future to ensure backward compatibility
deprecated feature
feature identified as a candidate for removal in a future revision of this document
removed feature
feature that is no longer part of the standard
destandardized feature
feature no longer mandated nor specified by the standard