29class WeakPointerTo :
public WeakPointerToBase<T> {
31 typedef typename WeakPointerToBase<T>::To To;
33 constexpr WeakPointerTo()
noexcept =
default;
34 INLINE WeakPointerTo(To *ptr);
36 INLINE WeakPointerTo(
const WeakPointerTo<T> ©);
39 INLINE WeakPointerTo(WeakPointerTo<T> &&from)
noexcept;
42 ALWAYS_INLINE WeakPointerTo(
const WeakPointerTo<Y> &r)
noexcept;
44 ALWAYS_INLINE WeakPointerTo(
const PointerTo<Y> &r)
noexcept;
46 ALWAYS_INLINE WeakPointerTo(WeakPointerTo<Y> &&r)
noexcept;
48 INLINE To &operator *()
const;
49 INLINE To *operator -> ()
const;
51 INLINE
explicit operator T *()
const;
58 INLINE WeakPointerTo<T> &operator = (To *ptr);
59 INLINE WeakPointerTo<T> &operator = (
const PointerTo<T> ©);
60 INLINE WeakPointerTo<T> &operator = (
const WeakPointerTo<T> ©);
63 INLINE WeakPointerTo<T> &operator = (WeakPointerTo<T> &&from)
noexcept;
66 ALWAYS_INLINE WeakPointerTo<T> &operator = (
const WeakPointerTo<Y> &r)
noexcept;
68 ALWAYS_INLINE WeakPointerTo<T> &operator = (
const PointerTo<Y> &r)
noexcept;
70 ALWAYS_INLINE WeakPointerTo<T> &operator = (WeakPointerTo<Y> &&r)
noexcept;
86class WeakConstPointerTo :
public WeakPointerToBase<T> {
88 typedef typename WeakPointerToBase<T>::To To;
90 constexpr WeakConstPointerTo()
noexcept =
default;
91 INLINE WeakConstPointerTo(
const To *ptr);
95 INLINE WeakConstPointerTo(
const WeakConstPointerTo<T> ©);
99 INLINE WeakConstPointerTo(WeakConstPointerTo<T> &&from)
noexcept;
104 ALWAYS_INLINE WeakConstPointerTo(
const WeakConstPointerTo<Y> &r)
noexcept;
106 ALWAYS_INLINE WeakConstPointerTo(
const PointerTo<Y> &r)
noexcept;
112 ALWAYS_INLINE WeakConstPointerTo(WeakConstPointerTo<Y> &&r)
noexcept;
114 INLINE
const To &operator *()
const;
115 INLINE
const To *operator -> ()
const;
116 INLINE
explicit operator const T *()
const;
120 INLINE
const To *
p()
const;
123 INLINE WeakConstPointerTo<T> &operator = (
const To *ptr);
124 INLINE WeakConstPointerTo<T> &operator = (
const PointerTo<T> ©);
127 INLINE WeakConstPointerTo<T> &operator = (
const WeakConstPointerTo<T> ©);
130 INLINE WeakConstPointerTo<T> &operator = (
WeakPointerTo<T> &&from)
noexcept;
131 INLINE WeakConstPointerTo<T> &operator = (WeakConstPointerTo<T> &&from)
noexcept;
134 ALWAYS_INLINE WeakConstPointerTo<T> &operator = (
const WeakPointerTo<Y> &r)
noexcept;
136 ALWAYS_INLINE WeakConstPointerTo<T> &operator = (
const WeakConstPointerTo<Y> &r)
noexcept;
138 ALWAYS_INLINE WeakConstPointerTo<T> &operator = (
const PointerTo<Y> &r)
noexcept;
140 ALWAYS_INLINE WeakConstPointerTo<T> &operator = (
const ConstPointerTo<Y> &r)
noexcept;
142 ALWAYS_INLINE WeakConstPointerTo<T> &operator = (
WeakPointerTo<Y> &&r)
noexcept;
144 ALWAYS_INLINE WeakConstPointerTo<T> &operator = (WeakConstPointerTo<Y> &&r)
noexcept;