From Jason Turner

[swappable.requirements]

Diff to HTML by rtfpessoa

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 *Cpp17Swappable* requirements if lvalues of type
38
- `X` are swappable.
39
 
40
  A type `X` meeting any of the iterator requirements
41
- [[iterator.requirements]] meets the *Cpp17ValueSwappable* requirements
42
- if, for any dereferenceable object `x` of type `X`, `*x` is swappable.
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: