28         if (!o) 
return nullptr;
    38         if (!o) 
return nullptr;
    39         T* n = 
dynamic_cast<T*
>(o->clone());
    41             throw std::runtime_error(
"error: clone() returned unexpected type");
    46 template <
typename T, 
typename Copier>
    75         if (
this == &o) 
return *
this;
    85         if (
this == &o) 
return *
this;
    96             throw std::runtime_error(
"dereferencing nullptr poly_ptr");
   103             throw std::runtime_error(
"dereferencing nullptr poly_ptr");
   111             throw std::runtime_error(
"dereferencing nullptr poly_ptr");
   118             throw std::runtime_error(
"dereferencing nullptr poly_ptr");
   122     const T* 
get() 
const { 
return m_ptr; }
   123     operator bool()
 const { 
return m_ptr != 
nullptr; }
   135         if (ptr == 
m_ptr) 
return;
   152 template <
typename T>
   160 template <
typename T>
 
generic_copier_ptr(generic_copier_ptr< T, Copier > &&o)
move ctor 
 
generic_copier_ptr< T, Copier > & operator=(const generic_copier_ptr< T, Copier > &o)
copy operator 
 
generic_copier_ptr(const generic_copier_ptr< T, Copier > &o)
copy ctor: makes a copy of the object via clone() 
 
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries. 
 
generic_copier_ptr< T, Copier > & operator=(generic_copier_ptr< T, Copier > &&o)
move operator 
 
const T & operator*() const
 
const T * operator->() const
 
T * release()
Releases the pointer (do not destroy the object) 
 
generic_copier_ptr()
Default ctor; init to nullptr. 
 
generic_copier_ptr(T *ptr)
Ctor from a pointer; takes ownership. 
 
void reset(T *ptr=nullptr)