tmp/tmpyssdnckf/{from.md → to.md}
RENAMED
|
@@ -10,14 +10,22 @@ dependent ([[temp.dep.type]]).
|
|
| 10 |
|
| 11 |
An *id-expression* is type-dependent if it contains
|
| 12 |
|
| 13 |
- an *identifier* associated by name lookup with one or more
|
| 14 |
declarations declared with a dependent type,
|
|
|
|
|
|
|
|
|
|
| 15 |
- an *identifier* associated by name lookup with one or more
|
| 16 |
declarations of member functions of the current instantiation declared
|
| 17 |
-
with a return type that contains a placeholder type
|
| 18 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 19 |
- a *template-id* that is dependent,
|
| 20 |
- a *conversion-function-id* that specifies a dependent type, or
|
| 21 |
- a *nested-name-specifier* or a *qualified-id* that names a member of
|
| 22 |
an unknown specialization;
|
| 23 |
|
|
@@ -29,19 +37,26 @@ type-dependent only if the type specified by the *type-id*,
|
|
| 29 |
subexpression is type-dependent:
|
| 30 |
|
| 31 |
Expressions of the following forms are never type-dependent (because the
|
| 32 |
type of the expression cannot be dependent):
|
| 33 |
|
| 34 |
-
For the standard library macro `offsetof`, see
|
|
|
|
| 35 |
|
| 36 |
A class member access expression ([[expr.ref]]) is type-dependent if
|
| 37 |
the expression refers to a member of the current instantiation and the
|
| 38 |
type of the referenced member is dependent, or the class member access
|
| 39 |
-
expression refers to a member of an unknown specialization.
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
dependent
|
| 45 |
-
|
| 46 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
|
|
|
|
| 10 |
|
| 11 |
An *id-expression* is type-dependent if it contains
|
| 12 |
|
| 13 |
- an *identifier* associated by name lookup with one or more
|
| 14 |
declarations declared with a dependent type,
|
| 15 |
+
- an *identifier* associated by name lookup with a non-type
|
| 16 |
+
*template-parameter* declared with a type that contains a placeholder
|
| 17 |
+
type ([[dcl.spec.auto]]),
|
| 18 |
- an *identifier* associated by name lookup with one or more
|
| 19 |
declarations of member functions of the current instantiation declared
|
| 20 |
+
with a return type that contains a placeholder type,
|
| 21 |
+
- an *identifier* associated by name lookup with a structured binding
|
| 22 |
+
declaration ([[dcl.struct.bind]]) whose *brace-or-equal-initializer*
|
| 23 |
+
is type-dependent,
|
| 24 |
+
- the *identifier* `__func__` ([[dcl.fct.def.general]]), where any
|
| 25 |
+
enclosing function is a template, a member of a class template, or a
|
| 26 |
+
generic lambda,
|
| 27 |
- a *template-id* that is dependent,
|
| 28 |
- a *conversion-function-id* that specifies a dependent type, or
|
| 29 |
- a *nested-name-specifier* or a *qualified-id* that names a member of
|
| 30 |
an unknown specialization;
|
| 31 |
|
|
|
|
| 37 |
subexpression is type-dependent:
|
| 38 |
|
| 39 |
Expressions of the following forms are never type-dependent (because the
|
| 40 |
type of the expression cannot be dependent):
|
| 41 |
|
| 42 |
+
[*Note 1*: For the standard library macro `offsetof`, see
|
| 43 |
+
[[support.types]]. — *end note*]
|
| 44 |
|
| 45 |
A class member access expression ([[expr.ref]]) is type-dependent if
|
| 46 |
the expression refers to a member of the current instantiation and the
|
| 47 |
type of the referenced member is dependent, or the class member access
|
| 48 |
+
expression refers to a member of an unknown specialization.
|
| 49 |
+
|
| 50 |
+
[*Note 2*: In an expression of the form `x.y` or `xp->y` the type of
|
| 51 |
+
the expression is usually the type of the member `y` of the class of `x`
|
| 52 |
+
(or the class pointed to by `xp`). However, if `x` or `xp` refers to a
|
| 53 |
+
dependent type that is not the current instantiation, the type of `y` is
|
| 54 |
+
always dependent. If `x` or `xp` refers to a non-dependent type or
|
| 55 |
+
refers to the current instantiation, the type of `y` is the type of the
|
| 56 |
+
class member access expression. — *end note*]
|
| 57 |
+
|
| 58 |
+
A *braced-init-list* is type-dependent if any element is type-dependent
|
| 59 |
+
or is a pack expansion.
|
| 60 |
+
|
| 61 |
+
A *fold-expression* is type-dependent.
|
| 62 |
|