Lines Matching full:class

23 template <class T, class Alloc> struct uses_allocator;
25 template <class Ptr>
32 template <class U> using rebind = <details>;
37 template <class T>
44 template <class U> using rebind = U*;
49 template <class Alloc>
81 template <class T> using rebind_alloc = Alloc::rebind<U>::other | Alloc<T, Args...>;
82 template <class T> using rebind_traits = allocator_traits<rebind_alloc<T>>;
89 template <class T, class... Args>
92 template <class T>
102 class allocator<void>
109 template <class _Up> struct rebind {typedef allocator<_Up> other;};
112 template <class T>
113 class allocator
124 template <class U> struct rebind {typedef allocator<U> other;};
128 template <class U> allocator(const allocator<U>&) noexcept;
135 template<class U, class... Args>
137 template <class U>
141 template <class T, class U>
144 template <class T, class U>
147 template <class OutputIterator, class T>
148 class raw_storage_iterator
163 template <class T> pair<T*,ptrdiff_t> get_temporary_buffer(ptrdiff_t n) noexcept;
164 template <class T> void return_temporary_buffer(T* p) noexcept;
166 template <class T> T* addressof(T& r) noexcept;
168 template <class InputIterator, class ForwardIterator>
172 template <class InputIterator, class Size, class ForwardIterator>
176 template <class ForwardIterator, class T>
179 template <class ForwardIterator, class Size, class T>
183 template <class Y> struct auto_ptr_ref {};
185 template<class X>
186 class auto_ptr
193 template<class Y> auto_ptr(auto_ptr<Y>&) throw();
195 template<class Y> auto_ptr& operator=(auto_ptr<Y>&) throw();
206 template<class Y> operator auto_ptr_ref<Y>() throw();
207 template<class Y> operator auto_ptr<Y>() throw();
210 template <class T>
214 template <class U> default_delete(const default_delete<U>&) noexcept;
219 template <class T>
224 template <class U> void operator()(U*) const = delete;
227 template <class T, class D = default_delete<T>>
228 class unique_ptr
242 template <class U, class E>
244 template <class U>
252 template <class U, class E> unique_ptr& operator=(unique_ptr<U, E>&& u) noexcept;
269 template <class T, class D>
270 class unique_ptr<T[], D>
303 template <class U> void reset(U) = delete;
307 template <class T, class D>
310 template <class T1, class D1, class T2, class D2>
312 template <class T1, class D1, class T2, class D2>
314 template <class T1, class D1, class T2, class D2>
316 template <class T1, class D1, class T2, class D2>
318 template <class T1, class D1, class T2, class D2>
320 template <class T1, class D1, class T2, class D2>
323 template <class T, class D>
325 template <class T, class D>
327 template <class T, class D>
329 template <class T, class D>
332 template <class T, class D>
334 template <class T, class D>
336 template <class T, class D>
338 template <class T, class D>
340 template <class T, class D>
342 template <class T, class D>
344 template <class T, class D>
346 template <class T, class D>
349 class bad_weak_ptr
355 template<class T, class... Args> unique_ptr<T> make_unique(Args&&... args); // C++14
356 template<class T> unique_ptr<T> make_unique(size_t n); // C++14
357 template<class T, class... Args> unspecified make_unique(Args&&...) = delete; // C++14, T == U[N]
359 template<class T>
360 class shared_ptr
367 template<class Y> explicit shared_ptr(Y* p);
368 template<class Y, class D> shared_ptr(Y* p, D d);
369 template<class Y, class D, class A> shared_ptr(Y* p, D d, A a);
370 template <class D> shared_ptr(nullptr_t p, D d);
371 template <class D, class A> shared_ptr(nullptr_t p, D d, A a);
372 template<class Y> shared_ptr(const shared_ptr<Y>& r, T *p) noexcept;
374 template<class Y> shared_ptr(const shared_ptr<Y>& r) noexcept;
376 template<class Y> shared_ptr(shared_ptr<Y>&& r) noexcept;
377 template<class Y> explicit shared_ptr(const weak_ptr<Y>& r);
378 template<class Y> shared_ptr(auto_ptr<Y>&& r);
379 template <class Y, class D> shared_ptr(unique_ptr<Y, D>&& r);
387 template<class Y> shared_ptr& operator=(const shared_ptr<Y>& r) noexcept;
389 template<class Y> shared_ptr& operator=(shared_ptr<Y>&& r);
390 template<class Y> shared_ptr& operator=(auto_ptr<Y>&& r);
391 template <class Y, class D> shared_ptr& operator=(unique_ptr<Y, D>&& r);
396 template<class Y> void reset(Y* p);
397 template<class Y, class D> void reset(Y* p, D d);
398 template<class Y, class D, class A> void reset(Y* p, D d, A a);
407 template<class U> bool owner_before(shared_ptr<U> const& b) const;
408 template<class U> bool owner_before(weak_ptr<U> const& b) const;
412 template<class T, class U>
414 template<class T, class U>
416 template<class T, class U>
418 template<class T, class U>
420 template<class T, class U>
422 template<class T, class U>
425 template <class T>
427 template <class T>
429 template <class T>
431 template <class T>
433 template <class T>
435 template <class T>
437 template <class T>
439 template <class T>
441 template <class T>
443 template <class T>
445 template <class T>
447 template <class T>
451 template<class T> void swap(shared_ptr<T>& a, shared_ptr<T>& b) noexcept;
454 template<class T, class U>
456 template<class T, class U>
458 template<class T, class U>
462 template<class E, class T, class Y>
466 template<class D, class T> D* get_deleter(shared_ptr<T> const& p) noexcept;
468 template<class T, class... Args>
470 template<class T, class A, class... Args>
473 template<class T>
474 class weak_ptr
481 template<class Y> weak_ptr(shared_ptr<Y> const& r) noexcept;
483 template<class Y> weak_ptr(weak_ptr<Y> const& r) noexcept;
485 template<class Y> weak_ptr(weak_ptr<Y>&& r) noexcept; // C++14
492 template<class Y> weak_ptr& operator=(weak_ptr<Y> const& r) noexcept;
493 template<class Y> weak_ptr& operator=(shared_ptr<Y> const& r) noexcept;
495 template<class Y> weak_ptr& operator=(weak_ptr<Y>&& r) noexcept; // C++14
505 template<class U> bool owner_before(shared_ptr<U> const& b) const;
506 template<class U> bool owner_before(weak_ptr<U> const& b) const;
510 template<class T> void swap(weak_ptr<T>& a, weak_ptr<T>& b) noexcept;
512 // class owner_less:
513 template<class T> struct owner_less;
515 template<class T>
525 template<class T>
535 template<class T>
536 class enable_shared_from_this
548 template<class T>
550 template<class T>
552 template<class T>
554 template<class T>
556 template<class T>
558 template<class T>
560 template<class T>
563 template<class T>
566 template<class T>
569 template<class T>
574 template<class T>
580 template <class T> struct hash;
581 template <class T, class D> struct hash<unique_ptr<T, D> >;
582 template <class T> struct hash<shared_ptr<T> >;
585 enum class pointer_safety { relaxed, preferred, strict };
587 template <class T> T *undeclare_reachable(T *p);
628 template <class _ValueType>
642 template <class _Tp> class allocator;
645 class _LIBCPP_TYPE_VIS_ONLY allocator<void>
652 template <class _Up> struct rebind {typedef allocator<_Up> other;};
656 class _LIBCPP_TYPE_VIS_ONLY allocator<const void>
663 template <class _Up> struct rebind {typedef allocator<_Up> other;};
668 template <class _Tp>
673 template <class _Up> static __two __test(...);
674 template <class _Up> static char __test(typename _Up::element_type* = 0);
679 template <class _Ptr, bool = __has_element_type<_Ptr>::value>
682 template <class _Ptr>
690 template <template <class, class...> class _Sp, class _Tp, class ..._Args>
696 template <template <class, class...> class _Sp, class _Tp, class ..._Args>
704 template <template <class> class _Sp, class _Tp>
710 template <template <class> class _Sp, class _Tp>
716 template <template <class, class> class _Sp, class _Tp, class _A0>
722 template <template <class, class> class _Sp, class _Tp, class _A0>
728 template <template <class, class, class> class _Sp, class _Tp, class _A0, class _A1>
734 template <template <class, class, class> class _Sp, class _Tp, class _A0, class _A1>
740 template <template <class, class, class, class> class _Sp, class _Tp, class _A0,
741 class _A1, class _A2>
747 template <template <class, class, class, class> class _Sp, class _Tp, class _A0,
748 class _A1, class _A2>
756 template <class _Tp>
761 template <class _Up> static __two __test(...);
762 template <class _Up> static char __test(typename _Up::difference_type* = 0);
767 template <class _Ptr, bool = __has_difference_type<_Ptr>::value>
773 template <class _Ptr>
779 template <class _Tp, class _Up>
784 template <class _Xp> static __two __test(...);
785 template <class _Xp> static char __test(typename _Xp::template rebind<_Up>* = 0);
790 template <class _Tp, class _Up, bool = __has_rebind<_Tp, _Up>::value>
802 template <template <class, class...> class _Sp, class _Tp, class ..._Args, class _Up>
812 template <template <class, class...> class _Sp, class _Tp, class ..._Args, class _Up>
820 template <template <class> class _Sp, class _Tp, class _Up>
830 template <template <class> class _Sp, class _Tp, class _Up>
836 template <template <class, class> class _Sp, class _Tp, class _A0, class _Up>
846 template <template <class, class> class _Sp, class _Tp, class _A0, class _Up>
852 template <template <class, class, class> class _Sp, class _Tp, class _A0,
853 class _A1, class _Up>
863 template <template <class, class, class> class _Sp, class _Tp, class _A0,
864 class _A1, class _Up>
870 template <template <class, class, class, class> class _Sp, class _Tp, class _A0,
871 class _A1, class _A2, class _Up>
881 template <template <class, class, class, class> class _Sp, class _Tp, class _A0,
882 class _A1, class _A2, class _Up>
890 template <class _Ptr>
898 template <class _Up> using rebind = typename __pointer_traits_rebind<pointer, _Up>::type;
900 template <class _Up> struct rebind
913 template <class _Tp>
921 template <class _Up> using rebind = _Up*;
923 template <class _Up> struct rebind {typedef _Up* other;};
939 template <class _Up> static __two __test(...);
940 template <class _Up> static char __test(typename _Up::pointer* = 0);
943 template <class _Tp>
952 template <class _Tp, class _Dp, bool = __has_pointer_type<_Dp>::value>
958 template <class _Tp, class _Dp>
966 template <class _Tp, class _Dp>
972 template <class _Tp>
977 template <class _Up> static __two __test(...);
978 template <class _Up> static char __test(typename _Up::const_pointer* = 0);
983 template <class _Tp, class _Ptr, class _Alloc, bool = __has_const_pointer<_Alloc>::value>
989 template <class _Tp, class _Ptr, class _Alloc>
999 template <class _Tp>
1004 template <class _Up> static __two __test(...);
1005 template <class _Up> static char __test(typename _Up::void_pointer* = 0);
1010 template <class _Ptr, class _Alloc, bool = __has_void_pointer<_Alloc>::value>
1016 template <class _Ptr, class _Alloc>
1026 template <class _Tp>
1031 template <class _Up> static __two __test(...);
1032 template <class _Up> static char __test(typename _Up::const_void_pointer* = 0);
1037 template <class _Ptr, class _Alloc, bool = __has_const_void_pointer<_Alloc>::value>
1043 template <class _Ptr, class _Alloc>
1053 template <class _Tp>
1061 template <class _Pointer>
1069 template <class _Tp>
1074 template <class _Up> static __two __test(...);
1075 template <class _Up> static char __test(typename _Up::size_type* = 0);
1080 template <class _Alloc, class _DiffType, bool = __has_size_type<_Alloc>::value>
1086 template <class _Alloc, class _DiffType>
1092 template <class _Tp>
1097 template <class _Up> static __two __test(...);
1098 …template <class _Up> static char __test(typename _Up::propagate_on_container_copy_assignment* = 0);
1103 template <class _Alloc, bool = __has_propagate_on_container_copy_assignment<_Alloc>::value>
1109 template <class _Alloc>
1115 template <class _Tp>
1120 template <class _Up> static __two __test(...);
1121 …template <class _Up> static char __test(typename _Up::propagate_on_container_move_assignment* = 0);
1126 template <class _Alloc, bool = __has_propagate_on_container_move_assignment<_Alloc>::value>
1132 template <class _Alloc>
1138 template <class _Tp>
1143 template <class _Up> static __two __test(...);
1144 template <class _Up> static char __test(typename _Up::propagate_on_container_swap* = 0);
1149 template <class _Alloc, bool = __has_propagate_on_container_swap<_Alloc>::value>
1155 template <class _Alloc>
1161 template <class _Tp>
1166 template <class _Up> static __two __test(...);
1167 template <class _Up> static char __test(typename _Up::is_always_equal* = 0);
1172 template <class _Alloc, bool = __has_is_always_equal<_Alloc>::value>
1178 template <class _Alloc>
1184 template <class _Tp, class _Up, bool = __has_rebind<_Tp, _Up>::value>
1189 template <class _Xp> static __two __test(...);
1190 template <class _Xp> static char __test(typename _Xp::template rebind<_Up>::other* = 0);
1195 template <class _Tp, class _Up>
1201 template <class _Tp, class _Up, bool = __has_rebind_other<_Tp, _Up>::value>
1209 template <template <class, class...> class _Alloc, class _Tp, class ..._Args, class _Up>
1215 template <template <class, class...> class _Alloc, class _Tp, class ..._Args, class _Up>
1223 template <template <class> class _Alloc, class _Tp, class _Up>
1229 template <template <class> class _Alloc, class _Tp, class _Up>
1235 template <template <class, class> class _Alloc, class _Tp, class _A0, class _Up>
1241 template <template <class, class> class _Alloc, class _Tp, class _A0, class _Up>
1247 template <template <class, class, class> class _Alloc, class _Tp, class _A0,
1248 class _A1, class _Up>
1254 template <template <class, class, class> class _Alloc, class _Tp, class _A0,
1255 class _A1, class _Up>
1261 template <template <class, class, class, class> class _Alloc, class _Tp, class _A0,
1262 class _A1, class _A2, class _Up>
1268 template <template <class, class, class, class> class _Alloc, class _Tp, class _A0,
1269 class _A1, class _A2, class _Up>
1279 template <class _Alloc, class _SizeType, class _ConstVoidPtr>
1284 template <class _Alloc, class _SizeType, class _ConstVoidPtr>
1289 template <class _Alloc, class _SizeType, class _ConstVoidPtr>
1302 template <class _Alloc, class _SizeType, class _ConstVoidPtr>
1312 template <class _Alloc, class _Tp, class ..._Args>
1318 template <class _Alloc, class _Pointer, class ..._Args>
1322 template <class _Alloc, class _Pointer, class ..._Args>
1333 template <class _Alloc, class _Pointer>
1338 template <class _Alloc, class _Pointer>
1343 template <class _Alloc, class _Pointer>
1353 template <class _Alloc>
1358 template <class _Alloc>
1363 template <class _Alloc>
1372 template <class _Alloc>
1377 template <class _Alloc>
1382 template <class _Alloc>
1395 template <class _Alloc, class _Pointer, class ..._Args>
1403 template <class _Alloc, class _Pointer, class _Args>
1411 template <class _Alloc, class _Pointer>
1417 template <class _Alloc>
1423 template <class _Alloc>
1431 template <class _Alloc, class _Ptr, bool = __has_difference_type<_Alloc>::value>
1437 template <class _Alloc, class _Ptr>
1443 template <class _Alloc>
1467 template <class _Tp> using rebind_alloc =
1469 template <class _Tp> using rebind_traits = allocator_traits<rebind_alloc<_Tp>>;
1471 template <class _Tp> struct rebind_alloc
1473 template <class _Tp> struct rebind_traits
1490 template <class _Tp, class... _Args>
1496 template <class _Tp>
1502 template <class _Tp, class _A0>
1508 template <class _Tp, class _A0, class _A1>
1515 template <class _Tp, class _A0, class _A1, class _A2>
1524 template <class _Tp>
1540 template <class _Ptr>
1550 template <class _Tp>
1570 template <class _Iter, class _Ptr>
1580 template <class _Tp>
1601 template <class _Ptr>
1614 template <class _Tp>
1644 template <class _Tp, class... _Args>
1648 template <class _Tp, class... _Args>
1656 template <class _Tp>
1660 template <class _Tp>
1684 template <class _Traits, class _Tp>
1696 template <class _Tp>
1697 class _LIBCPP_TYPE_VIS_ONLY allocator
1711 template <class _Up> struct rebind {typedef allocator<_Up> other;};
1714 template <class _Up> _LIBCPP_INLINE_VISIBILITY allocator(const allocator<_Up>&) _NOEXCEPT {}
1726 template <class _Up, class... _Args>
1742 template <class _A0>
1749 template <class _A0>
1757 template <class _A0, class _A1>
1764 template <class _A0, class _A1>
1771 template <class _A0, class _A1>
1778 template <class _A0, class _A1>
1789 template <class _Tp>
1790 class _LIBCPP_TYPE_VIS_ONLY allocator<const _Tp>
1804 template <class _Up> struct rebind {typedef allocator<_Up> other;};
1807 template <class _Up> _LIBCPP_INLINE_VISIBILITY allocator(const allocator<_Up>&) _NOEXCEPT {}
1817 template <class _Up, class... _Args>
1833 template <class _A0>
1840 template <class _A0>
1848 template <class _A0, class _A1>
1855 template <class _A0, class _A1>
1862 template <class _A0, class _A1>
1869 template <class _A0, class _A1>
1880 template <class _Tp, class _Up>
1884 template <class _Tp, class _Up>
1888 template <class _OutputIterator, class _Tp>
1889 class _LIBCPP_TYPE_VIS_ONLY raw_storage_iterator
1911 template <class _Tp>
1934 template <class _Tp>
1938 template <class _Tp>
1944 template<class _Tp>
1945 class _LIBCPP_TYPE_VIS_ONLY auto_ptr
1954 template<class _Up> _LIBCPP_INLINE_VISIBILITY auto_ptr(auto_ptr<_Up>& __p) throw()
1958 template<class _Up> _LIBCPP_INLINE_VISIBILITY auto_ptr& operator=(auto_ptr<_Up>& __p) throw()
1982 template<class _Up> _LIBCPP_INLINE_VISIBILITY operator auto_ptr_ref<_Up>() throw()
1984 template<class _Up> _LIBCPP_INLINE_VISIBILITY operator auto_ptr<_Up>() throw()
1989 class _LIBCPP_TYPE_VIS_ONLY auto_ptr<void>
1995 template <class _T1, class _T2, bool = is_same<typename remove_cv<_T1>::type,
2004 template <class _T1, class _T2, bool IsSame>
2007 template <class _T1, class _T2, bool IsSame>
2010 template <class _T1, class _T2, bool IsSame>
2013 template <class _T1, class _T2>
2016 template <class _T1, class _T2>
2019 template <class _T1, class _T2, unsigned = __libcpp_compressed_pair_switch<_T1, _T2>::value>
2020 class __libcpp_compressed_pair_imp;
2022 template <class _T1, class _T2>
2023 class __libcpp_compressed_pair_imp<_T1, _T2, 0>
2086 template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
2115 template <class _T1, class _T2>
2116 class __libcpp_compressed_pair_imp<_T1, _T2, 1>
2177 template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
2205 template <class _T1, class _T2>
2206 class __libcpp_compressed_pair_imp<_T1, _T2, 2>
2269 template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
2298 template <class _T1, class _T2>
2299 class __libcpp_compressed_pair_imp<_T1, _T2, 3>
2359 template <class... _Args1, class... _Args2, size_t... _I1, size_t... _I2>
2385 template <class _T1, class _T2>
2386 class __compressed_pair
2444 template <class... _Args1, class... _Args2>
2467 template <class _T1, class _T2>
2477 template <class _Ptr1, class _Ptr2,
2485 template <class _Ptr1, class _Ptr2>
2489 template <class _Ptr1, class _Ptr2, bool = is_pointer<_Ptr1>::value ||
2495 template <class _Ptr1, class _Ptr2>
2501 template <class _Tp>
2509 template <class _Up>
2520 template <class _Tp>
2529 template <class _Up>
2532 template <class _Up>
2543 template <class _Tp, class _Dp = default_delete<_Tp> >
2544 class _LIBCPP_TYPE_VIS_ONLY unique_ptr
2555 template <class _Up, class _Ep>
2558 template <class _Up, class _Ep>
2602 template <class _Up, class _Ep>
2618 template <class _Up>
2636 template <class _Up, class _Ep>
2661 template <class _Up, class _Ep>
2672 template <class _Up>
2722 template <class _Tp, class _Dp>
2723 class _LIBCPP_TYPE_VIS_ONLY unique_ptr<_Tp[], _Dp>
2734 template <class _Up>
2737 template <class _Up>
2759 template <class _Pp>
2768 template <class _Pp>
2784 template <class _Pp>
2811 template <class _Up, class _Ep>
2829 template <class _Up, class _Ep>
2902 template <class _Pp>
2940 template <class _Up>
2942 template <class _Up>
2956 template <class _Tp, class _Dp>
2961 template <class _T1, class _D1, class _T2, class _D2>
2966 template <class _T1, class _D1, class _T2, class _D2>
2971 template <class _T1, class _D1, class _T2, class _D2>
2982 template <class _T1, class _D1, class _T2, class _D2>
2987 template <class _T1, class _D1, class _T2, class _D2>
2992 template <class _T1, class _D1, class _T2, class _D2>
2997 template <class _T1, class _D1>
3005 template <class _T1, class _D1>
3013 template <class _T1, class _D1>
3021 template <class _T1, class _D1>
3029 template <class _T1, class _D1>
3038 template <class _T1, class _D1>
3047 template <class _T1, class _D1>
3055 template <class _T1, class _D1>
3063 template <class _T1, class _D1>
3071 template <class _T1, class _D1>
3079 template <class _T1, class _D1>
3087 template <class _T1, class _D1>
3097 template <class _Tp, class _Dp>
3109 template<class _Tp>
3115 template<class _Tp>
3121 template<class _Tp, size_t _Np>
3127 template<class _Tp, class... _Args>
3135 template<class _Tp>
3144 template<class _Tp, class... _Args>
3150 template <class _Tp> struct hash;
3152 template <class _Size>
3165 template <class _Size, size_t = sizeof(_Size)*__CHAR_BIT__>
3168 template <class _Size>
3175 template <class _Size>
3208 template <class _Size>
3325 template <class _Size>
3371 template <class _Tp, size_t = sizeof(_Tp) / sizeof(size_t)>
3374 template <class _Tp>
3392 template <class _Tp>
3409 template <class _Tp>
3430 template <class _Tp>
3452 template <class _Tp>
3475 template<class _Tp>
3492 template <class _Tp, class _Dp>
3510 template <class _Tp>
3514 template <class _Tp>
3531 template <class _Tp>
3535 template <class _Tp>
3539 template <class _Tp>
3544 template <class _Alloc>
3545 class __allocator_destructor
3563 template <class _InputIterator, class _ForwardIterator>
3587 template <class _InputIterator, class _Size, class _ForwardIterator>
3611 template <class _ForwardIterator, class _Tp>
3634 template <class _ForwardIterator, class _Size, class _Tp>
3658 class _LIBCPP_EXCEPTION_ABI bad_weak_ptr
3666 template<class _Tp> class _LIBCPP_TYPE_VIS_ONLY weak_ptr;
3668 class _LIBCPP_TYPE_VIS __shared_count
3692 class _LIBCPP_TYPE_VIS __shared_weak_count
3725 template <class _Tp, class _Dp, class _Alloc>
3726 class __shared_ptr_pointer
3746 template <class _Tp, class _Dp, class _Alloc>
3755 template <class _Tp, class _Dp, class _Alloc>
3763 template <class _Tp, class _Dp, class _Alloc>
3776 template <class _Tp, class _Alloc>
3777 class __shared_ptr_emplace
3788 template <class ..._Args>
3800 template <class _A0>
3805 template <class _A0, class _A1>
3810 template <class _A0, class _A1, class _A2>
3825 template <class _Tp, class _Alloc>
3832 template <class _Tp, class _Alloc>
3844 template<class _Tp> class _LIBCPP_TYPE_VIS_ONLY enable_shared_from_this;
3846 template<class _Tp>
3847 class _LIBCPP_TYPE_VIS_ONLY shared_ptr
3859 template<class _Yp>
3862 template<class _Yp, class _Dp>
3865 template<class _Yp, class _Dp, class _Alloc>
3868 template <class _Dp> shared_ptr(nullptr_t __p, _Dp __d);
3869 template <class _Dp, class _Alloc> shared_ptr(nullptr_t __p, _Dp __d, _Alloc __a);
3870 template<class _Yp> shared_ptr(const shared_ptr<_Yp>& __r, element_type* __p) _NOEXCEPT;
3872 template<class _Yp>
3878 template<class _Yp> shared_ptr(shared_ptr<_Yp>&& __r,
3882 template<class _Yp> explicit shared_ptr(const weak_ptr<_Yp>& __r,
3885 template<class _Yp>
3889 template<class _Yp>
3894 template <class _Yp, class _Dp>
3903 template <class _Yp, class _Dp>
3913 template <class _Yp, class _Dp>
3922 template <class _Yp, class _Dp>
3936 template<class _Yp>
3945 template<class _Yp>
3952 template<class _Yp>
3961 template<class _Yp>
3970 template <class _Yp, class _Dp>
3985 template<class _Yp>
3992 template<class _Yp, class _Dp>
3999 template<class _Yp, class _Dp, class _Alloc>
4020 template <class _Up>
4024 template <class _Up>
4034 template <class _Dp>
4042 template<class ..._Args>
4047 template<class _Alloc, class ..._Args>
4056 template<class _A0>
4059 template<class _A0, class _A1>
4062 template<class _A0, class _A1, class _A2>
4065 template<class _Alloc>
4069 template<class _Alloc, class _A0>
4073 template<class _Alloc, class _A0, class _A1>
4077 template<class _Alloc, class _A0, class _A1, class _A2>
4085 template <class _Yp>
4101 template <class _Up> friend class _LIBCPP_TYPE_VIS_ONLY shared_ptr;
4102 template <class _Up> friend class _LIBCPP_TYPE_VIS_ONLY weak_ptr;
4105 template<class _Tp>
4114 template<class _Tp>
4123 template<class _Tp>
4124 template<class _Yp>
4136 template<class _Tp>
4137 template<class _Yp, class _Dp>
4159 template<class _Tp>
4160 template<class _Dp>
4180 template<class _Tp>
4181 template<class _Yp, class _Dp, class _Alloc>
4209 template<class _Tp>
4210 template<class _Dp, class _Alloc>
4236 template<class _Tp>
4237 template<class _Yp>
4247 template<class _Tp>
4257 template<class _Tp>
4258 template<class _Yp>
4272 template<class _Tp>
4282 template<class _Tp>
4283 template<class _Yp>
4297 template<class _Tp>
4298 template<class _Yp>
4313 template<class _Tp>
4314 template <class _Yp, class _Dp>
4342 template<class _Tp>
4343 template <class _Yp, class _Dp>
4375 template<class _Tp>
4376 template<class ..._Args>
4393 template<class _Tp>
4394 template<class _Alloc, class ..._Args>
4414 template<class _Tp>
4431 template<class _Tp>
4432 template<class _A0>
4449 template<class _Tp>
4450 template<class _A0, class _A1>
4467 template<class _Tp>
4468 template<class _A0, class _A1, class _A2>
4485 template<class _Tp>
4486 template<class _Alloc>
4504 template<class _Tp>
4505 template<class _Alloc, class _A0>
4523 template<class _Tp>
4524 template<class _Alloc, class _A0, class _A1>
4542 template<class _Tp>
4543 template<class _Alloc, class _A0, class _A1, class _A2>
4563 template<class _Tp>
4570 template<class _Tp>
4579 template<class _Tp>
4580 template<class _Yp>
4595 template<class _Tp>
4604 template<class _Tp>
4605 template<class _Yp>
4618 template<class _Tp>
4619 template<class _Yp>
4633 template<class _Tp>
4634 template <class _Yp, class _Dp>
4650 template<class _Tp>
4651 template<class _Yp>
4665 template<class _Tp>
4666 template <class _Yp, class _Dp>
4682 template<class _Tp>
4691 template<class _Tp>
4699 template<class _Tp>
4700 template<class _Yp>
4712 template<class _Tp>
4713 template<class _Yp, class _Dp>
4725 template<class _Tp>
4726 template<class _Yp, class _Dp, class _Alloc>
4740 template<class _Tp, class ..._Args>
4752 template<class _Tp, class _Alloc, class ..._Args>
4766 template<class _Tp>
4774 template<class _Tp, class _A0>
4782 template<class _Tp, class _A0, class _A1>
4790 template<class _Tp, class _A0, class _A1, class _A2>
4798 template<class _Tp, class _Alloc>
4806 template<class _Tp, class _Alloc, class _A0>
4814 template<class _Tp, class _Alloc, class _A0, class _A1>
4822 template<class _Tp, class _Alloc, class _A0, class _A1, class _A2>
4832 template<class _Tp, class _Up>
4840 template<class _Tp, class _Up>
4848 template<class _Tp, class _Up>
4857 template<class _Tp, class _Up>
4865 template<class _Tp, class _Up>
4873 template<class _Tp, class _Up>
4881 template<class _Tp>
4889 template<class _Tp>
4897 template<class _Tp>
4905 template<class _Tp>
4913 template<class _Tp>
4921 template<class _Tp>
4929 template<class _Tp>
4937 template<class _Tp>
4945 template<class _Tp>
4953 template<class _Tp>
4961 template<class _Tp>
4969 template<class _Tp>
4977 template<class _Tp>
4985 template<class _Tp, class _Up>
4997 template<class _Tp, class _Up>
5010 template<class _Tp, class _Up>
5024 template<class _Dp, class _Tp>
5034 template<class _Tp>
5035 class _LIBCPP_TYPE_VIS_ONLY weak_ptr
5045 template<class _Yp> weak_ptr(shared_ptr<_Yp> const& __r,
5049 template<class _Yp> weak_ptr(weak_ptr<_Yp> const& __r,
5055 template<class _Yp> weak_ptr(weak_ptr<_Yp>&& __r,
5062 template<class _Yp>
5073 template<class _Yp>
5083 template<class _Yp>
5101 template<class _Up>
5105 template<class _Up>
5110 template <class _Up> friend class _LIBCPP_TYPE_VIS_ONLY weak_ptr;
5111 template <class _Up> friend class _LIBCPP_TYPE_VIS_ONLY shared_ptr;
5114 template<class _Tp>
5123 template<class _Tp>
5133 template<class _Tp>
5134 template<class _Yp>
5146 template<class _Tp>
5147 template<class _Yp>
5161 template<class _Tp>
5171 template<class _Tp>
5172 template<class _Yp>
5186 template<class _Tp>
5193 template<class _Tp>
5202 template<class _Tp>
5203 template<class _Yp>
5218 template<class _Tp>
5227 template<class _Tp>
5228 template<class _Yp>
5243 template<class _Tp>
5244 template<class _Yp>
5257 template<class _Tp>
5266 template<class _Tp>
5274 template<class _Tp>
5282 template<class _Tp>
5283 template<class _Yp>
5297 template<class _Tp>
5308 template <class _Tp> struct owner_less;
5310 template <class _Tp>
5326 template <class _Tp>
5342 template<class _Tp>
5343 class _LIBCPP_TYPE_VIS_ONLY enable_shared_from_this
5364 template <class _Up> friend class shared_ptr;
5367 template <class _Tp>
5379 template<class _CharT, class _Traits, class _Yp>
5386 class _LIBCPP_TYPE_VIS __sp_mut
5403 template <class _Tp>
5411 template <class _Tp>
5422 template <class _Tp>
5430 template <class _Tp>
5440 template <class _Tp>
5448 template <class _Tp>
5459 template <class _Tp>
5467 template <class _Tp>
5484 template <class _Tp>
5492 template <class _Tp>
5501 template <class _Tp>
5512 //enum class
5536 template <class _Tp>