From Jason Turner

[dcl.attr.deprecated]

Diff to HTML by rtfpessoa

tmp/tmp_fw7ooz3/{from.md → to.md} RENAMED
@@ -8,21 +8,20 @@ entities that are deemed obsolescent or unsafe. — *end note*]
8
 
9
  An *attribute-argument-clause* may be present and, if present, it shall
10
  have the form:
11
 
12
  ``` bnf
13
- '(' string-literal ')'
14
  ```
15
 
16
- [*Note 2*: The *string-literal* in the *attribute-argument-clause* can
17
- be used to explain the rationale for deprecation and/or to suggest a
18
  replacing entity. — *end note*]
19
 
20
- The attribute may be applied to the declaration of a class, a
21
- *typedef-name*, a variable, a non-static data member, a function, a
22
- namespace, an enumeration, an enumerator, a concept, or a template
23
- specialization.
24
 
25
  An entity declared without the `deprecated` attribute can later be
26
  redeclared with the attribute and vice-versa.
27
 
28
  [*Note 3*: Thus, an entity initially declared without the attribute can
@@ -37,7 +36,9 @@ the *attribute-argument-clause* or with different
37
  *Recommended practice:* Implementations should use the `deprecated`
38
  attribute to produce a diagnostic message in case the program refers to
39
  a name or entity other than to declare it, after a declaration that
40
  specifies the attribute. The diagnostic message should include the text
41
  provided within the *attribute-argument-clause* of any `deprecated`
42
- attribute applied to the name or entity.
 
 
43
 
 
8
 
9
  An *attribute-argument-clause* may be present and, if present, it shall
10
  have the form:
11
 
12
  ``` bnf
13
+ '(' unevaluated-string ')'
14
  ```
15
 
16
+ [*Note 2*: The *unevaluated-string* in the *attribute-argument-clause*
17
+ can be used to explain the rationale for deprecation and/or to suggest a
18
  replacing entity. — *end note*]
19
 
20
+ The attribute may be applied to the declaration of a class, a type
21
+ alias, a variable, a non-static data member, a function, a namespace, an
22
+ enumeration, an enumerator, a concept, or a template specialization.
 
23
 
24
  An entity declared without the `deprecated` attribute can later be
25
  redeclared with the attribute and vice-versa.
26
 
27
  [*Note 3*: Thus, an entity initially declared without the attribute can
 
36
  *Recommended practice:* Implementations should use the `deprecated`
37
  attribute to produce a diagnostic message in case the program refers to
38
  a name or entity other than to declare it, after a declaration that
39
  specifies the attribute. The diagnostic message should include the text
40
  provided within the *attribute-argument-clause* of any `deprecated`
41
+ attribute applied to the name or entity. The value of a
42
+ *has-attribute-expression* for the `deprecated` attribute should be `0`
43
+ unless the implementation can issue such diagnostic messages.
44