xapian-core  2.0.0
Public Member Functions | Private Types | Private Attributes | Friends | List of all members
Xapian::Internal::intrusive_ptr_nonnull< T > Class Template Reference

A normally non-NULL smart pointer using intrusive reference counting. More...

#include <intrusive_ptr.h>

+ Inheritance diagram for Xapian::Internal::intrusive_ptr_nonnull< T >:

Public Member Functions

 intrusive_ptr_nonnull (T *p) XAPIAN_NONNULL()
 
template<class U >
 intrusive_ptr_nonnull (intrusive_ptr_nonnull< U > const &rhs)
 
 intrusive_ptr_nonnull (intrusive_ptr_nonnull const &rhs)
 
 ~intrusive_ptr_nonnull ()
 
 intrusive_ptr_nonnull (intrusive_ptr_nonnull &&rhs)
 
intrusive_ptr_nonnulloperator= (intrusive_ptr_nonnull &&rhs)
 
template<class U >
 intrusive_ptr_nonnull (intrusive_ptr_nonnull< U > &&rhs)
 
template<class U >
intrusive_ptr_nonnulloperator= (intrusive_ptr_nonnull< U > &&rhs)
 
intrusive_ptr_nonnulloperator= (intrusive_ptr_nonnull const &rhs)
 
intrusive_ptr_nonnulloperator= (T *rhs) XAPIAN_NONNULL()
 
T * get () const
 
T & operator* () const
 
T * operator-> () const
 
void swap (intrusive_ptr_nonnull &rhs)
 

Private Types

typedef intrusive_ptr_nonnull this_type
 

Private Attributes

T * px
 

Friends

template<class U >
class intrusive_ptr_nonnull
 

Detailed Description

template<class T>
class Xapian::Internal::intrusive_ptr_nonnull< T >

A normally non-NULL smart pointer using intrusive reference counting.

The only case where it can be NULL is when it's been moved-from. Once moved from, the only valid operations are to destroy the smart pointer, or to assign or move assign to it (after which all operations are valid again).

Definition at line 223 of file intrusive_ptr.h.

Member Typedef Documentation

◆ this_type

Definition at line 227 of file intrusive_ptr.h.

Constructor & Destructor Documentation

◆ intrusive_ptr_nonnull() [1/5]

template<class T >
Xapian::Internal::intrusive_ptr_nonnull< T >::intrusive_ptr_nonnull ( T *  p)
inline

Definition at line 231 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr_nonnull< T >::px.

◆ intrusive_ptr_nonnull() [2/5]

template<class T >
template<class U >
Xapian::Internal::intrusive_ptr_nonnull< T >::intrusive_ptr_nonnull ( intrusive_ptr_nonnull< U > const &  rhs)
inline

Definition at line 237 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr_nonnull< T >::px.

◆ intrusive_ptr_nonnull() [3/5]

template<class T >
Xapian::Internal::intrusive_ptr_nonnull< T >::intrusive_ptr_nonnull ( intrusive_ptr_nonnull< T > const &  rhs)
inline

Definition at line 243 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr_nonnull< T >::px.

◆ ~intrusive_ptr_nonnull()

template<class T >
Xapian::Internal::intrusive_ptr_nonnull< T >::~intrusive_ptr_nonnull ( )
inline

Definition at line 248 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr_nonnull< T >::px.

◆ intrusive_ptr_nonnull() [4/5]

Definition at line 253 of file intrusive_ptr.h.

◆ intrusive_ptr_nonnull() [5/5]

template<class T >
template<class U >
Xapian::Internal::intrusive_ptr_nonnull< T >::intrusive_ptr_nonnull ( intrusive_ptr_nonnull< U > &&  rhs)
inline

Definition at line 267 of file intrusive_ptr.h.

Member Function Documentation

◆ get()

template<class T >
T* Xapian::Internal::intrusive_ptr_nonnull< T >::get ( ) const
inline

◆ operator*()

template<class T >
T& Xapian::Internal::intrusive_ptr_nonnull< T >::operator* ( ) const
inline

Definition at line 296 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr_nonnull< T >::px.

◆ operator->()

template<class T >
T* Xapian::Internal::intrusive_ptr_nonnull< T >::operator-> ( ) const
inline

Definition at line 301 of file intrusive_ptr.h.

References Xapian::Internal::intrusive_ptr_nonnull< T >::px.

◆ operator=() [1/4]

template<class T >
intrusive_ptr_nonnull& Xapian::Internal::intrusive_ptr_nonnull< T >::operator= ( intrusive_ptr_nonnull< T > &&  rhs)
inline

◆ operator=() [2/4]

template<class T >
intrusive_ptr_nonnull& Xapian::Internal::intrusive_ptr_nonnull< T >::operator= ( intrusive_ptr_nonnull< T > const &  rhs)
inline

◆ operator=() [3/4]

template<class T >
template<class U >
intrusive_ptr_nonnull& Xapian::Internal::intrusive_ptr_nonnull< T >::operator= ( intrusive_ptr_nonnull< U > &&  rhs)
inline

◆ operator=() [4/4]

template<class T >
intrusive_ptr_nonnull& Xapian::Internal::intrusive_ptr_nonnull< T >::operator= ( T *  rhs)
inline

◆ swap()

template<class T >
void Xapian::Internal::intrusive_ptr_nonnull< T >::swap ( intrusive_ptr_nonnull< T > &  rhs)
inline

Friends And Related Function Documentation

◆ intrusive_ptr_nonnull

template<class T >
template<class U >
friend class intrusive_ptr_nonnull
friend

Definition at line 264 of file intrusive_ptr.h.

Member Data Documentation

◆ px

template<class T >
T* Xapian::Internal::intrusive_ptr_nonnull< T >::px
private

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