Control Surface  1.1.1
MIDI Control Surface library for Arduino
Public Member Functions | Private Attributes | List of all members
UniquePtr< T > Class Template Reference

Very basic smart pointer. More...

#include <AH/Containers/UniquePtr.hpp>

Collaboration diagram for UniquePtr< T >:

Public Member Functions

 UniquePtr ()=default
 
 UniquePtr (T *p)
 
 UniquePtr (const UniquePtr &)=delete
 
template<class U >
 UniquePtr (UniquePtr< U > &&r)
 
 ~UniquePtr ()
 
UniquePtroperator= (const UniquePtr &)=delete
 
UniquePtr< T > & operator= (UniquePtr< T > &&r)
 
void reset (T *newP=nullptr)
 
T * release ()
 
 operator bool () const
 
T * get ()
 
const T * get () const
 
T * operator-> ()
 
const T * operator-> () const
 
T & operator* ()
 
const T & operator* () const
 

Private Attributes

T * p = nullptr
 

Detailed Description

template<class T>
class AH::UniquePtr< T >

Very basic smart pointer.

Doesn't support array types.

Template Parameters
TThe type of the pointee.

Definition at line 21 of file UniquePtr.hpp.

Constructor & Destructor Documentation

◆ UniquePtr() [1/4]

UniquePtr ( )
default

◆ UniquePtr() [2/4]

UniquePtr ( T *  p)
inlineexplicit

Definition at line 24 of file UniquePtr.hpp.

◆ UniquePtr() [3/4]

UniquePtr ( const UniquePtr< T > &  )
delete

◆ UniquePtr() [4/4]

UniquePtr ( UniquePtr< U > &&  r)
inline

Definition at line 27 of file UniquePtr.hpp.

◆ ~UniquePtr()

~UniquePtr ( )
inline

Definition at line 31 of file UniquePtr.hpp.

Member Function Documentation

◆ operator=() [1/2]

UniquePtr& operator= ( const UniquePtr< T > &  )
delete

◆ operator=() [2/2]

UniquePtr<T>& operator= ( UniquePtr< T > &&  r)
inline

Definition at line 34 of file UniquePtr.hpp.

◆ reset()

void reset ( T *  newP = nullptr)
inline

Definition at line 39 of file UniquePtr.hpp.

◆ release()

T* release ( )
inline

Definition at line 45 of file UniquePtr.hpp.

◆ operator bool()

operator bool ( ) const
inlineexplicit

Definition at line 51 of file UniquePtr.hpp.

◆ get() [1/2]

T* get ( )
inline

Definition at line 53 of file UniquePtr.hpp.

◆ get() [2/2]

const T* get ( ) const
inline

Definition at line 54 of file UniquePtr.hpp.

◆ operator->() [1/2]

T* operator-> ( )
inline

Definition at line 56 of file UniquePtr.hpp.

◆ operator->() [2/2]

const T* operator-> ( ) const
inline

Definition at line 57 of file UniquePtr.hpp.

◆ operator*() [1/2]

T& operator* ( )
inline

Definition at line 58 of file UniquePtr.hpp.

◆ operator*() [2/2]

const T& operator* ( ) const
inline

Definition at line 59 of file UniquePtr.hpp.

Member Data Documentation

◆ p

T* p = nullptr
private

Definition at line 62 of file UniquePtr.hpp.


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