libcopp  1.3.0
Public Types | Public Member Functions | Private Attributes | Friends
libcopp::util::intrusive_ptr< T > Class Template Reference

#include <intrusive_ptr.h>

Collaboration diagram for libcopp::util::intrusive_ptr< T >:
Collaboration graph

Public Types

typedef intrusive_ptr< T > self_type
 
typedef T element_type
 

Public Member Functions

UTIL_CONFIG_CONSTEXPR intrusive_ptr () UTIL_CONFIG_NOEXCEPT
 
 intrusive_ptr (T *p, bool add_ref=true)
 
template<typename U >
 intrusive_ptr (intrusive_ptr< U > const &rhs)
 
 intrusive_ptr (self_type const &rhs)
 
 ~intrusive_ptr ()
 
template<typename U >
intrusive_ptroperator= (intrusive_ptr< U > const &rhs)
 
self_typeoperator= (self_type const &rhs)
 
void reset () UTIL_CONFIG_NOEXCEPT
 
void reset (element_type *rhs)
 
void reset (element_type *rhs, bool add_ref)
 
element_typeget () const UTIL_CONFIG_NOEXCEPT
 
element_typedetach () UTIL_CONFIG_NOEXCEPT
 
element_typeoperator* () const
 
element_typeoperator-> () const
 
 operator bool () const UTIL_CONFIG_NOEXCEPT
 
bool operator! () const UTIL_CONFIG_NOEXCEPT
 
void swap (intrusive_ptr &rhs) UTIL_CONFIG_NOEXCEPT
 

Private Attributes

element_typepx
 

Friends

template<typename U >
class intrusive_ptr
 

Detailed Description

template<typename T>
class libcopp::util::intrusive_ptr< T >

Definition at line 46 of file intrusive_ptr.h.

Member Typedef Documentation

template<typename T>
typedef T libcopp::util::intrusive_ptr< T >::element_type

Definition at line 49 of file intrusive_ptr.h.

template<typename T>
typedef intrusive_ptr<T> libcopp::util::intrusive_ptr< T >::self_type

Definition at line 48 of file intrusive_ptr.h.

Constructor & Destructor Documentation

template<typename T>
UTIL_CONFIG_CONSTEXPR libcopp::util::intrusive_ptr< T >::intrusive_ptr ( )
inline

Definition at line 51 of file intrusive_ptr.h.

Referenced by libcopp::util::intrusive_ptr< T >::operator=().

template<typename T>
libcopp::util::intrusive_ptr< T >::intrusive_ptr ( T *  p,
bool  add_ref = true 
)
inline

Definition at line 53 of file intrusive_ptr.h.

References libcopp::util::intrusive_ptr< T >::px.

template<typename T>
template<typename U >
libcopp::util::intrusive_ptr< T >::intrusive_ptr ( intrusive_ptr< U > const &  rhs)
inline

Definition at line 60 of file intrusive_ptr.h.

References libcopp::util::intrusive_ptr< T >::px.

template<typename T>
libcopp::util::intrusive_ptr< T >::intrusive_ptr ( self_type const &  rhs)
inline

Definition at line 66 of file intrusive_ptr.h.

References libcopp::util::intrusive_ptr< T >::px.

template<typename T>
libcopp::util::intrusive_ptr< T >::~intrusive_ptr ( )
inline

Definition at line 72 of file intrusive_ptr.h.

References libcopp::util::intrusive_ptr< T >::px.

Member Function Documentation

template<typename T>
element_type* libcopp::util::intrusive_ptr< T >::detach ( )
inline

Definition at line 123 of file intrusive_ptr.h.

References libcopp::util::intrusive_ptr< T >::px.

template<typename T>
element_type* libcopp::util::intrusive_ptr< T >::get ( ) const
inline
template<typename T>
libcopp::util::intrusive_ptr< T >::operator bool ( ) const
inline

Definition at line 140 of file intrusive_ptr.h.

References libcopp::util::intrusive_ptr< T >::px.

template<typename T>
bool libcopp::util::intrusive_ptr< T >::operator! ( ) const
inline

Definition at line 142 of file intrusive_ptr.h.

References libcopp::util::intrusive_ptr< T >::px.

template<typename T>
element_type& libcopp::util::intrusive_ptr< T >::operator* ( ) const
inline

Definition at line 129 of file intrusive_ptr.h.

References libcopp::util::intrusive_ptr< T >::px.

template<typename T>
element_type* libcopp::util::intrusive_ptr< T >::operator-> ( ) const
inline

Definition at line 134 of file intrusive_ptr.h.

References libcopp::util::intrusive_ptr< T >::px.

template<typename T>
template<typename U >
intrusive_ptr& libcopp::util::intrusive_ptr< T >::operator= ( intrusive_ptr< U > const &  rhs)
inline
template<typename T>
self_type& libcopp::util::intrusive_ptr< T >::operator= ( self_type const &  rhs)
inline

Definition at line 110 of file intrusive_ptr.h.

template<typename T>
void libcopp::util::intrusive_ptr< T >::reset ( )
inline
template<typename T>
void libcopp::util::intrusive_ptr< T >::reset ( element_type rhs)
inline

Definition at line 117 of file intrusive_ptr.h.

template<typename T>
void libcopp::util::intrusive_ptr< T >::reset ( element_type rhs,
bool  add_ref 
)
inline

Definition at line 119 of file intrusive_ptr.h.

template<typename T>
void libcopp::util::intrusive_ptr< T >::swap ( intrusive_ptr< T > &  rhs)
inline

Friends And Related Function Documentation

template<typename T>
template<typename U >
friend class intrusive_ptr
friend

Definition at line 79 of file intrusive_ptr.h.

Field Documentation

template<typename T>
element_type* libcopp::util::intrusive_ptr< T >::px
private

The documentation for this class was generated from the following file: