Main MRPT website > C++ reference for MRPT 1.4.0
List of all members | Public Member Functions | Protected Attributes
mrpt::utils::non_copiable_ptr< T > Struct Template Reference

Detailed Description

template<class T>
struct mrpt::utils::non_copiable_ptr< T >

A wrapper class for pointers that can NOT be copied with "=" operator, raising an exception at runtime if a copy is attempted.

See also
CReferencedMemBlock, safe_ptr, non_copiable_ptr, copiable_NULL_ptr

Definition at line 125 of file safe_pointers.h.

#include <mrpt/utils/safe_pointers.h>

Inheritance diagram for mrpt::utils::non_copiable_ptr< T >:
Inheritance graph

Public Member Functions

 non_copiable_ptr ()
 
 non_copiable_ptr (const non_copiable_ptr< T > &o)
 
 non_copiable_ptr (const T *p)
 
non_copiable_ptr< T > & operator= (const T *p)
 
non_copiable_ptr< T > & operator= (const non_copiable_ptr< T > &)
 
virtual ~non_copiable_ptr ()
 
T & operator* ()
 
const T & operator* () const
 
T & operator[] (const size_t &i)
 
const T & operator[] (const size_t &i) const
 
void set (const T *p)
 This method can change the pointer, since the change is made explicitly, not through copy operators transparent to the user.
 
bool operator== (const T *o) const
 
bool operator== (const non_copiable_ptr_basic< T > &o) const
 
bool operator!= (const T *o) const
 
bool operator!= (const non_copiable_ptr_basic< T > &o) const
 
T *& get ()
 
const T * get () const
 
T ** getPtrToPtr ()
 
T *& operator-> ()
 
const T * operator-> () const
 

Protected Attributes

T * ptr
 

Constructor & Destructor Documentation

◆ non_copiable_ptr() [1/3]

template<class T >
mrpt::utils::non_copiable_ptr< T >::non_copiable_ptr ( )
inline

Definition at line 128 of file safe_pointers.h.

◆ non_copiable_ptr() [2/3]

template<class T >
mrpt::utils::non_copiable_ptr< T >::non_copiable_ptr ( const non_copiable_ptr< T > &  o)
inline

Definition at line 129 of file safe_pointers.h.

◆ non_copiable_ptr() [3/3]

template<class T >
mrpt::utils::non_copiable_ptr< T >::non_copiable_ptr ( const T *  p)
inline

Definition at line 130 of file safe_pointers.h.

◆ ~non_copiable_ptr()

template<class T >
virtual mrpt::utils::non_copiable_ptr< T >::~non_copiable_ptr ( )
inlinevirtual

Definition at line 137 of file safe_pointers.h.

Member Function Documentation

◆ get() [1/2]

template<class T >
T *& mrpt::utils::non_copiable_ptr_basic< T >::get ( )
inlineinherited

Definition at line 111 of file safe_pointers.h.

References mrpt::utils::non_copiable_ptr_basic< T >::ptr.

◆ get() [2/2]

template<class T >
const T * mrpt::utils::non_copiable_ptr_basic< T >::get ( ) const
inlineinherited

Definition at line 112 of file safe_pointers.h.

References mrpt::utils::non_copiable_ptr_basic< T >::ptr.

◆ getPtrToPtr()

template<class T >
T ** mrpt::utils::non_copiable_ptr_basic< T >::getPtrToPtr ( )
inlineinherited

Definition at line 114 of file safe_pointers.h.

References mrpt::utils::non_copiable_ptr_basic< T >::ptr.

◆ operator!=() [1/2]

template<class T >
bool mrpt::utils::non_copiable_ptr_basic< T >::operator!= ( const non_copiable_ptr_basic< T > &  o) const
inlineinherited

Definition at line 109 of file safe_pointers.h.

References mrpt::utils::non_copiable_ptr_basic< T >::ptr.

◆ operator!=() [2/2]

template<class T >
bool mrpt::utils::non_copiable_ptr_basic< T >::operator!= ( const T *  o) const
inlineinherited

Definition at line 108 of file safe_pointers.h.

References mrpt::utils::non_copiable_ptr_basic< T >::ptr.

◆ operator*() [1/2]

template<class T >
T & mrpt::utils::non_copiable_ptr< T >::operator* ( )
inline

Definition at line 139 of file safe_pointers.h.

References ASSERT_.

◆ operator*() [2/2]

template<class T >
const T & mrpt::utils::non_copiable_ptr< T >::operator* ( ) const
inline

Definition at line 140 of file safe_pointers.h.

References ASSERT_.

◆ operator->() [1/2]

template<class T >
T *& mrpt::utils::non_copiable_ptr_basic< T >::operator-> ( )
inlineinherited

Definition at line 116 of file safe_pointers.h.

References ASSERT_, and mrpt::utils::non_copiable_ptr_basic< T >::ptr.

◆ operator->() [2/2]

template<class T >
const T * mrpt::utils::non_copiable_ptr_basic< T >::operator-> ( ) const
inlineinherited

Definition at line 117 of file safe_pointers.h.

References ASSERT_, and mrpt::utils::non_copiable_ptr_basic< T >::ptr.

◆ operator=() [1/2]

template<class T >
non_copiable_ptr< T > & mrpt::utils::non_copiable_ptr< T >::operator= ( const non_copiable_ptr< T > &  )
inline

Definition at line 134 of file safe_pointers.h.

References THROW_EXCEPTION.

◆ operator=() [2/2]

template<class T >
non_copiable_ptr< T > & mrpt::utils::non_copiable_ptr< T >::operator= ( const T *  p)
inline

Definition at line 132 of file safe_pointers.h.

◆ operator==() [1/2]

template<class T >
bool mrpt::utils::non_copiable_ptr_basic< T >::operator== ( const non_copiable_ptr_basic< T > &  o) const
inlineinherited

Definition at line 106 of file safe_pointers.h.

References mrpt::utils::non_copiable_ptr_basic< T >::ptr.

◆ operator==() [2/2]

template<class T >
bool mrpt::utils::non_copiable_ptr_basic< T >::operator== ( const T *  o) const
inlineinherited

Definition at line 105 of file safe_pointers.h.

References mrpt::utils::non_copiable_ptr_basic< T >::ptr.

◆ operator[]() [1/2]

template<class T >
T & mrpt::utils::non_copiable_ptr< T >::operator[] ( const size_t &  i)
inline

Definition at line 142 of file safe_pointers.h.

References ASSERT_.

◆ operator[]() [2/2]

template<class T >
const T & mrpt::utils::non_copiable_ptr< T >::operator[] ( const size_t &  i) const
inline

Definition at line 143 of file safe_pointers.h.

References ASSERT_.

◆ set()

template<class T >
void mrpt::utils::non_copiable_ptr_basic< T >::set ( const T *  p)
inlineinherited

This method can change the pointer, since the change is made explicitly, not through copy operators transparent to the user.

Definition at line 101 of file safe_pointers.h.

References mrpt::utils::non_copiable_ptr_basic< T >::ptr.

Member Data Documentation

◆ ptr

template<class T >
T* mrpt::utils::non_copiable_ptr_basic< T >::ptr
protectedinherited



Page generated by Doxygen 1.9.6 for MRPT 1.4.0 SVN: at Wed Mar 22 09:54:56 UTC 2023