Inherits std::__shared_ptr< _Tp, _Lp >.
|  | 
| constexpr | shared_ptr () noexcept | 
|  | 
|  | shared_ptr (const shared_ptr &) noexcept=default | 
|  | 
| template<typename _Tp1 > | 
|  | shared_ptr (_Tp1 *__p) | 
|  | 
| template<typename _Tp1 , typename _Deleter > | 
|  | shared_ptr (_Tp1 *__p, _Deleter __d) | 
|  | 
| template<typename _Deleter > | 
|  | shared_ptr (nullptr_t __p, _Deleter __d) | 
|  | 
| template<typename _Tp1 , typename _Deleter , typename _Alloc > | 
|  | shared_ptr (_Tp1 *__p, _Deleter __d, _Alloc __a) | 
|  | 
| template<typename _Deleter , typename _Alloc > | 
|  | shared_ptr (nullptr_t __p, _Deleter __d, _Alloc __a) | 
|  | 
| template<typename _Tp1 > | 
|  | shared_ptr (const shared_ptr< _Tp1 > &__r, _Tp *__p) noexcept | 
|  | 
| template<typename _Tp1 , typename  = typename std::enable_if<std::is_convertible<_Tp1*, _Tp*>::value>::type> | 
|  | shared_ptr (const shared_ptr< _Tp1 > &__r) noexcept | 
|  | 
|  | shared_ptr (shared_ptr &&__r) noexcept | 
|  | 
| template<typename _Tp1 , typename  = typename std::enable_if<std::is_convertible<_Tp1*, _Tp*>::value>::type> | 
|  | shared_ptr (shared_ptr< _Tp1 > &&__r) noexcept | 
|  | 
| template<typename _Tp1 > | 
|  | shared_ptr (const weak_ptr< _Tp1 > &__r) | 
|  | 
| template<typename _Tp1 , typename _Del > | 
|  | shared_ptr (std::unique_ptr< _Tp1, _Del > &&__r) | 
|  | 
| constexpr | shared_ptr (nullptr_t __p) noexcept | 
|  | 
| template<typename _Tp1 > | 
|  | shared_ptr (std::auto_ptr< _Tp1 > &&__r) | 
|  | 
| _Tp * | get () const noexcept | 
|  | 
|  | operator bool () const | 
|  | 
| std::add_lvalue_reference< _Tp > ::type
 | operator* () const noexcept | 
|  | 
| _Tp * | operator-> () const noexcept | 
|  | 
| shared_ptr & | operator= (const shared_ptr &) noexcept=default | 
|  | 
| template<typename _Tp1 > | 
| shared_ptr & | operator= (const shared_ptr< _Tp1 > &__r) noexcept | 
|  | 
| shared_ptr & | operator= (shared_ptr &&__r) noexcept | 
|  | 
| template<class _Tp1 > | 
| shared_ptr & | operator= (shared_ptr< _Tp1 > &&__r) noexcept | 
|  | 
| template<typename _Tp1 , typename _Del > | 
| shared_ptr & | operator= (std::unique_ptr< _Tp1, _Del > &&__r) | 
|  | 
| template<typename _Tp1 > | 
| bool | owner_before (__shared_ptr< _Tp1, _Lp > const &__rhs) const | 
|  | 
| template<typename _Tp1 > | 
| bool | owner_before (__weak_ptr< _Tp1, _Lp > const &__rhs) const | 
|  | 
| void | reset () noexcept | 
|  | 
| template<typename _Tp1 > | 
| void | reset (_Tp1 *__p) | 
|  | 
| template<typename _Tp1 , typename _Deleter > | 
| void | reset (_Tp1 *__p, _Deleter __d) | 
|  | 
| template<typename _Tp1 , typename _Deleter , typename _Alloc > | 
| void | reset (_Tp1 *__p, _Deleter __d, _Alloc __a) | 
|  | 
| void | swap (__shared_ptr< _Tp, _Lp > &__other) noexcept | 
|  | 
| bool | unique () const noexcept | 
|  | 
| long | use_count () const noexcept | 
|  | 
template<typename _Tp>
singleton std::shared_ptr< _Tp >
A smart pointer with reference-counted copy semantics. 
The object pointed to is deleted when the last shared_ptr pointing to it is destroyed or reset. 
Definition at line 93 of file shared_ptr.h.
template<typename _Tp> 
template<typename _Tp1 , typename _Deleter > 
 
Construct a shared_ptr that owns the pointer __p and the deleter __d. 
- Parameters
- 
  
    | __p | A pointer. |  | __d | A deleter. |  
 
- Postcondition
- use_count() == 1 && get() == __p 
- Exceptions
- 
  
    | std::bad_alloc,in | which case __d(__p) is called. |  
 
Requirements: _Deleter's copy constructor and destructor must not throw
__shared_ptr will release __p by calling __d(__p) 
Definition at line 129 of file shared_ptr.h.
 
 
template<typename _Tp> 
template<typename _Tp1 , typename _Deleter , typename _Alloc > 
 
Construct a shared_ptr that owns the pointer __p and the deleter __d. 
- Parameters
- 
  
    | __p | A pointer. |  | __d | A deleter. |  | __a | An allocator. |  
 
- Postcondition
- use_count() == 1 && get() == __p 
- Exceptions
- 
  
    | std::bad_alloc,in | which case __d(__p) is called. |  
 
Requirements: _Deleter's copy constructor and destructor must not throw _Alloc's copy constructor and destructor must not throw.
__shared_ptr will release __p by calling __d(__p) 
Definition at line 165 of file shared_ptr.h.
 
 
template<typename _Tp> 
template<typename _Deleter , typename _Alloc > 
 
Construct a shared_ptr that owns a null pointer and the deleter __d. 
- Parameters
- 
  
    | __p | A null pointer constant. |  | __d | A deleter. |  | __a | An allocator. |  
 
- Postcondition
- use_count() == 1 && get() == __p 
- Exceptions
- 
  
    | std::bad_alloc,in | which case __d(__p) is called. |  
 
Requirements: _Deleter's copy constructor and destructor must not throw _Alloc's copy constructor and destructor must not throw.
The last owner will call __d(__p) 
Definition at line 184 of file shared_ptr.h.
 
 
template<typename _Tp> 
template<typename _Tp1 , typename _Alloc , typename... _Args> 
  
  | 
        
          | shared_ptr<_Tp1> allocate_shared | ( | const _Alloc & | __a, |  
          |  |  | _Args &&... | __args |  
          |  | ) |  |  |  | friend | 
 
Create an object that is owned by a shared_ptr. 
- Parameters
- 
  
    | __a | An allocator. |  | __args | Arguments for the _Tp object's constructor. |  
 
- Returns
- A shared_ptr that owns the newly created object. 
- Exceptions
- 
  
    | 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 585 of file shared_ptr.h.