![]() |
Home | Libraries | People | FAQ | More |
boost::interprocess::intrusive_ptr
// In header: <boost/interprocess/smart_ptr/intrusive_ptr.hpp> template<typename T, typename VoidPointer> class intrusive_ptr { public: // types typedef ; // Provides the type of the internal stored pointer. typedef ; // Provides the type of the stored pointer. // construct/copy/destruct () ; (, = ) ; (intrusive_ptr ) ; (intrusive_ptr &&) ; template<typename U> (intrusive_ptr< ) ; intrusive_ptr & (intrusive_ptr)) ; intrusive_ptr & (intrusive_ptr &&) ; template<typename U> intrusive_ptr & (intrusive_ptr< ) ; intrusive_ptr & () ; ~(); // public member functions () ; () ; () ; () ; () ; () ; () ; () ; (intrusive_ptr &) ; };
The intrusive_ptr class template stores a pointer to an object with an embedded reference count. intrusive_ptr is parameterized on T (the type of the object pointed to) and VoidPointer(a void pointer type that defines the type of pointer that intrusive_ptr will store). intrusive_ptr<T, void *> defines a class with a T* member whereas intrusive_ptr<T, offset_ptr<void> > defines a class with a offset_ptr<T> member. Relies on unqualified calls to:
void intrusive_ptr_add_ref(T * p) BOOST_NOEXCEPT; void intrusive_ptr_release(T * p) BOOST_NOEXCEPT;
with (p != 0)
The object is responsible for destroying itself.
intrusive_ptr
public
construct/copy/destruct() ;
Constructor. Initializes internal pointer to 0. Does not throw
( p, add_ref = ) ;
Constructor. Copies pointer and if "p" is not zero and "add_ref" is true calls intrusive_ptr_add_ref(to_raw_pointer(p)). Does not throw
(intrusive_ptr rhs) ;
Copy constructor. Copies the internal pointer and if "p" is not zero calls intrusive_ptr_add_ref(to_raw_pointer(p)). Does not throw
(intrusive_ptr && rhs) ;Move constructor. Moves the internal pointer. Does not throw.
template<typename U> (intrusive_ptr< rhs) ;
Constructor from related. Copies the internal pointer and if "p" is not zero calls intrusive_ptr_add_ref(to_raw_pointer(p)). Does not throw
intrusive_ptr & (intrusive_ptr) rhs) ;
Assignment operator. Equivalent to intrusive_ptr(r).swap(*this). Does not throw
intrusive_ptr & (intrusive_ptr && rhs) ;
Move Assignment operator Does not throw
template<typename U> intrusive_ptr & (intrusive_ptr< rhs) ;
Assignment from related. Equivalent to intrusive_ptr(r).swap(*this). Does not throw
intrusive_ptr & ( rhs) ;
Assignment from pointer. Equivalent to intrusive_ptr(r).swap(*this). Does not throw
~();Destructor. Calls reset(). Does not throw.
intrusive_ptr
public member functions() ;
Release internal pointer and set it to 0. If internal pointer is not 0, calls intrusive_ptr_release(to_raw_pointer(m_ptr)). Does not throw
() ;
Returns a reference to the internal pointer. Does not throw
() ;
Returns a reference to the internal pointer. Does not throw
() ;
Returns *get(). Does not throw
() ;
Returns *get(). Does not throw
() ;
Returns get(). Does not throw
() ;
Conversion to boolean. Does not throw
() ;
Not operator. Does not throw
(intrusive_ptr & rhs) ;
Exchanges the contents of the two smart pointers. Does not throw