From Jason Turner

[variant.assign]

Diff to HTML by rtfpessoa

tmp/tmpxdp8xxat/{from.md → to.md} RENAMED
@@ -13,11 +13,11 @@ Let j be `rhs.index()`.
13
  value contained in `*this` and sets `*this` to not hold a value.
14
  - Otherwise, if `index() == `j, assigns the value contained in `rhs` to
15
  the value contained in `*this`.
16
  - Otherwise, if either `is_nothrow_copy_constructible_v<``Tⱼ``>` is
17
  `true` or `is_nothrow_move_constructible_v<``Tⱼ``>` is `false`,
18
- equivalent to `emplace<`j`>(get<`j`>(rhs))`.
19
  - Otherwise, equivalent to `operator=(variant(rhs))`.
20
 
21
  *Ensures:* `index() == rhs.index()`.
22
 
23
  *Returns:* `*this`.
@@ -41,13 +41,14 @@ Let j be `rhs.index()`.
41
  *Effects:*
42
 
43
  - If neither `*this` nor `rhs` holds a value, there is no effect.
44
  - Otherwise, if `*this` holds a value but `rhs` does not, destroys the
45
  value contained in `*this` and sets `*this` to not hold a value.
46
- - Otherwise, if `index() == `j, assigns `get<`j`>(std::move(rhs))` to
47
- the value contained in `*this`.
48
- - Otherwise, equivalent to `emplace<`j`>(get<`j`>(std::move(rhs)))`.
 
49
 
50
  *Returns:* `*this`.
51
 
52
  *Remarks:* If `is_trivially_move_constructible_v<``Tᵢ``> &&`
53
  `is_trivially_move_assignable_v<``Tᵢ``> &&`
 
13
  value contained in `*this` and sets `*this` to not hold a value.
14
  - Otherwise, if `index() == `j, assigns the value contained in `rhs` to
15
  the value contained in `*this`.
16
  - Otherwise, if either `is_nothrow_copy_constructible_v<``Tⱼ``>` is
17
  `true` or `is_nothrow_move_constructible_v<``Tⱼ``>` is `false`,
18
+ equivalent to `emplace<`j`>(`*`GET`*`<`j`>(rhs))`.
19
  - Otherwise, equivalent to `operator=(variant(rhs))`.
20
 
21
  *Ensures:* `index() == rhs.index()`.
22
 
23
  *Returns:* `*this`.
 
41
  *Effects:*
42
 
43
  - If neither `*this` nor `rhs` holds a value, there is no effect.
44
  - Otherwise, if `*this` holds a value but `rhs` does not, destroys the
45
  value contained in `*this` and sets `*this` to not hold a value.
46
+ - Otherwise, if `index() == `j, assigns *`GET`*`<`j`>(std::move(rhs))`
47
+ to the value contained in `*this`.
48
+ - Otherwise, equivalent to
49
+ `emplace<`j`>(`*`GET`*`<`j`>(std::move(rhs)))`.
50
 
51
  *Returns:* `*this`.
52
 
53
  *Remarks:* If `is_trivially_move_constructible_v<``Tᵢ``> &&`
54
  `is_trivially_move_assignable_v<``Tᵢ``> &&`