OpenLibrary
|
Copyable data smart pointer. More...
#include <data_ptr.hpp>
Public Types | |
typedef void(* | Deleter) (T *) |
deleter for hold object | |
typedef void(* | Copier) (T *&, const T *) |
interface of copying function | |
Public Member Functions | |
data_ptr (T *ptr=nullptr, Deleter d=&OpenLibrary_CopyPtr::deleter, Copier c=&OpenLibrary_CopyPtr::copier) | |
Constructor. More... | |
data_ptr (const data_ptr< T > &other) | |
Copy constructor. More... | |
data_ptr (data_ptr< T > &&other) | |
Move constructor. More... | |
data_ptr & | operator= (T *ptr) |
data_ptr & | operator= (const data_ptr< T > &other) |
T * | operator-> () |
const T * | operator-> () const |
T & | operator* () |
const T & | operator* () const |
T * | get () |
const T * | get () const |
Copyable data smart pointer.
When data_ptr is copied, it makes a copy of hold object. So it behaves similarly std::shared_ptr, but instead of pointing to the same data a copy of data occurs. data_ptr can be used for storing class' private data which on class copy should also be copied. operator= of data_ptr and copy constructor of data_ptr are calling copy constructor of encapsulated type.
|
inline |
Constructor.
Constructs data_ptr object and stores pointer to object of type T inside. data_ptr takes ownership over passed pointer.
|
inline |
|
inline |