From Jason Turner

[lex.name]

Diff to HTML by rtfpessoa

tmp/tmpcxjqu889/{from.md → to.md} RENAMED
@@ -32,21 +32,24 @@ digit: one of
32
  '0 1 2 3 4 5 6 7 8 9'
33
  ```
34
 
35
  [*Note 1*:
36
 
37
- The character properties XID_Start and XID_Continue are Derived Core
38
- Properties as described by UAX \#44 of the Unicode Standard.[^7]
39
 
40
  — *end note*]
41
 
42
  The program is ill-formed if an *identifier* does not conform to
43
  Normalization Form C as specified in the Unicode Standard.
44
 
45
  [*Note 2*: Identifiers are case-sensitive. — *end note*]
46
 
47
- [*Note 3*: In translation phase 4, *identifier* also includes those
 
 
 
48
  *preprocessing-token*s [[lex.pptoken]] differentiated as keywords
49
  [[lex.key]] in the later translation phase 7
50
  [[lex.token]]. — *end note*]
51
 
52
  The identifiers in [[lex.name.special]] have a special meaning when
@@ -59,10 +62,11 @@ interpret the token as a regular *identifier*.
59
  In addition, some identifiers appearing as a *token* or
60
  *preprocessing-token* are reserved for use by C++ implementations and
61
  shall not be used otherwise; no diagnostic is required.
62
 
63
  - Each identifier that contains a double underscore `__` or begins with
64
- an underscore followed by an uppercase letter is reserved to the
65
- implementation for any use.
 
66
  - Each identifier that begins with an underscore is reserved to the
67
  implementation for use as a name in the global namespace.
68
 
 
32
  '0 1 2 3 4 5 6 7 8 9'
33
  ```
34
 
35
  [*Note 1*:
36
 
37
+ The character properties XID_Start and XID_Continue are described by UAX
38
+ \#44 of the Unicode Standard.[^7]
39
 
40
  — *end note*]
41
 
42
  The program is ill-formed if an *identifier* does not conform to
43
  Normalization Form C as specified in the Unicode Standard.
44
 
45
  [*Note 2*: Identifiers are case-sensitive. — *end note*]
46
 
47
+ [*Note 3*: [[uaxid]] compares the requirements of UAX \#31 of the
48
+ Unicode Standard with the C++ rules for identifiers. — *end note*]
49
+
50
+ [*Note 4*: In translation phase 4, *identifier* also includes those
51
  *preprocessing-token*s [[lex.pptoken]] differentiated as keywords
52
  [[lex.key]] in the later translation phase 7
53
  [[lex.token]]. — *end note*]
54
 
55
  The identifiers in [[lex.name.special]] have a special meaning when
 
62
  In addition, some identifiers appearing as a *token* or
63
  *preprocessing-token* are reserved for use by C++ implementations and
64
  shall not be used otherwise; no diagnostic is required.
65
 
66
  - Each identifier that contains a double underscore `__` or begins with
67
+ an underscore followed by an uppercase letter, other than those
68
+ specified in this document (for example, `__cplusplus`
69
+ [[cpp.predefined]]), is reserved to the implementation for any use.
70
  - Each identifier that begins with an underscore is reserved to the
71
  implementation for use as a name in the global namespace.
72