Smart pointer for polymorphic classes with a clone() method.
No shared copies, that is, each poly_ptr<T> owns a unique instance of T. Copying a poly_ptr<T> invokes the copy operator for T.
Definition at line 26 of file poly_ptr.h.
#include <mrpt/utils/poly_ptr.h>

Public Types | |
| typedef T | value_type |
| typedef internal::CopyCloner< T > | copier_t |
Public Member Functions | |
| poly_ptr (T *ptr) | |
| Ctor from a pointer; takes ownership. More... | |
| poly_ptr () | |
| Default ctor; init to nullptr. More... | |
| poly_ptr (const poly_ptr< T > &o) | |
copy ctor: makes a copy of the object via clone() More... | |
| poly_ptr< T > & | operator= (const poly_ptr< T > &o) |
| copy operator More... | |
| void | move_from (generic_copier_ptr &o) |
| T * | operator-> () |
| const T * | operator-> () const |
| T & | operator* (void) |
| const T & | operator* (void) const |
| T * | get () |
| const T * | get () const |
| operator bool () const | |
| bool | operator! (void) const |
| T * | release () |
| Releases the pointer (do not destroy the object) More... | |
| void | reset (T *ptr=NULL) |
| void | resetDefaultCtor () |
Protected Attributes | |
| T * | m_ptr |
Private Types | |
| typedef internal::generic_copier_ptr< T, internal::CopyCloner< T > > | ptr_base_t |
|
inherited |
Definition at line 50 of file generic_copier_ptr.h.
|
private |
Definition at line 29 of file poly_ptr.h.
|
inherited |
Definition at line 49 of file generic_copier_ptr.h.
|
inlineexplicit |
Ctor from a pointer; takes ownership.
Definition at line 32 of file poly_ptr.h.
|
inline |
Default ctor; init to nullptr.
Definition at line 34 of file poly_ptr.h.
|
inline |
copy ctor: makes a copy of the object via clone()
Definition at line 36 of file poly_ptr.h.
|
inlineinherited |
Definition at line 96 of file generic_copier_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, Copier >::m_ptr.
|
inlineinherited |
Definition at line 97 of file generic_copier_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, Copier >::m_ptr.
|
inlineinherited |
Definition at line 59 of file generic_copier_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, Copier >::m_ptr.
|
inlineinherited |
Definition at line 99 of file generic_copier_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, Copier >::m_ptr.
|
inlineinherited |
Definition at line 100 of file generic_copier_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, Copier >::m_ptr.
|
inlineinherited |
Definition at line 87 of file generic_copier_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, Copier >::m_ptr.
|
inlineinherited |
Definition at line 91 of file generic_copier_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, Copier >::m_ptr.
|
inlineinherited |
Definition at line 78 of file generic_copier_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, Copier >::m_ptr.
|
inlineinherited |
Definition at line 82 of file generic_copier_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, Copier >::m_ptr.
|
inline |
copy operator
Definition at line 38 of file poly_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, internal::CopyCloner< T > >::m_ptr, and mrpt::utils::internal::generic_copier_ptr< T, internal::CopyCloner< T > >::reset().
|
inlineinherited |
Releases the pointer (do not destroy the object)
Definition at line 103 of file generic_copier_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, Copier >::m_ptr.
|
inlineinherited |
Definition at line 109 of file generic_copier_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, Copier >::m_ptr.
Referenced by mrpt::utils::poly_ptr< T >::operator=(), and TEST().
|
inlineinherited |
Definition at line 114 of file generic_copier_ptr.h.
References mrpt::utils::internal::generic_copier_ptr< T, Copier >::reset().
|
protectedinherited |
Definition at line 117 of file generic_copier_ptr.h.
Referenced by mrpt::utils::poly_ptr< T >::operator=().
| Page generated by Doxygen 1.8.14 for MRPT 1.5.9 Git: 690a4699f Wed Apr 15 19:29:53 2020 +0200 at miƩ abr 15 19:30:12 CEST 2020 |