|
libstdc++
|
Classes | |
| struct | std::default_delete< _Tp > |
| struct | std::default_delete< _Tp[]> |
| class | std::enable_shared_from_this< _Tp > |
| struct | std::hash< shared_ptr< _Tp > > |
| struct | std::hash< unique_ptr< _Tp, _Dp > > |
| struct | std::owner_less< _Tp > |
| struct | std::owner_less< shared_ptr< _Tp > > |
| struct | std::owner_less< weak_ptr< _Tp > > |
| struct | std::pointer_traits< _Ptr > |
| struct | std::pointer_traits< _Tp * > |
| class | std::shared_ptr< _Tp > |
| class | std::unique_ptr< _Tp, _Dp > |
| class | std::unique_ptr< _Tp[], _Dp > |
| class | std::weak_ptr< _Tp > |
Macros | |
| #define | __cpp_lib_make_unique |
Functions | |
| template<typename _Tp1 , typename _Tp2 > | |
| void | std::__enable_shared_from_this_helper (const __shared_count<> &__pn, const enable_shared_from_this< _Tp1 > *__pe, const _Tp2 *__px) noexcept |
| template<typename _Tp , typename _Alloc , typename... _Args> | |
| shared_ptr< _Tp > | std::allocate_shared (const _Alloc &__a, _Args &&...__args) |
| template<typename _Tp , typename _Tp1 > | |
| shared_ptr< _Tp > | std::const_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept |
| template<typename _Tp , typename _Tp1 > | |
| shared_ptr< _Tp > | std::dynamic_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept |
| template<typename _Del , typename _Tp , _Lock_policy _Lp> | |
| _Del * | std::get_deleter (const __shared_ptr< _Tp, _Lp > &__p) noexcept |
| template<typename _Tp , typename... _Args> | |
| shared_ptr< _Tp > | std::make_shared (_Args &&...__args) |
| template<typename _Tp , typename... _Args> | |
| _MakeUniq< _Tp >::__single_object | std::make_unique (_Args &&...__args) |
| template<typename _Tp > | |
| _MakeUniq< _Tp >::__array | std::make_unique (size_t __num) |
| template<typename _Tp , typename... _Args> | |
| _MakeUniq< _Tp >::__invalid_type | std::make_unique (_Args &&...)=delete |
| template<typename _Tp1 , typename _Tp2 > | |
| bool | std::operator!= (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept |
| template<typename _Tp > | |
| bool | std::operator!= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept |
| template<typename _Tp > | |
| bool | std::operator!= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept |
| template<typename _Tp , typename _Dp , typename _Up , typename _Ep > | |
| bool | std::operator!= (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y) |
| template<typename _Tp , typename _Dp > | |
| bool | std::operator!= (const unique_ptr< _Tp, _Dp > &__x, nullptr_t) noexcept |
| template<typename _Tp , typename _Dp > | |
| bool | std::operator!= (nullptr_t, const unique_ptr< _Tp, _Dp > &__x) noexcept |
| template<typename _Tp1 , typename _Tp2 > | |
| bool | std::operator< (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept |
| template<typename _Tp > | |
| bool | std::operator< (const shared_ptr< _Tp > &__a, nullptr_t) noexcept |
| template<typename _Tp > | |
| bool | std::operator< (nullptr_t, const shared_ptr< _Tp > &__a) noexcept |
| template<typename _Tp , typename _Dp , typename _Up , typename _Ep > | |
| bool | std::operator< (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y) |
| template<typename _Tp , typename _Dp > | |
| bool | std::operator< (const unique_ptr< _Tp, _Dp > &__x, nullptr_t) |
| template<typename _Tp , typename _Dp > | |
| bool | std::operator< (nullptr_t, const unique_ptr< _Tp, _Dp > &__x) |
| template<typename _Ch , typename _Tr , typename _Tp , _Lock_policy _Lp> | |
| std::basic_ostream< _Ch, _Tr > & | std::operator<< (std::basic_ostream< _Ch, _Tr > &__os, const __shared_ptr< _Tp, _Lp > &__p) |
| template<typename _Tp1 , typename _Tp2 > | |
| bool | std::operator<= (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept |
| template<typename _Tp > | |
| bool | std::operator<= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept |
| template<typename _Tp > | |
| bool | std::operator<= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept |
| template<typename _Tp , typename _Dp , typename _Up , typename _Ep > | |
| bool | std::operator<= (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y) |
| template<typename _Tp , typename _Dp > | |
| bool | std::operator<= (const unique_ptr< _Tp, _Dp > &__x, nullptr_t) |
| template<typename _Tp , typename _Dp > | |
| bool | std::operator<= (nullptr_t, const unique_ptr< _Tp, _Dp > &__x) |
| template<typename _Tp1 , typename _Tp2 > | |
| bool | std::operator== (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept |
| template<typename _Tp > | |
| bool | std::operator== (const shared_ptr< _Tp > &__a, nullptr_t) noexcept |
| template<typename _Tp > | |
| bool | std::operator== (nullptr_t, const shared_ptr< _Tp > &__a) noexcept |
| template<typename _Tp , typename _Dp , typename _Up , typename _Ep > | |
| bool | std::operator== (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y) |
| template<typename _Tp , typename _Dp > | |
| bool | std::operator== (const unique_ptr< _Tp, _Dp > &__x, nullptr_t) noexcept |
| template<typename _Tp , typename _Dp > | |
| bool | std::operator== (nullptr_t, const unique_ptr< _Tp, _Dp > &__x) noexcept |
| template<typename _Tp1 , typename _Tp2 > | |
| bool | std::operator> (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept |
| template<typename _Tp > | |
| bool | std::operator> (const shared_ptr< _Tp > &__a, nullptr_t) noexcept |
| template<typename _Tp > | |
| bool | std::operator> (nullptr_t, const shared_ptr< _Tp > &__a) noexcept |
| template<typename _Tp , typename _Dp , typename _Up , typename _Ep > | |
| bool | std::operator> (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y) |
| template<typename _Tp , typename _Dp > | |
| bool | std::operator> (const unique_ptr< _Tp, _Dp > &__x, nullptr_t) |
| template<typename _Tp , typename _Dp > | |
| bool | std::operator> (nullptr_t, const unique_ptr< _Tp, _Dp > &__x) |
| template<typename _Tp1 , typename _Tp2 > | |
| bool | std::operator>= (const shared_ptr< _Tp1 > &__a, const shared_ptr< _Tp2 > &__b) noexcept |
| template<typename _Tp > | |
| bool | std::operator>= (const shared_ptr< _Tp > &__a, nullptr_t) noexcept |
| template<typename _Tp > | |
| bool | std::operator>= (nullptr_t, const shared_ptr< _Tp > &__a) noexcept |
| template<typename _Tp , typename _Dp , typename _Up , typename _Ep > | |
| bool | std::operator>= (const unique_ptr< _Tp, _Dp > &__x, const unique_ptr< _Up, _Ep > &__y) |
| template<typename _Tp , typename _Dp > | |
| bool | std::operator>= (const unique_ptr< _Tp, _Dp > &__x, nullptr_t) |
| template<typename _Tp , typename _Dp > | |
| bool | std::operator>= (nullptr_t, const unique_ptr< _Tp, _Dp > &__x) |
| template<typename _Tp , typename _Tp1 > | |
| shared_ptr< _Tp > | std::static_pointer_cast (const shared_ptr< _Tp1 > &__r) noexcept |
| template<typename _Tp > | |
| void | std::swap (shared_ptr< _Tp > &__a, shared_ptr< _Tp > &__b) noexcept |
| template<typename _Tp > | |
| void | std::swap (weak_ptr< _Tp > &__a, weak_ptr< _Tp > &__b) noexcept |
| template<typename _Tp , typename _Dp > | |
| void | std::swap (unique_ptr< _Tp, _Dp > &__x, unique_ptr< _Tp, _Dp > &__y) noexcept |
| template<typename _Tp , _Lock_policy _Lp> | |
| bool | std::atomic_is_lock_free (const __shared_ptr< _Tp, _Lp > *__p) |
| template<typename _Tp > | |
| bool | std::atomic_is_lock_free (const shared_ptr< _Tp > *__p) |
| template<typename _Tp > | |
| shared_ptr< _Tp > | std::atomic_load_explicit (const shared_ptr< _Tp > *__p, memory_order) |
| template<typename _Tp > | |
| shared_ptr< _Tp > | std::atomic_load (const shared_ptr< _Tp > *__p) |
| template<typename _Tp , _Lock_policy _Lp> | |
| __shared_ptr< _Tp, _Lp > | std::atomic_load_explicit (const __shared_ptr< _Tp, _Lp > *__p, memory_order) |
| template<typename _Tp , _Lock_policy _Lp> | |
| __shared_ptr< _Tp, _Lp > | std::atomic_load (const __shared_ptr< _Tp, _Lp > *__p) |
| template<typename _Tp > | |
| void | std::atomic_store_explicit (shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r, memory_order) |
| template<typename _Tp > | |
| void | std::atomic_store (shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r) |
| template<typename _Tp , _Lock_policy _Lp> | |
| void | std::atomic_store_explicit (__shared_ptr< _Tp, _Lp > *__p, __shared_ptr< _Tp, _Lp > __r, memory_order) |
| template<typename _Tp , _Lock_policy _Lp> | |
| void | std::atomic_store (__shared_ptr< _Tp, _Lp > *__p, __shared_ptr< _Tp, _Lp > __r) |
| template<typename _Tp > | |
| shared_ptr< _Tp > | std::atomic_exchange_explicit (shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r, memory_order) |
| template<typename _Tp > | |
| shared_ptr< _Tp > | std::atomic_exchange (shared_ptr< _Tp > *__p, shared_ptr< _Tp > __r) |
| template<typename _Tp , _Lock_policy _Lp> | |
| __shared_ptr< _Tp, _Lp > | std::atomic_exchange_explicit (__shared_ptr< _Tp, _Lp > *__p, __shared_ptr< _Tp, _Lp > __r, memory_order) |
| template<typename _Tp , _Lock_policy _Lp> | |
| __shared_ptr< _Tp, _Lp > | std::atomic_exchange (__shared_ptr< _Tp, _Lp > *__p, __shared_ptr< _Tp, _Lp > __r) |
| template<typename _Tp > | |
| bool | std::atomic_compare_exchange_strong_explicit (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w, memory_order, memory_order) |
| template<typename _Tp > | |
| bool | std::atomic_compare_exchange_strong (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w) |
| template<typename _Tp > | |
| bool | std::atomic_compare_exchange_weak_explicit (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w, memory_order __success, memory_order __failure) |
| template<typename _Tp > | |
| bool | std::atomic_compare_exchange_weak (shared_ptr< _Tp > *__p, shared_ptr< _Tp > *__v, shared_ptr< _Tp > __w) |
| template<typename _Tp , _Lock_policy _Lp> | |
| bool | std::atomic_compare_exchange_strong_explicit (__shared_ptr< _Tp, _Lp > *__p, __shared_ptr< _Tp, _Lp > *__v, __shared_ptr< _Tp, _Lp > __w, memory_order, memory_order) |
| template<typename _Tp , _Lock_policy _Lp> | |
| bool | std::atomic_compare_exchange_strong (__shared_ptr< _Tp, _Lp > *__p, __shared_ptr< _Tp, _Lp > *__v, __shared_ptr< _Tp, _Lp > __w) |
| template<typename _Tp , _Lock_policy _Lp> | |
| bool | std::atomic_compare_exchange_weak_explicit (__shared_ptr< _Tp, _Lp > *__p, __shared_ptr< _Tp, _Lp > *__v, __shared_ptr< _Tp, _Lp > __w, memory_order __success, memory_order __failure) |
| template<typename _Tp , _Lock_policy _Lp> | |
| bool | std::atomic_compare_exchange_weak (__shared_ptr< _Tp, _Lp > *__p, __shared_ptr< _Tp, _Lp > *__v, __shared_ptr< _Tp, _Lp > __w) |
Smart pointers, etc.
|
inline |
Create an object that is owned by a shared_ptr.
| __a | An allocator. |
| __args | Arguments for the _Tp object's constructor. |
| An | exception thrown from _Alloc::allocate or from the constructor of _Tp. |
A copy of __a will be used to allocate memory for the shared_ptr and the new object.
Definition at line 617 of file bits/shared_ptr.h.
|
inline |
Atomic compare-and-swap for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __v | A non-null pointer to a shared_ptr object. |
| __w | A non-null pointer to a shared_ptr object. |
*__p was equivalent to *__v, false otherwise.The memory order for failure shall not be memory_order_release or memory_order_acq_rel, or stronger than the memory order for success.
Definition at line 242 of file shared_ptr_atomic.h.
References std::atomic_compare_exchange_strong_explicit().
|
inline |
Atomic compare-and-swap for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __v | A non-null pointer to a shared_ptr object. |
| __w | A non-null pointer to a shared_ptr object. |
*__p was equivalent to *__v, false otherwise.The memory order for failure shall not be memory_order_release or memory_order_acq_rel, or stronger than the memory order for success.
Definition at line 294 of file shared_ptr_atomic.h.
References std::atomic_compare_exchange_strong_explicit().
| bool std::atomic_compare_exchange_strong_explicit | ( | shared_ptr< _Tp > * | __p, |
| shared_ptr< _Tp > * | __v, | ||
| shared_ptr< _Tp > | __w, | ||
| memory_order | , | ||
| memory_order | |||
| ) |
Atomic compare-and-swap for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __v | A non-null pointer to a shared_ptr object. |
| __w | A non-null pointer to a shared_ptr object. |
*__p was equivalent to *__v, false otherwise.The memory order for failure shall not be memory_order_release or memory_order_acq_rel, or stronger than the memory order for success.
Definition at line 220 of file shared_ptr_atomic.h.
| bool std::atomic_compare_exchange_strong_explicit | ( | __shared_ptr< _Tp, _Lp > * | __p, |
| __shared_ptr< _Tp, _Lp > * | __v, | ||
| __shared_ptr< _Tp, _Lp > | __w, | ||
| memory_order | , | ||
| memory_order | |||
| ) |
Atomic compare-and-swap for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __v | A non-null pointer to a shared_ptr object. |
| __w | A non-null pointer to a shared_ptr object. |
*__p was equivalent to *__v, false otherwise.The memory order for failure shall not be memory_order_release or memory_order_acq_rel, or stronger than the memory order for success.
Definition at line 272 of file shared_ptr_atomic.h.
Referenced by std::atomic_compare_exchange_strong(), and std::atomic_compare_exchange_weak_explicit().
|
inline |
Atomic compare-and-swap for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __v | A non-null pointer to a shared_ptr object. |
| __w | A non-null pointer to a shared_ptr object. |
*__p was equivalent to *__v, false otherwise.The memory order for failure shall not be memory_order_release or memory_order_acq_rel, or stronger than the memory order for success.
Definition at line 263 of file shared_ptr_atomic.h.
References std::atomic_compare_exchange_weak_explicit().
|
inline |
Atomic compare-and-swap for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __v | A non-null pointer to a shared_ptr object. |
| __w | A non-null pointer to a shared_ptr object. |
*__p was equivalent to *__v, false otherwise.The memory order for failure shall not be memory_order_release or memory_order_acq_rel, or stronger than the memory order for success.
Definition at line 316 of file shared_ptr_atomic.h.
References std::atomic_compare_exchange_weak_explicit().
|
inline |
Atomic compare-and-swap for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __v | A non-null pointer to a shared_ptr object. |
| __w | A non-null pointer to a shared_ptr object. |
*__p was equivalent to *__v, false otherwise.The memory order for failure shall not be memory_order_release or memory_order_acq_rel, or stronger than the memory order for success.
Definition at line 251 of file shared_ptr_atomic.h.
References std::atomic_compare_exchange_strong_explicit().
|
inline |
Atomic compare-and-swap for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __v | A non-null pointer to a shared_ptr object. |
| __w | A non-null pointer to a shared_ptr object. |
*__p was equivalent to *__v, false otherwise.The memory order for failure shall not be memory_order_release or memory_order_acq_rel, or stronger than the memory order for success.
Definition at line 304 of file shared_ptr_atomic.h.
References std::atomic_compare_exchange_strong_explicit().
Referenced by std::atomic_compare_exchange_weak().
|
inline |
Atomic exchange for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __r | New value to store in *__p. |
*__p Definition at line 181 of file shared_ptr_atomic.h.
References std::atomic_exchange_explicit().
|
inline |
Atomic exchange for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __r | New value to store in *__p. |
*__p Definition at line 200 of file shared_ptr_atomic.h.
References std::atomic_exchange_explicit().
|
inline |
Atomic exchange for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __r | New value to store in *__p. |
*__p Definition at line 171 of file shared_ptr_atomic.h.
|
inline |
Atomic exchange for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __r | New value to store in *__p. |
*__p Definition at line 189 of file shared_ptr_atomic.h.
Referenced by std::atomic_exchange().
|
inline |
Report whether shared_ptr atomic operations are lock-free.
| __p | A non-null pointer to a shared_ptr object. |
*__p is lock-free, false otherwise. Definition at line 71 of file shared_ptr_atomic.h.
|
inline |
Report whether shared_ptr atomic operations are lock-free.
| __p | A non-null pointer to a shared_ptr object. |
*__p is lock-free, false otherwise. Definition at line 82 of file shared_ptr_atomic.h.
|
inline |
Atomic load for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
*__p The memory order shall not be memory_order_release or memory_order_acq_rel.
Definition at line 106 of file shared_ptr_atomic.h.
References std::atomic_load_explicit().
|
inline |
Atomic load for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
*__p The memory order shall not be memory_order_release or memory_order_acq_rel.
Definition at line 119 of file shared_ptr_atomic.h.
References std::atomic_load_explicit().
|
inline |
Atomic load for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
*__p The memory order shall not be memory_order_release or memory_order_acq_rel.
Definition at line 98 of file shared_ptr_atomic.h.
|
inline |
Atomic load for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
*__p The memory order shall not be memory_order_release or memory_order_acq_rel.
Definition at line 111 of file shared_ptr_atomic.h.
Referenced by std::atomic_load().
|
inline |
Atomic store for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __r | The value to store. |
The memory order shall not be memory_order_acquire or memory_order_acq_rel.
Definition at line 143 of file shared_ptr_atomic.h.
References std::atomic_store_explicit().
|
inline |
Atomic store for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __r | The value to store. |
The memory order shall not be memory_order_acquire or memory_order_acq_rel.
Definition at line 158 of file shared_ptr_atomic.h.
References std::atomic_store_explicit().
|
inline |
Atomic store for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __r | The value to store. |
The memory order shall not be memory_order_acquire or memory_order_acq_rel.
Definition at line 134 of file shared_ptr_atomic.h.
|
inline |
Atomic store for shared_ptr objects.
| __p | A non-null pointer to a shared_ptr object. |
| __r | The value to store. |
The memory order shall not be memory_order_acquire or memory_order_acq_rel.
Definition at line 148 of file shared_ptr_atomic.h.
Referenced by std::atomic_store().
|
inlinenoexcept |
20.7.2.2.10 shared_ptr get_deleter
Definition at line 76 of file bits/shared_ptr.h.
Referenced by std::unique_ptr< _Result< _Res > >::operator=(), std::unique_ptr< _Tp[], _Dp >::operator=(), std::unique_ptr< _Result< _Res > >::reset(), std::unique_ptr< _Tp[], _Dp >::reset(), std::unique_ptr< _Result< _Res > >::~unique_ptr(), and std::unique_ptr< _Tp[], _Dp >::~unique_ptr().
|
inline |
Create an object that is owned by a shared_ptr.
| __args | Arguments for the _Tp object's constructor. |
| std::bad_alloc,or | an exception thrown from the constructor of _Tp. |
Definition at line 632 of file bits/shared_ptr.h.
|
inline |
std::make_unique for single objects
Definition at line 790 of file unique_ptr.h.
Referenced by std::make_unique().
|
inline |
std::make_unique for arrays of unknown bound
Definition at line 796 of file unique_ptr.h.
References std::make_unique().
|
inlinedelete |
Disable std::make_unique for arrays of known bound.
|
inline |
20.7.2.2.11 shared_ptr I/O
Definition at line 66 of file bits/shared_ptr.h.