From Jason Turner

[unique.ptr.dltr]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmp0t4f_tri/{from.md → to.md} +11 -13
tmp/tmp0t4f_tri/{from.md → to.md} RENAMED
@@ -22,24 +22,23 @@ namespace std {
22
 
23
  ``` cpp
24
  template<class U> default_delete(const default_delete<U>& other) noexcept;
25
  ```
26
 
 
 
27
  *Effects:* Constructs a `default_delete` object from another
28
  `default_delete<U>` object.
29
 
30
- *Remarks:* This constructor shall not participate in overload resolution
31
- unless `U*` is implicitly convertible to `T*`.
32
-
33
  ``` cpp
34
  void operator()(T* ptr) const;
35
  ```
36
 
 
 
37
  *Effects:* Calls `delete` on `ptr`.
38
 
39
- *Remarks:* If `T` is an incomplete type, the program is ill-formed.
40
-
41
  ##### `default_delete<T[]>` <a id="unique.ptr.dltr.dflt1">[[unique.ptr.dltr.dflt1]]</a>
42
 
43
  ``` cpp
44
  namespace std {
45
  template<class T> struct default_delete<T[]> {
@@ -52,21 +51,20 @@ namespace std {
52
 
53
  ``` cpp
54
  template<class U> default_delete(const default_delete<U[]>& other) noexcept;
55
  ```
56
 
57
- *Effects:* constructs a `default_delete` object from another
 
 
58
  `default_delete<U[]>` object.
59
 
60
- *Remarks:* This constructor shall not participate in overload resolution
61
- unless `U(*)[]` is convertible to `T(*)[]`.
62
-
63
  ``` cpp
64
  template<class U> void operator()(U* ptr) const;
65
  ```
66
 
 
 
 
 
67
  *Effects:* Calls `delete[]` on `ptr`.
68
 
69
- *Remarks:* If `U` is an incomplete type, the program is ill-formed. This
70
- function shall not participate in overload resolution unless `U(*)[]` is
71
- convertible to `T(*)[]`.
72
-
 
22
 
23
  ``` cpp
24
  template<class U> default_delete(const default_delete<U>& other) noexcept;
25
  ```
26
 
27
+ *Constraints:* `U*` is implicitly convertible to `T*`.
28
+
29
  *Effects:* Constructs a `default_delete` object from another
30
  `default_delete<U>` object.
31
 
 
 
 
32
  ``` cpp
33
  void operator()(T* ptr) const;
34
  ```
35
 
36
+ *Mandates:* `T` is a complete type.
37
+
38
  *Effects:* Calls `delete` on `ptr`.
39
 
 
 
40
  ##### `default_delete<T[]>` <a id="unique.ptr.dltr.dflt1">[[unique.ptr.dltr.dflt1]]</a>
41
 
42
  ``` cpp
43
  namespace std {
44
  template<class T> struct default_delete<T[]> {
 
51
 
52
  ``` cpp
53
  template<class U> default_delete(const default_delete<U[]>& other) noexcept;
54
  ```
55
 
56
+ *Constraints:* `U(*)[]` is convertible to `T(*)[]`.
57
+
58
+ *Effects:* Constructs a `default_delete` object from another
59
  `default_delete<U[]>` object.
60
 
 
 
 
61
  ``` cpp
62
  template<class U> void operator()(U* ptr) const;
63
  ```
64
 
65
+ *Mandates:* `U` is a complete type.
66
+
67
+ *Constraints:* `U(*)[]` is convertible to `T(*)[]`.
68
+
69
  *Effects:* Calls `delete[]` on `ptr`.
70