From Jason Turner

[expr.context]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp38f4mer4/{from.md → to.md} +11 -11
tmp/tmp38f4mer4/{from.md → to.md} RENAMED
@@ -1,13 +1,12 @@
1
  ### Context dependence <a id="expr.context">[[expr.context]]</a>
2
 
3
- In some contexts, *unevaluated operands* appear ([[expr.prim.req]],
4
- [[expr.typeid]], [[expr.sizeof]], [[expr.unary.noexcept]],
5
- [[dcl.type.simple]], [[temp.pre]], [[temp.concept]]). An unevaluated
6
- operand is not evaluated.
7
 
8
- [*Note 1*: In an unevaluated operand, a non-static class member may be
9
  named [[expr.prim.id]] and naming of objects or functions does not, by
10
  itself, require that a definition be provided [[basic.def.odr]]. An
11
  unevaluated operand is considered a full-expression
12
  [[intro.execution]]. — *end note*]
13
 
@@ -30,14 +29,15 @@ volatile-qualified type and it is one of the following:
30
  these expressions.
31
 
32
  [*Note 2*: Using an overloaded operator causes a function call; the
33
  above covers only operators with built-in meaning. — *end note*]
34
 
35
- If the (possibly converted) expression is a prvalue, the temporary
36
- materialization conversion [[conv.rval]] is applied.
37
 
38
- [*Note 3*: If the expression is an lvalue of class type, it must have a
39
- volatile copy constructor to initialize the temporary object that is the
40
- result object of the lvalue-to-rvalue conversion. — *end note*]
 
41
 
42
- The glvalue expression is evaluated and its value is discarded.
43
 
 
1
  ### Context dependence <a id="expr.context">[[expr.context]]</a>
2
 
3
+ In some contexts, *unevaluated operands* appear
4
+ [[expr.prim.req]], [[expr.typeid]], [[expr.sizeof]], [[expr.unary.noexcept]], [[dcl.type.decltype]], [[temp.pre]], [[temp.concept]].
5
+ An unevaluated operand is not evaluated.
 
6
 
7
+ [*Note 1*: In an unevaluated operand, a non-static class member can be
8
  named [[expr.prim.id]] and naming of objects or functions does not, by
9
  itself, require that a definition be provided [[basic.def.odr]]. An
10
  unevaluated operand is considered a full-expression
11
  [[intro.execution]]. — *end note*]
12
 
 
29
  these expressions.
30
 
31
  [*Note 2*: Using an overloaded operator causes a function call; the
32
  above covers only operators with built-in meaning. — *end note*]
33
 
34
+ The temporary materialization conversion [[conv.rval]] is applied if the
35
+ (possibly converted) expression is a prvalue of object type.
36
 
37
+ [*Note 3*: If the original expression is an lvalue of class type, it
38
+ must have a volatile copy constructor to initialize the temporary object
39
+ that is the result object of the temporary materialization
40
+ conversion. — *end note*]
41
 
42
+ The expression is evaluated and its result (if any) is discarded.
43