From Jason Turner

[unique.ptr.single.asgn]

Diff to HTML by rtfpessoa

tmp/tmpyofuv5pi/{from.md → to.md} RENAMED
@@ -5,18 +5,17 @@ unique_ptr& operator=(unique_ptr&& u) noexcept;
5
  ```
6
 
7
  *Requires:* If `D` is not a reference type, `D` shall satisfy the
8
  requirements of `MoveAssignable` (Table  [[moveassignable]]) and
9
  assignment of the deleter from an rvalue of type `D` shall not throw an
10
- exception. Otherwise, `D` is a reference type;
11
- `remove_reference<D>::type` shall satisfy the `CopyAssignable`
12
- requirements and assignment of the deleter from an lvalue of type `D`
13
- shall not throw an exception.
14
 
15
  *Effects:* Transfers ownership from `u` to `*this` as if by calling
16
- `reset(u.release())` followed by an assignment from
17
- `std::forward<D>(u.get_deleter())`.
18
 
19
  *Returns:* `*this`.
20
 
21
  ``` cpp
22
  template <class U, class E> unique_ptr& operator=(unique_ptr<U, E>&& u) noexcept;
@@ -33,12 +32,12 @@ unless:
33
 
34
  - `unique_ptr<U, E>::pointer` is implicitly convertible to `pointer` and
35
  - `U` is not an array type.
36
 
37
  *Effects:* Transfers ownership from `u` to `*this` as if by calling
38
- `reset(u.release())` followed by an assignment from
39
- `std::forward<D>(u.get_deleter())`.
40
 
41
  *Returns:* `*this`.
42
 
43
  ``` cpp
44
  unique_ptr& operator=(nullptr_t) noexcept;
 
5
  ```
6
 
7
  *Requires:* If `D` is not a reference type, `D` shall satisfy the
8
  requirements of `MoveAssignable` (Table  [[moveassignable]]) and
9
  assignment of the deleter from an rvalue of type `D` shall not throw an
10
+ exception. Otherwise, `D` is a reference type; `remove_reference_t<D>`
11
+ shall satisfy the `CopyAssignable` requirements and assignment of the
12
+ deleter from an lvalue of type `D` shall not throw an exception.
 
13
 
14
  *Effects:* Transfers ownership from `u` to `*this` as if by calling
15
+ `reset(u.release())` followed by
16
+ `get_deleter() = std::forward<D>(u.get_deleter())`.
17
 
18
  *Returns:* `*this`.
19
 
20
  ``` cpp
21
  template <class U, class E> unique_ptr& operator=(unique_ptr<U, E>&& u) noexcept;
 
32
 
33
  - `unique_ptr<U, E>::pointer` is implicitly convertible to `pointer` and
34
  - `U` is not an array type.
35
 
36
  *Effects:* Transfers ownership from `u` to `*this` as if by calling
37
+ `reset(u.release())` followed by
38
+ `get_deleter() = std::forward<E>(u.get_deleter())`.
39
 
40
  *Returns:* `*this`.
41
 
42
  ``` cpp
43
  unique_ptr& operator=(nullptr_t) noexcept;