26class WeakPointerToBase :
public WeakPointerToVoid {
31 constexpr WeakPointerToBase()
noexcept =
default;
32 INLINE
explicit WeakPointerToBase(To *ptr);
34 INLINE WeakPointerToBase(
const WeakPointerToBase<T> ©);
35 INLINE WeakPointerToBase(WeakPointerToBase<T> &&from)
noexcept;
37 INLINE WeakPointerToBase(
const WeakPointerToBase<Y> &r);
39 INLINE WeakPointerToBase(WeakPointerToBase<Y> &&r)
noexcept;
41 INLINE ~WeakPointerToBase();
43 void reassign(To *ptr);
45 INLINE
void reassign(
const WeakPointerToBase<To> ©);
46 INLINE
void reassign(WeakPointerToBase<To> &&from)
noexcept;
48 INLINE
void reassign(
const WeakPointerToBase<Y> ©);
50 INLINE
void reassign(WeakPointerToBase<Y> &&from)
noexcept;
52 INLINE
void update_type(To *ptr);
63 INLINE
bool operator == (
const To *other)
const;
64 INLINE
bool operator != (
const To *other)
const;
65 INLINE
bool operator > (
const To *other)
const;
66 INLINE
bool operator <= (
const To *other)
const;
67 INLINE
bool operator >= (
const To *other)
const;
68 INLINE
bool operator == (To *other)
const;
69 INLINE
bool operator != (To *other)
const;
70 INLINE
bool operator > (To *other)
const;
71 INLINE
bool operator <= (To *other)
const;
72 INLINE
bool operator >= (To *other)
const;
74 INLINE
bool operator == (std::nullptr_t)
const;
75 INLINE
bool operator != (std::nullptr_t)
const;
76 INLINE
bool operator > (std::nullptr_t)
const;
77 INLINE
bool operator <= (std::nullptr_t)
const;
78 INLINE
bool operator >= (std::nullptr_t)
const;
80 INLINE
bool operator == (
const WeakPointerToBase<To> &other)
const;
81 INLINE
bool operator != (
const WeakPointerToBase<To> &other)
const;
82 INLINE
bool operator > (
const WeakPointerToBase<To> &other)
const;
83 INLINE
bool operator <= (
const WeakPointerToBase<To> &other)
const;
84 INLINE
bool operator >= (
const WeakPointerToBase<To> &other)
const;
92 INLINE
bool operator < (
const To *other)
const;
93 INLINE
bool operator < (std::nullptr_t)
const;
94 INLINE
bool operator < (
const WeakPointerToBase<To> &other)
const;
99 INLINE
bool owner_before(
const WeakPointerToBase<Y> &other)
const noexcept;
104 template<
typename Y>
friend class WeakPointerToBase;