cpp/language/attributes/deprecated

Indicates that the name or entity declared with this attribute is deprecated, that is, the use is allowed, but discouraged for some reason.

Explanation
Indicates that the use of the name or entity declared with this attribute is allowed, but discouraged for some reason. Compilers typically issue warnings on such uses. The, if specified, is usually included in the warnings.

This attribute is allowed in declarations of the following names or entities:


 * class/struct/union: ,
 * typedef-name, including those declared by alias declaration:, ,
 * variable, including static data member: ,
 * non-static data member: ,
 * function: ,
 * namespace: ,
 * enumeration: ,
 * enumerator: ,
 * template specialization:.

A name declared non-deprecated may be redeclared deprecated. A name declared deprecated cannot be un-deprecated by redeclaring it without this attribute.