From Jason Turner

[util.smartptr.weak.general]

Diff to HTML by rtfpessoa

Files changed (1) hide show
  1. tmp/tmpazbr6two/{from.md → to.md} +23 -18
tmp/tmpazbr6two/{from.md → to.md} RENAMED
@@ -11,43 +11,48 @@ namespace std {
11
  using element_type = remove_extent_t<T>;
12
 
13
  // [util.smartptr.weak.const], constructors
14
  constexpr weak_ptr() noexcept;
15
  template<class Y>
16
- weak_ptr(const shared_ptr<Y>& r) noexcept;
17
- weak_ptr(const weak_ptr& r) noexcept;
18
  template<class Y>
19
- weak_ptr(const weak_ptr<Y>& r) noexcept;
20
- weak_ptr(weak_ptr&& r) noexcept;
21
  template<class Y>
22
- weak_ptr(weak_ptr<Y>&& r) noexcept;
23
 
24
  // [util.smartptr.weak.dest], destructor
25
- ~weak_ptr();
26
 
27
  // [util.smartptr.weak.assign], assignment
28
- weak_ptr& operator=(const weak_ptr& r) noexcept;
29
  template<class Y>
30
- weak_ptr& operator=(const weak_ptr<Y>& r) noexcept;
31
  template<class Y>
32
- weak_ptr& operator=(const shared_ptr<Y>& r) noexcept;
33
- weak_ptr& operator=(weak_ptr&& r) noexcept;
34
  template<class Y>
35
- weak_ptr& operator=(weak_ptr<Y>&& r) noexcept;
36
 
37
  // [util.smartptr.weak.mod], modifiers
38
- void swap(weak_ptr& r) noexcept;
39
- void reset() noexcept;
40
 
41
  // [util.smartptr.weak.obs], observers
42
- long use_count() const noexcept;
43
- bool expired() const noexcept;
44
- shared_ptr<T> lock() const noexcept;
45
  template<class U>
46
- bool owner_before(const shared_ptr<U>& b) const noexcept;
47
  template<class U>
48
- bool owner_before(const weak_ptr<U>& b) const noexcept;
 
 
 
 
 
49
  };
50
 
51
  template<class T>
52
  weak_ptr(shared_ptr<T>) -> weak_ptr<T>;
53
  }
 
11
  using element_type = remove_extent_t<T>;
12
 
13
  // [util.smartptr.weak.const], constructors
14
  constexpr weak_ptr() noexcept;
15
  template<class Y>
16
+ constexpr weak_ptr(const shared_ptr<Y>& r) noexcept;
17
+ constexpr weak_ptr(const weak_ptr& r) noexcept;
18
  template<class Y>
19
+ constexpr weak_ptr(const weak_ptr<Y>& r) noexcept;
20
+ constexpr weak_ptr(weak_ptr&& r) noexcept;
21
  template<class Y>
22
+ constexpr weak_ptr(weak_ptr<Y>&& r) noexcept;
23
 
24
  // [util.smartptr.weak.dest], destructor
25
+ constexpr ~weak_ptr();
26
 
27
  // [util.smartptr.weak.assign], assignment
28
+ constexpr weak_ptr& operator=(const weak_ptr& r) noexcept;
29
  template<class Y>
30
+ constexpr weak_ptr& operator=(const weak_ptr<Y>& r) noexcept;
31
  template<class Y>
32
+ constexpr weak_ptr& operator=(const shared_ptr<Y>& r) noexcept;
33
+ constexpr weak_ptr& operator=(weak_ptr&& r) noexcept;
34
  template<class Y>
35
+ constexpr weak_ptr& operator=(weak_ptr<Y>&& r) noexcept;
36
 
37
  // [util.smartptr.weak.mod], modifiers
38
+ constexpr void swap(weak_ptr& r) noexcept;
39
+ constexpr void reset() noexcept;
40
 
41
  // [util.smartptr.weak.obs], observers
42
+ constexpr long use_count() const noexcept;
43
+ constexpr bool expired() const noexcept;
44
+ constexpr shared_ptr<T> lock() const noexcept;
45
  template<class U>
46
+ constexpr bool owner_before(const shared_ptr<U>& b) const noexcept;
47
  template<class U>
48
+ constexpr bool owner_before(const weak_ptr<U>& b) const noexcept;
49
+ size_t owner_hash() const noexcept;
50
+ template<class U>
51
+ constexpr bool owner_equal(const shared_ptr<U>& b) const noexcept;
52
+ template<class U>
53
+ constexpr bool owner_equal(const weak_ptr<U>& b) const noexcept;
54
  };
55
 
56
  template<class T>
57
  weak_ptr(shared_ptr<T>) -> weak_ptr<T>;
58
  }