tmp/tmpx9c1lftp/{from.md → to.md}
RENAMED
|
@@ -15,19 +15,38 @@ Clauses. — *end note*]
|
|
| 15 |
|
| 16 |
An *entity* is a value, object, reference, structured binding, function,
|
| 17 |
enumerator, type, class member, bit-field, template, template
|
| 18 |
specialization, namespace, or pack.
|
| 19 |
|
| 20 |
-
A *name* is
|
| 21 |
-
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
|
| 30 |
A *variable* is introduced by the declaration of a reference other than
|
| 31 |
a non-static data member or of an object. The variable’s name, if any,
|
| 32 |
denotes the reference or object.
|
| 33 |
|
|
@@ -44,13 +63,12 @@ it. The process that determines this is called *name lookup*
|
|
| 44 |
|
| 45 |
Two names are *the same* if
|
| 46 |
|
| 47 |
- they are *identifier*s composed of the same character sequence, or
|
| 48 |
- they are *operator-function-id*s formed with the same operator, or
|
| 49 |
-
- they are *conversion-function-id*s formed with
|
| 50 |
-
|
| 51 |
-
variable [[temp.type]], or
|
| 52 |
- they are *literal-operator-id*s [[over.literal]] formed with the same
|
| 53 |
literal suffix identifier.
|
| 54 |
|
| 55 |
A name used in more than one translation unit can potentially refer to
|
| 56 |
the same entity in these translation units depending on the linkage
|
|
|
|
| 15 |
|
| 16 |
An *entity* is a value, object, reference, structured binding, function,
|
| 17 |
enumerator, type, class member, bit-field, template, template
|
| 18 |
specialization, namespace, or pack.
|
| 19 |
|
| 20 |
+
A *name* is an *identifier* [[lex.name]], *operator-function-id*
|
| 21 |
+
[[over.oper]], *literal-operator-id* [[over.literal]], or
|
| 22 |
+
*conversion-function-id* [[class.conv.fct]].
|
| 23 |
+
|
| 24 |
+
Every name is introduced by a *declaration*, which is a
|
| 25 |
+
|
| 26 |
+
- *name-declaration*, *block-declaration*, or *member-declaration*
|
| 27 |
+
[[dcl.pre]], [[class.mem]],
|
| 28 |
+
- *init-declarator* [[dcl.decl]],
|
| 29 |
+
- *identifier* in a structured binding declaration [[dcl.struct.bind]],
|
| 30 |
+
- *init-capture* [[expr.prim.lambda.capture]],
|
| 31 |
+
- *condition* with a *declarator* [[stmt.pre]],
|
| 32 |
+
- *member-declarator* [[class.mem]],
|
| 33 |
+
- *using-declarator* [[namespace.udecl]],
|
| 34 |
+
- *parameter-declaration* [[dcl.fct]],
|
| 35 |
+
- *type-parameter* [[temp.param]],
|
| 36 |
+
- *elaborated-type-specifier* that introduces a name [[dcl.type.elab]],
|
| 37 |
+
- *class-specifier* [[class.pre]],
|
| 38 |
+
- *enum-specifier* or *enumerator-definition* [[dcl.enum]],
|
| 39 |
+
- *exception-declaration* [[except.pre]], or
|
| 40 |
+
- implicit declaration of an injected-class-name [[class.pre]].
|
| 41 |
+
|
| 42 |
+
[*Note 3*: The interpretation of a *for-range-declaration* produces one
|
| 43 |
+
or more of the above [[stmt.ranged]]. — *end note*]
|
| 44 |
+
|
| 45 |
+
An entity E is denoted by the name (if any) that is introduced by a
|
| 46 |
+
declaration of E or by a *typedef-name* introduced by a declaration
|
| 47 |
+
specifying E.
|
| 48 |
|
| 49 |
A *variable* is introduced by the declaration of a reference other than
|
| 50 |
a non-static data member or of an object. The variable’s name, if any,
|
| 51 |
denotes the reference or object.
|
| 52 |
|
|
|
|
| 63 |
|
| 64 |
Two names are *the same* if
|
| 65 |
|
| 66 |
- they are *identifier*s composed of the same character sequence, or
|
| 67 |
- they are *operator-function-id*s formed with the same operator, or
|
| 68 |
+
- they are *conversion-function-id*s formed with equivalent
|
| 69 |
+
[[temp.over.link]] types, or
|
|
|
|
| 70 |
- they are *literal-operator-id*s [[over.literal]] formed with the same
|
| 71 |
literal suffix identifier.
|
| 72 |
|
| 73 |
A name used in more than one translation unit can potentially refer to
|
| 74 |
the same entity in these translation units depending on the linkage
|