• Home
  • Raw
  • Download

Lines Matching refs:shared_ptr

395 class shared_ptr
402 constexpr shared_ptr() noexcept;
403 template<class Y> explicit shared_ptr(Y* p);
404 template<class Y, class D> shared_ptr(Y* p, D d);
405 template<class Y, class D, class A> shared_ptr(Y* p, D d, A a);
406 template <class D> shared_ptr(nullptr_t p, D d);
407 template <class D, class A> shared_ptr(nullptr_t p, D d, A a);
408 template<class Y> shared_ptr(const shared_ptr<Y>& r, T *p) noexcept;
409 shared_ptr(const shared_ptr& r) noexcept;
410 template<class Y> shared_ptr(const shared_ptr<Y>& r) noexcept;
411 shared_ptr(shared_ptr&& r) noexcept;
412 template<class Y> shared_ptr(shared_ptr<Y>&& r) noexcept;
413 template<class Y> explicit shared_ptr(const weak_ptr<Y>& r);
414 template<class Y> shared_ptr(auto_ptr<Y>&& r); // removed in C++17
415 template <class Y, class D> shared_ptr(unique_ptr<Y, D>&& r);
416 shared_ptr(nullptr_t) : shared_ptr() { }
419 ~shared_ptr();
422 shared_ptr& operator=(const shared_ptr& r) noexcept;
423 template<class Y> shared_ptr& operator=(const shared_ptr<Y>& r) noexcept;
424 shared_ptr& operator=(shared_ptr&& r) noexcept;
425 template<class Y> shared_ptr& operator=(shared_ptr<Y>&& r);
426 template<class Y> shared_ptr& operator=(auto_ptr<Y>&& r); // removed in C++17
427 template <class Y, class D> shared_ptr& operator=(unique_ptr<Y, D>&& r);
430 void swap(shared_ptr& r) noexcept;
443 template<class U> bool owner_before(shared_ptr<U> const& b) const noexcept;
447 // shared_ptr comparisons:
449 bool operator==(shared_ptr<T> const& a, shared_ptr<U> const& b) noexcept;
451 bool operator!=(shared_ptr<T> const& a, shared_ptr<U> const& b) noexcept;
453 bool operator<(shared_ptr<T> const& a, shared_ptr<U> const& b) noexcept;
455 bool operator>(shared_ptr<T> const& a, shared_ptr<U> const& b) noexcept;
457 bool operator<=(shared_ptr<T> const& a, shared_ptr<U> const& b) noexcept;
459 bool operator>=(shared_ptr<T> const& a, shared_ptr<U> const& b) noexcept;
462 bool operator==(const shared_ptr<T>& x, nullptr_t) noexcept;
464 bool operator==(nullptr_t, const shared_ptr<T>& y) noexcept;
466 bool operator!=(const shared_ptr<T>& x, nullptr_t) noexcept;
468 bool operator!=(nullptr_t, const shared_ptr<T>& y) noexcept;
470 bool operator<(const shared_ptr<T>& x, nullptr_t) noexcept;
472 bool operator<(nullptr_t, const shared_ptr<T>& y) noexcept;
474 bool operator<=(const shared_ptr<T>& x, nullptr_t) noexcept;
476 bool operator<=(nullptr_t, const shared_ptr<T>& y) noexcept;
478 bool operator>(const shared_ptr<T>& x, nullptr_t) noexcept;
480 bool operator>(nullptr_t, const shared_ptr<T>& y) noexcept;
482 bool operator>=(const shared_ptr<T>& x, nullptr_t) noexcept;
484 bool operator>=(nullptr_t, const shared_ptr<T>& y) noexcept;
486 // shared_ptr specialized algorithms:
487 template<class T> void swap(shared_ptr<T>& a, shared_ptr<T>& b) noexcept;
489 // shared_ptr casts:
491 shared_ptr<T> static_pointer_cast(shared_ptr<U> const& r) noexcept;
493 shared_ptr<T> dynamic_pointer_cast(shared_ptr<U> const& r) noexcept;
495 shared_ptr<T> const_pointer_cast(shared_ptr<U> const& r) noexcept;
497 // shared_ptr I/O:
499 basic_ostream<E, T>& operator<< (basic_ostream<E, T>& os, shared_ptr<Y> const& p);
501 // shared_ptr get_deleter:
502 template<class D, class T> D* get_deleter(shared_ptr<T> const& p) noexcept;
505 shared_ptr<T> make_shared(Args&&... args);
507 shared_ptr<T> allocate_shared(const A& a, Args&&... args);
517 template<class Y> weak_ptr(shared_ptr<Y> const& r) noexcept;
529 template<class Y> weak_ptr& operator=(shared_ptr<Y> const& r) noexcept;
540 shared_ptr<T> lock() const noexcept;
541 template<class U> bool owner_before(shared_ptr<U> const& b) const noexcept;
552 struct owner_less<shared_ptr<T>>
553 : binary_function<shared_ptr<T>, shared_ptr<T>, bool>
556 bool operator()(shared_ptr<T> const&, shared_ptr<T> const&) const noexcept;
557 bool operator()(shared_ptr<T> const&, weak_ptr<T> const&) const noexcept;
558 bool operator()(weak_ptr<T> const&, shared_ptr<T> const&) const noexcept;
567 bool operator()(shared_ptr<T> const&, weak_ptr<T> const&) const noexcept;
568 bool operator()(weak_ptr<T> const&, shared_ptr<T> const&) const noexcept;
575 bool operator()( shared_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) const noexcept;
577 bool operator()( shared_ptr<_Tp> const& __x, weak_ptr<_Up> const& __y) const noexcept;
579 bool operator()( weak_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) const noexcept;
595 shared_ptr<T> shared_from_this();
596 shared_ptr<T const> shared_from_this() const;
600 bool atomic_is_lock_free(const shared_ptr<T>* p);
602 shared_ptr<T> atomic_load(const shared_ptr<T>* p);
604 shared_ptr<T> atomic_load_explicit(const shared_ptr<T>* p, memory_order mo);
606 void atomic_store(shared_ptr<T>* p, shared_ptr<T> r);
608 void atomic_store_explicit(shared_ptr<T>* p, shared_ptr<T> r, memory_order mo);
610 shared_ptr<T> atomic_exchange(shared_ptr<T>* p, shared_ptr<T> r);
612 shared_ptr<T>
613 atomic_exchange_explicit(shared_ptr<T>* p, shared_ptr<T> r, memory_order mo);
616 atomic_compare_exchange_weak(shared_ptr<T>* p, shared_ptr<T>* v, shared_ptr<T> w);
619 atomic_compare_exchange_strong( shared_ptr<T>* p, shared_ptr<T>* v, shared_ptr<T> w);
622 atomic_compare_exchange_weak_explicit(shared_ptr<T>* p, shared_ptr<T>* v,
623 shared_ptr<T> w, memory_order success,
627 atomic_compare_exchange_strong_explicit(shared_ptr<T>* p, shared_ptr<T>* v,
628 shared_ptr<T> w, memory_order success,
633 template <class T> struct hash<shared_ptr<T> >;
3740 class _LIBCPP_TEMPLATE_VIS shared_ptr
3755 _LIBCPP_CONSTEXPR shared_ptr() _NOEXCEPT;
3757 _LIBCPP_CONSTEXPR shared_ptr(nullptr_t) _NOEXCEPT;
3759 explicit shared_ptr(_Yp* __p,
3762 shared_ptr(_Yp* __p, _Dp __d,
3765 shared_ptr(_Yp* __p, _Dp __d, _Alloc __a,
3767 template <class _Dp> shared_ptr(nullptr_t __p, _Dp __d);
3768 template <class _Dp, class _Alloc> shared_ptr(nullptr_t __p, _Dp __d, _Alloc __a);
3769 …template<class _Yp> _LIBCPP_INLINE_VISIBILITY shared_ptr(const shared_ptr<_Yp>& __r, element_type*…
3771 shared_ptr(const shared_ptr& __r) _NOEXCEPT;
3774 shared_ptr(const shared_ptr<_Yp>& __r,
3779 shared_ptr(shared_ptr&& __r) _NOEXCEPT;
3780 template<class _Yp> _LIBCPP_INLINE_VISIBILITY shared_ptr(shared_ptr<_Yp>&& __r,
3784 template<class _Yp> explicit shared_ptr(const weak_ptr<_Yp>& __r,
3789 shared_ptr(auto_ptr<_Yp>&& __r,
3793 shared_ptr(auto_ptr<_Yp> __r,
3799 shared_ptr(unique_ptr<_Yp, _Dp>&&,
3808 shared_ptr(unique_ptr<_Yp, _Dp>&&,
3818 shared_ptr(unique_ptr<_Yp, _Dp>,
3827 shared_ptr(unique_ptr<_Yp, _Dp>,
3837 ~shared_ptr();
3840 shared_ptr& operator=(const shared_ptr& __r) _NOEXCEPT;
3845 shared_ptr&
3848 operator=(const shared_ptr<_Yp>& __r) _NOEXCEPT;
3851 shared_ptr& operator=(shared_ptr&& __r) _NOEXCEPT;
3856 shared_ptr<_Tp>&
3859 operator=(shared_ptr<_Yp>&& __r);
3867 shared_ptr
3879 shared_ptr&
3889 shared_ptr&
3900 void swap(shared_ptr& __r) _NOEXCEPT;
3943 bool owner_before(shared_ptr<_Up> const& __p) const _NOEXCEPT
3951 __owner_equivalent(const shared_ptr& __p) const
3967 shared_ptr<_Tp>
3972 shared_ptr<_Tp>
3977 static shared_ptr<_Tp> make_shared();
3980 static shared_ptr<_Tp> make_shared(_A0&);
3983 static shared_ptr<_Tp> make_shared(_A0&, _A1&);
3986 static shared_ptr<_Tp> make_shared(_A0&, _A1&, _A2&);
3989 static shared_ptr<_Tp>
3993 static shared_ptr<_Tp>
3997 static shared_ptr<_Tp>
4001 static shared_ptr<_Tp>
4031 __e->__weak_this_ = shared_ptr<_RawYp>(*this,
4038 template <class _Up> friend class _LIBCPP_TEMPLATE_VIS shared_ptr;
4046 shared_ptr<_Tp>::shared_ptr() _NOEXCEPT
4055 shared_ptr<_Tp>::shared_ptr(nullptr_t) _NOEXCEPT
4063 shared_ptr<_Tp>::shared_ptr(_Yp* __p,
4077 shared_ptr<_Tp>::shared_ptr(_Yp* __p, _Dp __d,
4101 shared_ptr<_Tp>::shared_ptr(nullptr_t __p, _Dp __d)
4123 shared_ptr<_Tp>::shared_ptr(_Yp* __p, _Dp __d, _Alloc __a,
4152 shared_ptr<_Tp>::shared_ptr(nullptr_t __p, _Dp __d, _Alloc __a)
4180 shared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r, element_type *__p) _NOEXCEPT
4190 shared_ptr<_Tp>::shared_ptr(const shared_ptr& __r) _NOEXCEPT
4201 shared_ptr<_Tp>::shared_ptr(const shared_ptr<_Yp>& __r,
4215 shared_ptr<_Tp>::shared_ptr(shared_ptr&& __r) _NOEXCEPT
4226 shared_ptr<_Tp>::shared_ptr(shared_ptr<_Yp>&& __r,
4242 shared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp>&& __r,
4244 shared_ptr<_Tp>::shared_ptr(auto_ptr<_Yp> __r,
4259 shared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp>&& __r,
4261 shared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp> __r,
4289 shared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp>&& __r,
4291 shared_ptr<_Tp>::shared_ptr(unique_ptr<_Yp, _Dp> __r,
4322 shared_ptr<_Tp>
4323 shared_ptr<_Tp>::make_shared(_Args&& ...__args)
4332 shared_ptr<_Tp> __r;
4341 shared_ptr<_Tp>
4342 shared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _Args&& ...__args)
4352 shared_ptr<_Tp> __r;
4362 shared_ptr<_Tp>
4363 shared_ptr<_Tp>::make_shared()
4372 shared_ptr<_Tp> __r;
4381 shared_ptr<_Tp>
4382 shared_ptr<_Tp>::make_shared(_A0& __a0)
4391 shared_ptr<_Tp> __r;
4400 shared_ptr<_Tp>
4401 shared_ptr<_Tp>::make_shared(_A0& __a0, _A1& __a1)
4410 shared_ptr<_Tp> __r;
4419 shared_ptr<_Tp>
4420 shared_ptr<_Tp>::make_shared(_A0& __a0, _A1& __a1, _A2& __a2)
4429 shared_ptr<_Tp> __r;
4438 shared_ptr<_Tp>
4439 shared_ptr<_Tp>::allocate_shared(const _Alloc& __a)
4449 shared_ptr<_Tp> __r;
4458 shared_ptr<_Tp>
4459 shared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _A0& __a0)
4469 shared_ptr<_Tp> __r;
4478 shared_ptr<_Tp>
4479 shared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _A0& __a0, _A1& __a1)
4489 shared_ptr<_Tp> __r;
4498 shared_ptr<_Tp>
4499 shared_ptr<_Tp>::allocate_shared(const _Alloc& __a, _A0& __a0, _A1& __a1, _A2& __a2)
4509 shared_ptr<_Tp> __r;
4519 shared_ptr<_Tp>::~shared_ptr()
4527 shared_ptr<_Tp>&
4528 shared_ptr<_Tp>::operator=(const shared_ptr& __r) _NOEXCEPT
4530 shared_ptr(__r).swap(*this);
4539 is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,
4540 shared_ptr<_Tp>&
4542 shared_ptr<_Tp>::operator=(const shared_ptr<_Yp>& __r) _NOEXCEPT
4544 shared_ptr(__r).swap(*this);
4552 shared_ptr<_Tp>&
4553 shared_ptr<_Tp>::operator=(shared_ptr&& __r) _NOEXCEPT
4555 shared_ptr(_VSTD::move(__r)).swap(*this);
4564 is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,
4565 shared_ptr<_Tp>&
4567 shared_ptr<_Tp>::operator=(shared_ptr<_Yp>&& __r)
4569 shared_ptr(_VSTD::move(__r)).swap(*this);
4580 is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,
4581 shared_ptr<_Tp>
4583 shared_ptr<_Tp>::operator=(auto_ptr<_Yp>&& __r)
4585 shared_ptr(_VSTD::move(__r)).swap(*this);
4597 typename shared_ptr<_Tp>::element_type*>::value,
4598 shared_ptr<_Tp>&
4600 shared_ptr<_Tp>::operator=(unique_ptr<_Yp, _Dp>&& __r)
4602 shared_ptr(_VSTD::move(__r)).swap(*this);
4615 is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,
4616 shared_ptr<_Tp>&
4618 shared_ptr<_Tp>::operator=(auto_ptr<_Yp> __r)
4620 shared_ptr(__r).swap(*this);
4632 typename shared_ptr<_Tp>::element_type*>::value,
4633 shared_ptr<_Tp>&
4635 shared_ptr<_Tp>::operator=(unique_ptr<_Yp, _Dp> __r)
4637 shared_ptr(_VSTD::move(__r)).swap(*this);
4646 shared_ptr<_Tp>::swap(shared_ptr& __r) _NOEXCEPT
4655 shared_ptr<_Tp>::reset() _NOEXCEPT
4657 shared_ptr().swap(*this);
4665 is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,
4668 shared_ptr<_Tp>::reset(_Yp* __p)
4670 shared_ptr(__p).swap(*this);
4678 is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,
4681 shared_ptr<_Tp>::reset(_Yp* __p, _Dp __d)
4683 shared_ptr(__p, __d).swap(*this);
4691 is_convertible<_Yp*, typename shared_ptr<_Tp>::element_type*>::value,
4694 shared_ptr<_Tp>::reset(_Yp* __p, _Dp __d, _Alloc __a)
4696 shared_ptr(__p, __d, __a).swap(*this);
4706 shared_ptr<_Tp>
4710 return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)...);
4718 shared_ptr<_Tp>
4722 return shared_ptr<_Tp>::allocate_shared(__a, _VSTD::forward<_Args>(__args)...);
4729 shared_ptr<_Tp>
4732 return shared_ptr<_Tp>::make_shared();
4737 shared_ptr<_Tp>
4740 return shared_ptr<_Tp>::make_shared(__a0);
4745 shared_ptr<_Tp>
4748 return shared_ptr<_Tp>::make_shared(__a0, __a1);
4753 shared_ptr<_Tp>
4756 return shared_ptr<_Tp>::make_shared(__a0, __a1, __a2);
4761 shared_ptr<_Tp>
4764 return shared_ptr<_Tp>::allocate_shared(__a);
4769 shared_ptr<_Tp>
4772 return shared_ptr<_Tp>::allocate_shared(__a, __a0);
4777 shared_ptr<_Tp>
4780 return shared_ptr<_Tp>::allocate_shared(__a, __a0, __a1);
4785 shared_ptr<_Tp>
4788 return shared_ptr<_Tp>::allocate_shared(__a, __a0, __a1, __a2);
4796 operator==(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT
4804 operator!=(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT
4812 operator<(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT
4826 operator>(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT
4834 operator<=(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT
4842 operator>=(const shared_ptr<_Tp>& __x, const shared_ptr<_Up>& __y) _NOEXCEPT
4850 operator==(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT
4858 operator==(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT
4866 operator!=(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT
4874 operator!=(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT
4882 operator<(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT
4890 operator<(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT
4898 operator>(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT
4906 operator>(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT
4914 operator<=(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT
4922 operator<=(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT
4930 operator>=(const shared_ptr<_Tp>& __x, nullptr_t) _NOEXCEPT
4938 operator>=(nullptr_t, const shared_ptr<_Tp>& __x) _NOEXCEPT
4946 swap(shared_ptr<_Tp>& __x, shared_ptr<_Tp>& __y) _NOEXCEPT
4956 shared_ptr<_Tp>
4958 static_pointer_cast(const shared_ptr<_Up>& __r) _NOEXCEPT
4960 return shared_ptr<_Tp>(__r, static_cast<_Tp*>(__r.get()));
4968 shared_ptr<_Tp>
4970 dynamic_pointer_cast(const shared_ptr<_Up>& __r) _NOEXCEPT
4973 return __p ? shared_ptr<_Tp>(__r, __p) : shared_ptr<_Tp>();
4980 shared_ptr<_Tp>
4982 const_pointer_cast(const shared_ptr<_Up>& __r) _NOEXCEPT
4985 return shared_ptr<_Tp>(__r, const_cast<_RTp*>(__r.get()));
4993 get_deleter(const shared_ptr<_Tp>& __p) _NOEXCEPT
5012 template<class _Yp> _LIBCPP_INLINE_VISIBILITY weak_ptr(shared_ptr<_Yp> const& __r,
5063 operator=(shared_ptr<_Yp> const& __r) _NOEXCEPT;
5076 shared_ptr<_Tp> lock() const _NOEXCEPT;
5079 bool owner_before(const shared_ptr<_Up>& __r) const _NOEXCEPT
5087 template <class _Up> friend class _LIBCPP_TEMPLATE_VIS shared_ptr;
5112 weak_ptr<_Tp>::weak_ptr(shared_ptr<_Yp> const& __r,
5227 weak_ptr<_Tp>::operator=(shared_ptr<_Yp> const& __r) _NOEXCEPT
5260 shared_ptr<_Tp>::shared_ptr(const weak_ptr<_Yp>& __r,
5270 shared_ptr<_Tp>
5273 shared_ptr<_Tp> __r;
5287 struct _LIBCPP_TEMPLATE_VIS owner_less<shared_ptr<_Tp> >
5288 : binary_function<shared_ptr<_Tp>, shared_ptr<_Tp>, bool>
5292 bool operator()(shared_ptr<_Tp> const& __x, shared_ptr<_Tp> const& __y) const _NOEXCEPT
5295 bool operator()(shared_ptr<_Tp> const& __x, weak_ptr<_Tp> const& __y) const _NOEXCEPT
5298 bool operator()( weak_ptr<_Tp> const& __x, shared_ptr<_Tp> const& __y) const _NOEXCEPT
5311 bool operator()(shared_ptr<_Tp> const& __x, weak_ptr<_Tp> const& __y) const _NOEXCEPT
5314 bool operator()( weak_ptr<_Tp> const& __x, shared_ptr<_Tp> const& __y) const _NOEXCEPT
5324 bool operator()( shared_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) const _NOEXCEPT
5328 bool operator()( shared_ptr<_Tp> const& __x, weak_ptr<_Up> const& __y) const _NOEXCEPT
5332 bool operator()( weak_ptr<_Tp> const& __x, shared_ptr<_Up> const& __y) const _NOEXCEPT
5358 shared_ptr<_Tp> shared_from_this()
5359 {return shared_ptr<_Tp>(__weak_this_);}
5361 shared_ptr<_Tp const> shared_from_this() const
5362 {return shared_ptr<const _Tp>(__weak_this_);}
5374 template <class _Up> friend class shared_ptr;
5378 struct _LIBCPP_TEMPLATE_VIS hash<shared_ptr<_Tp> >
5380 typedef shared_ptr<_Tp> argument_type;
5393 operator<<(basic_ostream<_CharT, _Traits>& __os, shared_ptr<_Yp> const& __p);
5419 atomic_is_lock_free(const shared_ptr<_Tp>*)
5426 shared_ptr<_Tp>
5427 atomic_load(const shared_ptr<_Tp>* __p)
5431 shared_ptr<_Tp> __q = *__p;
5439 shared_ptr<_Tp>
5440 atomic_load_explicit(const shared_ptr<_Tp>* __p, memory_order)
5448 atomic_store(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r)
5460 atomic_store_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, memory_order)
5467 shared_ptr<_Tp>
5468 atomic_exchange(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r)
5480 shared_ptr<_Tp>
5481 atomic_exchange_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r, memory_order)
5489 atomic_compare_exchange_strong(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w)
5491 shared_ptr<_Tp> __temp;
5511 atomic_compare_exchange_weak(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v, shared_ptr<_Tp> __w)
5520 atomic_compare_exchange_strong_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v,
5521 shared_ptr<_Tp> __w, memory_order, memory_order)
5530 atomic_compare_exchange_weak_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp>* __v,
5531 shared_ptr<_Tp> __w, memory_order, memory_order)