tmp/tmpsbpayijb/{from.md → to.md}
RENAMED
|
@@ -2,11 +2,11 @@
|
|
| 2 |
|
| 3 |
This subclause provides definitions for swappable types and expressions.
|
| 4 |
In these definitions, let `t` denote an expression of type `T`, and let
|
| 5 |
`u` denote an expression of type `U`.
|
| 6 |
|
| 7 |
-
An object `t` is *swappable with* an object `u` if and only if
|
| 8 |
|
| 9 |
- the expressions `swap(t, u)` and `swap(u, t)` are valid when evaluated
|
| 10 |
in the context described below, and
|
| 11 |
- these expressions have the following effects:
|
| 12 |
- the object referred to by `t` has the value originally held by `u`
|
|
@@ -32,16 +32,15 @@ swappable requirement includes the header `<utility>` to ensure an
|
|
| 32 |
appropriate evaluation context. — *end note*]
|
| 33 |
|
| 34 |
An rvalue or lvalue `t` is *swappable* if and only if `t` is swappable
|
| 35 |
with any rvalue or lvalue, respectively, of type `T`.
|
| 36 |
|
| 37 |
-
A type `X` meets the
|
| 38 |
-
`X` are swappable.
|
| 39 |
|
| 40 |
A type `X` meeting any of the iterator requirements
|
| 41 |
-
[[iterator.requirements]] meets the
|
| 42 |
-
|
| 43 |
|
| 44 |
[*Example 1*:
|
| 45 |
|
| 46 |
User code can ensure that the evaluation of `swap` calls is performed in
|
| 47 |
an appropriate context under the various conditions as follows:
|
|
|
|
| 2 |
|
| 3 |
This subclause provides definitions for swappable types and expressions.
|
| 4 |
In these definitions, let `t` denote an expression of type `T`, and let
|
| 5 |
`u` denote an expression of type `U`.
|
| 6 |
|
| 7 |
+
An object `t` is *swappable with* an object `u` if and only if
|
| 8 |
|
| 9 |
- the expressions `swap(t, u)` and `swap(u, t)` are valid when evaluated
|
| 10 |
in the context described below, and
|
| 11 |
- these expressions have the following effects:
|
| 12 |
- the object referred to by `t` has the value originally held by `u`
|
|
|
|
| 32 |
appropriate evaluation context. — *end note*]
|
| 33 |
|
| 34 |
An rvalue or lvalue `t` is *swappable* if and only if `t` is swappable
|
| 35 |
with any rvalue or lvalue, respectively, of type `T`.
|
| 36 |
|
| 37 |
+
A type `X` meets the requirements if lvalues of type `X` are swappable.
|
|
|
|
| 38 |
|
| 39 |
A type `X` meeting any of the iterator requirements
|
| 40 |
+
[[iterator.requirements]] meets the requirements if, for any
|
| 41 |
+
dereferenceable object `x` of type `X`, `*x` is swappable.
|
| 42 |
|
| 43 |
[*Example 1*:
|
| 44 |
|
| 45 |
User code can ensure that the evaluation of `swap` calls is performed in
|
| 46 |
an appropriate context under the various conditions as follows:
|