Mixing the terms "obsolete", "obsolescent", "deprecated", and "removed", despite distinctions in their meanings, sends a confusing and inconsistent message to the outside world, leading to misunderstandings even among Committee members.
This paper aims to clarify the terminology by defining term "obsolete" and the three categories of such state.
The Standard itself ought to use the precise categories. 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.
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
a feature being phased out of an active use (especially in new code)
obsolescent feature
a feature discouraged from further use, usually in favor of a direct alternative; retained primarily for backward compatibility with existing code
deprecated feature
a feature recommended to be phased out of any usage; often considered for withdrawal from future revisions of this document
removed feature
a feature that is no longer part of the standard
destandardized feature
a feature no longer specified by the standard, but with possibility of being offered as an extension, or described by a different document