Lines Matching full:__shared_ptr
200 // sneaky trick so __shared_ptr can get the managed pointer
508 class __shared_ptr;
548 class __shared_ptr
553 /** @brief Construct an empty %__shared_ptr.
556 __shared_ptr()
560 /** @brief Construct a %__shared_ptr that owns the pointer @a __p.
567 __shared_ptr(_Tp1* __p)
579 // __shared_ptr will release __p by calling __d(__p)
581 /** @brief Construct a %__shared_ptr that owns the pointer @a __p
589 __shared_ptr(_Tp1* __p, _Deleter __d)
602 // __shared_ptr will release __p by calling __d(__p)
604 /** @brief Construct a %__shared_ptr that owns the pointer @a __p
613 __shared_ptr(_Tp1* __p, _Deleter __d, const _Alloc& __a)
621 /** @brief Constructs a %__shared_ptr instance that stores @a __p
623 * @param __r A %__shared_ptr.
637 __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r, _Tp* __p)
643 /** @brief If @a __r is empty, constructs an empty %__shared_ptr;
644 * otherwise construct a %__shared_ptr that shares ownership
646 * @param __r A %__shared_ptr.
650 __shared_ptr(const __shared_ptr<_Tp1, _Lp>& __r)
654 /** @brief Move-constructs a %__shared_ptr instance from @a __r.
655 * @param __r A %__shared_ptr rvalue.
658 __shared_ptr(__shared_ptr&& __r)
665 /** @brief Move-constructs a %__shared_ptr instance from @a __r.
666 * @param __r A %__shared_ptr rvalue.
670 __shared_ptr(__shared_ptr<_Tp1, _Lp>&& __r)
678 /** @brief Constructs a %__shared_ptr that shares ownership with @a __r
687 __shared_ptr(const __weak_ptr<_Tp1, _Lp>& __r)
698 __shared_ptr(const std::unique_ptr<_Tp1, _Del>&) = delete;
705 __shared_ptr(std::unique_ptr<_Tp1, _Del>&& __r)
720 __shared_ptr(std::auto_ptr<_Tp1>&& __r)
732 __shared_ptr&
733 operator=(const __shared_ptr<_Tp1, _Lp>& __r) // never throws
742 __shared_ptr&
745 __shared_ptr(std::move(__r)).swap(*this);
750 __shared_ptr&
751 operator=(__shared_ptr&& __r)
753 __shared_ptr(std::move(__r)).swap(*this);
758 __shared_ptr&
759 operator=(__shared_ptr<_Tp1, _Lp>&& __r)
761 __shared_ptr(std::move(__r)).swap(*this);
766 __shared_ptr&
770 __shared_ptr&
773 __shared_ptr(std::move(__r)).swap(*this);
779 { __shared_ptr().swap(*this); }
787 __shared_ptr(__p).swap(*this);
793 { __shared_ptr(__p, __d).swap(*this); }
798 { __shared_ptr(__p, __d, __a).swap(*this); }
821 typedef _Tp* __shared_ptr::*__unspecified_bool_type;
825 { return _M_ptr == 0 ? 0 : &__shared_ptr::_M_ptr; }
836 swap(__shared_ptr<_Tp, _Lp>&& __other) // never throws
844 owner_before(__shared_ptr<_Tp1, _Lp> const& __rhs) const
855 __shared_ptr(_Sp_make_shared_tag __tag, _Alloc __a, _Args&&... __args)
868 friend __shared_ptr<_Tp1, _Lp1>
876 template<typename _Tp1, _Lock_policy _Lp1> friend class __shared_ptr;
880 friend _Del* get_deleter(const __shared_ptr<_Tp1, _Lp1>&);
889 operator==(const __shared_ptr<_Tp1, _Lp>& __a,
890 const __shared_ptr<_Tp2, _Lp>& __b)
895 operator!=(const __shared_ptr<_Tp1, _Lp>& __a,
896 const __shared_ptr<_Tp2, _Lp>& __b)
901 operator<(const __shared_ptr<_Tp1, _Lp>& __a,
902 const __shared_ptr<_Tp2, _Lp>& __b)
917 struct less<__shared_ptr<_Tp, _Lp>>
918 : public _Sp_less<__shared_ptr<_Tp, _Lp>>
924 operator>(const __shared_ptr<_Tp, _Lp>& __a,
925 const __shared_ptr<_Tp, _Lp>& __b)
930 operator>=(const __shared_ptr<_Tp, _Lp>& __a,
931 const __shared_ptr<_Tp, _Lp>& __b)
936 operator<=(const __shared_ptr<_Tp, _Lp>& __a,
937 const __shared_ptr<_Tp, _Lp>& __b)
943 swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>& __b)
948 swap(__shared_ptr<_Tp, _Lp>&& __a, __shared_ptr<_Tp, _Lp>& __b)
953 swap(__shared_ptr<_Tp, _Lp>& __a, __shared_ptr<_Tp, _Lp>&& __b)
963 inline __shared_ptr<_Tp, _Lp>
964 static_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r)
965 { return __shared_ptr<_Tp, _Lp>(__r, static_cast<_Tp*>(__r.get())); }
973 inline __shared_ptr<_Tp, _Lp>
974 const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r)
975 { return __shared_ptr<_Tp, _Lp>(__r, const_cast<_Tp*>(__r.get())); }
983 inline __shared_ptr<_Tp, _Lp>
984 dynamic_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r)
987 return __shared_ptr<_Tp, _Lp>(__r, __p);
988 return __shared_ptr<_Tp, _Lp>();
995 const __shared_ptr<_Tp, _Lp>& __p)
1004 get_deleter(const __shared_ptr<_Tp, _Lp>& __p)
1043 __weak_ptr(const __shared_ptr<_Tp1, _Lp>& __r)
1058 operator=(const __shared_ptr<_Tp1, _Lp>& __r) // never throws
1065 __shared_ptr<_Tp, _Lp>
1071 return __shared_ptr<element_type, _Lp>();
1075 return __shared_ptr<element_type, _Lp>(*this);
1082 return __shared_ptr<element_type, _Lp>();
1087 return expired() ? __shared_ptr<element_type, _Lp>()
1088 : __shared_ptr<element_type, _Lp>(*this);
1103 owner_before(const __shared_ptr<_Tp1, _Lp>& __rhs) const
1141 template<typename _Tp1, _Lock_policy _Lp1> friend class __shared_ptr;
1174 struct owner_less<__shared_ptr<_Tp, _Lp>>
1175 : public _Sp_owner_less<__shared_ptr<_Tp, _Lp>, __weak_ptr<_Tp, _Lp>>
1180 : public _Sp_owner_less<__weak_ptr<_Tp, _Lp>, __shared_ptr<_Tp, _Lp>>
1200 __shared_ptr<_Tp, _Lp>
1202 { return __shared_ptr<_Tp, _Lp>(this->_M_weak_this); }
1204 __shared_ptr<const _Tp, _Lp>
1206 { return __shared_ptr<const _Tp, _Lp>(this->_M_weak_this); }
1235 : public __shared_ptr<_Tp>
1239 : __shared_ptr<_Tp>() { }
1244 : __shared_ptr<_Tp>(__p) { }
1248 : __shared_ptr<_Tp>(__p, __d) { }
1252 : __shared_ptr<_Tp>(__p, __d, __a) { }
1257 : __shared_ptr<_Tp>(__r, __p) { }
1261 : __shared_ptr<_Tp>(__r) { }
1264 : __shared_ptr<_Tp>(std::move(__r)) { }
1268 : __shared_ptr<_Tp>(std::move(__r)) { }
1273 : __shared_ptr<_Tp>(__r) { }
1279 : __shared_ptr<_Tp>(std::move(__r)) { }
1289 : __shared_ptr<_Tp>(std::move(__r)) { }
1295 this->__shared_ptr<_Tp>::operator=(__r);
1304 this->__shared_ptr<_Tp>::operator=(std::move(__r));
1312 this->__shared_ptr<_Tp>::operator=(std::move(__r));
1320 this->__shared_ptr<_Tp>::operator=(std::move(__r));
1332 this->__shared_ptr<_Tp>::operator=(std::move(__r));
1340 : __shared_ptr<_Tp>(__tag, __a, std::forward<_Args>(__args)...)
1538 inline __shared_ptr<_Tp, _Lp>
1541 return __shared_ptr<_Tp, _Lp>(_Sp_make_shared_tag(),
1546 inline __shared_ptr<_Tp, _Lp>