From Jason Turner

[util.smartptr.weak.const]

Diff to HTML by rtfpessoa

tmp/tmpi9zfoy34/{from.md → to.md} RENAMED
@@ -8,13 +8,13 @@ constexpr weak_ptr() noexcept;
8
  pointer value.
9
 
10
  *Ensures:* `use_count() == 0`.
11
 
12
  ``` cpp
13
- weak_ptr(const weak_ptr& r) noexcept;
14
- template<class Y> weak_ptr(const weak_ptr<Y>& r) noexcept;
15
- template<class Y> weak_ptr(const shared_ptr<Y>& r) noexcept;
16
  ```
17
 
18
  *Constraints:* For the second and third constructors, `Y*` is compatible
19
  with `T*`.
20
 
@@ -24,12 +24,12 @@ that shares ownership with `r` and stores a copy of the pointer stored
24
  in `r`.
25
 
26
  *Ensures:* `use_count() == r.use_count()`.
27
 
28
  ``` cpp
29
- weak_ptr(weak_ptr&& r) noexcept;
30
- template<class Y> weak_ptr(weak_ptr<Y>&& r) noexcept;
31
  ```
32
 
33
  *Constraints:* For the second constructor, `Y*` is compatible with `T*`.
34
 
35
  *Effects:* Move constructs a `weak_ptr` instance from `r`.
 
8
  pointer value.
9
 
10
  *Ensures:* `use_count() == 0`.
11
 
12
  ``` cpp
13
+ constexpr weak_ptr(const weak_ptr& r) noexcept;
14
+ template<class Y> constexpr weak_ptr(const weak_ptr<Y>& r) noexcept;
15
+ template<class Y> constexpr weak_ptr(const shared_ptr<Y>& r) noexcept;
16
  ```
17
 
18
  *Constraints:* For the second and third constructors, `Y*` is compatible
19
  with `T*`.
20
 
 
24
  in `r`.
25
 
26
  *Ensures:* `use_count() == r.use_count()`.
27
 
28
  ``` cpp
29
+ constexpr weak_ptr(weak_ptr&& r) noexcept;
30
+ template<class Y> constexpr weak_ptr(weak_ptr<Y>&& r) noexcept;
31
  ```
32
 
33
  *Constraints:* For the second constructor, `Y*` is compatible with `T*`.
34
 
35
  *Effects:* Move constructs a `weak_ptr` instance from `r`.