|  | 
|  | shared_ptr () _NOEXCEPT | 
|  | 
| template<class _Ux > | 
|  | shared_ptr (_Ux *_Px) | 
|  | 
| template<class _Ux , class _Dx > | 
|  | shared_ptr (_Ux *_Px, _Dx _Dt) | 
|  | 
|  | shared_ptr (nullptr_t) | 
|  | 
| template<class _Dx > | 
|  | shared_ptr (nullptr_t, _Dx _Dt) | 
|  | 
| template<class _Dx , class _Alloc > | 
|  | shared_ptr (nullptr_t, _Dx _Dt, _Alloc _Ax) | 
|  | 
| template<class _Ux , class _Dx , class _Alloc > | 
|  | shared_ptr (_Ux *_Px, _Dx _Dt, _Alloc _Ax) | 
|  | 
| template<class _Ty2 > | 
|  | shared_ptr (const shared_ptr< _Ty2 > &_Right, _Ty *_Px) _NOEXCEPT | 
|  | 
|  | shared_ptr (const _Myt &_Other) _NOEXCEPT | 
|  | 
| template<class _Ty2 , class  = typename enable_if<is_convertible<_Ty2 *, _Ty *>::value,			void>::type> | 
|  | shared_ptr (const shared_ptr< _Ty2 > &_Other) _NOEXCEPT | 
|  | 
| template<class _Ty2 > | 
|  | shared_ptr (const weak_ptr< _Ty2 > &_Other, bool _Throw=true) | 
|  | 
| template<class _Ty2 > | 
|  | shared_ptr (auto_ptr< _Ty2 > &&_Other) | 
|  | 
| template<class _Ty2 > | 
|  | shared_ptr (const shared_ptr< _Ty2 > &_Other, const _Static_tag &_Tag) | 
|  | 
| template<class _Ty2 > | 
|  | shared_ptr (const shared_ptr< _Ty2 > &_Other, const _Const_tag &_Tag) | 
|  | 
| template<class _Ty2 > | 
|  | shared_ptr (const shared_ptr< _Ty2 > &_Other, const _Dynamic_tag &_Tag) | 
|  | 
|  | shared_ptr (_Myt &&_Right) _NOEXCEPT | 
|  | 
| template<class _Ty2 , class  = typename enable_if<is_convertible<_Ty2 *, _Ty *>::value,			void>::type> | 
|  | shared_ptr (shared_ptr< _Ty2 > &&_Right) _NOEXCEPT | 
|  | 
| template<class _Ux , class _Dx > | 
|  | shared_ptr (unique_ptr< _Ux, _Dx > &&_Right) | 
|  | 
| template<class _Ux , class _Dx > | 
| _Myt & | operator= (unique_ptr< _Ux, _Dx > &&_Right) | 
|  | 
| _Myt & | operator= (_Myt &&_Right) _NOEXCEPT | 
|  | 
| template<class _Ty2 > | 
| _Myt & | operator= (shared_ptr< _Ty2 > &&_Right) _NOEXCEPT | 
|  | 
|  | ~shared_ptr () _NOEXCEPT | 
|  | 
| _Myt & | operator= (const _Myt &_Right) _NOEXCEPT | 
|  | 
| template<class _Ty2 > | 
| _Myt & | operator= (const shared_ptr< _Ty2 > &_Right) _NOEXCEPT | 
|  | 
| template<class _Ty2 > | 
| _Myt & | operator= (auto_ptr< _Ty2 > &&_Right) | 
|  | 
| void | reset () _NOEXCEPT | 
|  | 
| template<class _Ux > | 
| void | reset (_Ux *_Px) | 
|  | 
| template<class _Ux , class _Dx > | 
| void | reset (_Ux *_Px, _Dx _Dt) | 
|  | 
| template<class _Ux , class _Dx , class _Alloc > | 
| void | reset (_Ux *_Px, _Dx _Dt, _Alloc _Ax) | 
|  | 
| void | swap (_Myt &_Other) _NOEXCEPT | 
|  | 
| _Ty * | get () const _NOEXCEPT | 
|  | 
| add_reference< _Ty >::type | operator* () const _NOEXCEPT | 
|  | 
| _Ty * | operator-> () const _NOEXCEPT | 
|  | 
| bool | unique () const _NOEXCEPT | 
|  | 
|  | operator bool () const _NOEXCEPT | 
|  | 
| template<class _Ux > | 
| void | _Resetp0 (_Ux *_Px, _Ref_count_base *_Rx) | 
|  | 
|  | _Ptr_base () | 
|  | 
|  | _Ptr_base (_Myt &&_Right) | 
|  | 
| template<class _Ty2 > | 
|  | _Ptr_base (_Ptr_base< _Ty2 > &&_Right) | 
|  | 
| _Myt & | operator= (_Myt &&_Right) | 
|  | 
| void | _Assign_rv (_Myt &&_Right) | 
|  | 
| long | use_count () const _NOEXCEPT | 
|  | 
| void | _Swap (_Ptr_base &_Right) | 
|  | 
| template<class _Ty2 > | 
| bool | owner_before (const _Ptr_base< _Ty2 > &_Right) const | 
|  | 
| void * | _Get_deleter (const _XSTD2 type_info &_Typeid) const | 
|  | 
| _Ty * | _Get () const | 
|  | 
| bool | _Expired () const | 
|  | 
| void | _Decref () | 
|  | 
| void | _Reset () | 
|  | 
| template<class _Ty2 > | 
| void | _Reset (const _Ptr_base< _Ty2 > &_Other) | 
|  | 
| template<class _Ty2 > | 
| void | _Reset (const _Ptr_base< _Ty2 > &_Other, bool _Throw) | 
|  | 
| template<class _Ty2 > | 
| void | _Reset (const _Ptr_base< _Ty2 > &_Other, const _Static_tag &) | 
|  | 
| template<class _Ty2 > | 
| void | _Reset (const _Ptr_base< _Ty2 > &_Other, const _Const_tag &) | 
|  | 
| template<class _Ty2 > | 
| void | _Reset (const _Ptr_base< _Ty2 > &_Other, const _Dynamic_tag &) | 
|  | 
| template<class _Ty2 > | 
| void | _Reset (auto_ptr< _Ty2 > &&_Other) | 
|  | 
| template<class _Ty2 > | 
| void | _Reset (_Ty *_Ptr, const _Ptr_base< _Ty2 > &_Other) | 
|  | 
| void | _Reset (_Ty *_Other_ptr, _Ref_count_base *_Other_rep) | 
|  | 
| void | _Reset (_Ty *_Other_ptr, _Ref_count_base *_Other_rep, bool _Throw) | 
|  | 
| void | _Reset0 (_Ty *_Other_ptr, _Ref_count_base *_Other_rep) | 
|  | 
| void | _Decwref () | 
|  | 
| void | _Resetw () | 
|  | 
| template<class _Ty2 > | 
| void | _Resetw (const _Ptr_base< _Ty2 > &_Other) | 
|  | 
| template<class _Ty2 > | 
| void | _Resetw (const _Ty2 *_Other_ptr, _Ref_count_base *_Other_rep) | 
|  | 
| template<class _Ty2 > | 
| void | _Resetw (_Ty2 *_Other_ptr, _Ref_count_base *_Other_rep) | 
|  |