ITK  6.0.0
Insight Toolkit
Public Types | Public Member Functions | Private Attributes | List of all members
itk::WeakPointer< TObjectType > Class Template Reference

#include <itkWeakPointer.h>

Detailed Description

template<typename TObjectType>
class itk::WeakPointer< TObjectType >

Implements a weak reference to an object.

WeakPointer implements a weak reference to an object. A natural interface to the class is defined by operator -> (and *) among others. WeakPointer is really nothing more than a standard pointer. It is used to call attention to the fact that it does not adjust the reference count of an object like SmartPointer does. WeakPointer is used internally to Insight to manage (break) reference counting loops. At some point, an object may keep track of how many objects hold weak references to itself. In all cases, however, an outstanding weak reference will not keep an object from destructing.

Definition at line 44 of file itkWeakPointer.h.

Public Types

using ObjectType = TObjectType
 

Public Member Functions

ObjectTypeGetPointer () const
 
bool IsNotNull () const
 
bool IsNull () const
 
 operator ObjectType * () const
 
template<typename R >
bool operator!= (R r) const
 
ObjectTypeoperator-> () const
 
bool operator< (const WeakPointer &r) const
 
bool operator<= (const WeakPointer &r) const
 
template<typename R >
bool operator== (R r) const
 
bool operator> (const WeakPointer &r) const
 
bool operator>= (const WeakPointer &r) const
 
 WeakPointer ()=default
 
 WeakPointer (ObjectType *p)
 
 WeakPointer (std::nullptr_t)
 
ObjectTypePrint (std::ostream &os) const
 

Private Attributes

ObjectTypem_Pointer { nullptr }
 

Member Typedef Documentation

◆ ObjectType

template<typename TObjectType >
using itk::WeakPointer< TObjectType >::ObjectType = TObjectType

Extract information from template parameter.

Definition at line 48 of file itkWeakPointer.h.

Constructor & Destructor Documentation

◆ WeakPointer() [1/3]

template<typename TObjectType >
itk::WeakPointer< TObjectType >::WeakPointer ( )
default

Explicitly-defaulted default-constructor.

Note
The other five "special member functions" (copy-constructor, copy-assignment operator, move-constructor, move-assignment operator, and destructor) are defaulted implicitly, following the C++ "Rule of Zero".

◆ WeakPointer() [2/3]

template<typename TObjectType >
itk::WeakPointer< TObjectType >::WeakPointer ( std::nullptr_t  )
inline

Constructor, converting from nullptr.

Definition at line 58 of file itkWeakPointer.h.

◆ WeakPointer() [3/3]

template<typename TObjectType >
itk::WeakPointer< TObjectType >::WeakPointer ( ObjectType p)
inline

Constructor to pointer p.

Definition at line 61 of file itkWeakPointer.h.

Member Function Documentation

◆ GetPointer()

template<typename TObjectType >
ObjectType * itk::WeakPointer< TObjectType >::GetPointer ( ) const
inline

Access function to pointer.

Definition at line 90 of file itkWeakPointer.h.

References itk::WeakPointer< TObjectType >::m_Pointer.

◆ IsNotNull()

template<typename TObjectType >
bool itk::WeakPointer< TObjectType >::IsNotNull ( ) const
inline

Test if the pointer is not NULL.

Definition at line 97 of file itkWeakPointer.h.

References itk::WeakPointer< TObjectType >::m_Pointer.

◆ IsNull()

template<typename TObjectType >
bool itk::WeakPointer< TObjectType >::IsNull ( ) const
inline

Test if the pointer is NULL.

Definition at line 104 of file itkWeakPointer.h.

References itk::WeakPointer< TObjectType >::m_Pointer.

Referenced by itk::WeakPointer< TObjectType >::Print().

◆ operator ObjectType *()

template<typename TObjectType >
itk::WeakPointer< TObjectType >::operator ObjectType * ( ) const
inline

Return pointer to object.

Definition at line 69 of file itkWeakPointer.h.

References itk::WeakPointer< TObjectType >::m_Pointer.

◆ operator!=()

template<typename TObjectType >
template<typename R >
bool itk::WeakPointer< TObjectType >::operator!= ( r) const
inline

Definition at line 82 of file itkWeakPointer.h.

References itk::WeakPointer< TObjectType >::operator==().

◆ operator->()

template<typename TObjectType >
ObjectType * itk::WeakPointer< TObjectType >::operator-> ( ) const
inline

Overload operator ->.

Definition at line 66 of file itkWeakPointer.h.

References itk::WeakPointer< TObjectType >::m_Pointer.

◆ operator<()

template<typename TObjectType >
bool itk::WeakPointer< TObjectType >::operator< ( const WeakPointer< TObjectType > &  r) const
inline

Comparison of pointers. Less than comparison.

Definition at line 110 of file itkWeakPointer.h.

References itk::WeakPointer< TObjectType >::m_Pointer.

◆ operator<=()

template<typename TObjectType >
bool itk::WeakPointer< TObjectType >::operator<= ( const WeakPointer< TObjectType > &  r) const
inline

Comparison of pointers. Less than or equal to comparison.

Definition at line 124 of file itkWeakPointer.h.

References itk::WeakPointer< TObjectType >::m_Pointer.

◆ operator==()

template<typename TObjectType >
template<typename R >
bool itk::WeakPointer< TObjectType >::operator== ( r) const
inline

Template comparison operators.

Definition at line 74 of file itkWeakPointer.h.

References itk::WeakPointer< TObjectType >::m_Pointer.

Referenced by itk::WeakPointer< TObjectType >::operator!=().

◆ operator>()

template<typename TObjectType >
bool itk::WeakPointer< TObjectType >::operator> ( const WeakPointer< TObjectType > &  r) const
inline

Comparison of pointers. Greater than comparison.

Definition at line 118 of file itkWeakPointer.h.

References itk::WeakPointer< TObjectType >::m_Pointer.

◆ operator>=()

template<typename TObjectType >
bool itk::WeakPointer< TObjectType >::operator>= ( const WeakPointer< TObjectType > &  r) const
inline

Comparison of pointers. Greater than or equal to comparison.

Definition at line 132 of file itkWeakPointer.h.

References itk::WeakPointer< TObjectType >::m_Pointer.

◆ Print()

template<typename TObjectType >
ObjectType * itk::WeakPointer< TObjectType >::Print ( std::ostream &  os) const
inline

Function to print object pointed to.

Definition at line 139 of file itkWeakPointer.h.

References itk::WeakPointer< TObjectType >::IsNull(), and itk::WeakPointer< TObjectType >::m_Pointer.

Referenced by itk::operator<<().

Member Data Documentation

◆ m_Pointer

template<typename TObjectType >
ObjectType* itk::WeakPointer< TObjectType >::m_Pointer { nullptr }
private

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