tmp/tmpwe8mrgtf/{from.md → to.md}
RENAMED
|
@@ -15,11 +15,12 @@ Expressions are categorized according to the taxonomy in Figure
|
|
| 15 |
return type is an lvalue reference is an lvalue.
|
| 16 |
- An *xvalue* (an “eXpiring” value) also refers to an object, usually
|
| 17 |
near the end of its lifetime (so that its resources may be moved, for
|
| 18 |
example). An xvalue is the result of certain kinds of expressions
|
| 19 |
involving rvalue references ([[dcl.ref]]). The result of calling a
|
| 20 |
-
function whose return type is an rvalue reference
|
|
|
|
| 21 |
- A *glvalue* (“generalized” lvalue) is an lvalue or an xvalue.
|
| 22 |
- An *rvalue* (so called, historically, because rvalues could appear on
|
| 23 |
the right-hand side of an assignment expression) is an xvalue, a
|
| 24 |
temporary object ([[class.temporary]]) or subobject thereof, or a
|
| 25 |
value that is not associated with an object.
|
|
@@ -46,14 +47,15 @@ is not such a context; see [[dcl.init.ref]].
|
|
| 46 |
|
| 47 |
The discussion of reference initialization in [[dcl.init.ref]] and of
|
| 48 |
temporaries in [[class.temporary]] indicates the behavior of lvalues
|
| 49 |
and rvalues in other significant contexts.
|
| 50 |
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
|
|
|
| 55 |
|
| 56 |
An lvalue for an object is necessary in order to modify the object
|
| 57 |
except that an rvalue of class type can also be used to modify its
|
| 58 |
referent under certain circumstances. a member function called for an
|
| 59 |
object ([[class.mfct]]) can modify the object.
|
|
@@ -74,11 +76,11 @@ the expression is called *modifiable*. A program that attempts to modify
|
|
| 74 |
an object through a nonmodifiable lvalue or rvalue expression is
|
| 75 |
ill-formed.
|
| 76 |
|
| 77 |
If a program attempts to access the stored value of an object through a
|
| 78 |
glvalue of other than one of the following types the behavior is
|
| 79 |
-
undefined:[^
|
| 80 |
|
| 81 |
- the dynamic type of the object,
|
| 82 |
- a cv-qualified version of the dynamic type of the object,
|
| 83 |
- a type similar (as defined in [[conv.qual]]) to the dynamic type of
|
| 84 |
the object,
|
|
|
|
| 15 |
return type is an lvalue reference is an lvalue.
|
| 16 |
- An *xvalue* (an “eXpiring” value) also refers to an object, usually
|
| 17 |
near the end of its lifetime (so that its resources may be moved, for
|
| 18 |
example). An xvalue is the result of certain kinds of expressions
|
| 19 |
involving rvalue references ([[dcl.ref]]). The result of calling a
|
| 20 |
+
function whose return type is an rvalue reference to an object type is
|
| 21 |
+
an xvalue ([[expr.call]]).
|
| 22 |
- A *glvalue* (“generalized” lvalue) is an lvalue or an xvalue.
|
| 23 |
- An *rvalue* (so called, historically, because rvalues could appear on
|
| 24 |
the right-hand side of an assignment expression) is an xvalue, a
|
| 25 |
temporary object ([[class.temporary]]) or subobject thereof, or a
|
| 26 |
value that is not associated with an object.
|
|
|
|
| 47 |
|
| 48 |
The discussion of reference initialization in [[dcl.init.ref]] and of
|
| 49 |
temporaries in [[class.temporary]] indicates the behavior of lvalues
|
| 50 |
and rvalues in other significant contexts.
|
| 51 |
|
| 52 |
+
Unless otherwise indicated ([[expr.call]]), prvalues shall always have
|
| 53 |
+
complete types or the `void` type; in addition to these types, glvalues
|
| 54 |
+
can also have incomplete types. class and array prvalues can have
|
| 55 |
+
cv-qualified types; other prvalues always have cv-unqualified types. See
|
| 56 |
+
Clause [[expr]].
|
| 57 |
|
| 58 |
An lvalue for an object is necessary in order to modify the object
|
| 59 |
except that an rvalue of class type can also be used to modify its
|
| 60 |
referent under certain circumstances. a member function called for an
|
| 61 |
object ([[class.mfct]]) can modify the object.
|
|
|
|
| 76 |
an object through a nonmodifiable lvalue or rvalue expression is
|
| 77 |
ill-formed.
|
| 78 |
|
| 79 |
If a program attempts to access the stored value of an object through a
|
| 80 |
glvalue of other than one of the following types the behavior is
|
| 81 |
+
undefined:[^30]
|
| 82 |
|
| 83 |
- the dynamic type of the object,
|
| 84 |
- a cv-qualified version of the dynamic type of the object,
|
| 85 |
- a type similar (as defined in [[conv.qual]]) to the dynamic type of
|
| 86 |
the object,
|