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

Very basic smart pointer. More...

#include <UniquePtr.hpp>

Collaboration diagram for AH::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]

template<class T>
AH::UniquePtr< T >::UniquePtr ( )
default

◆ UniquePtr() [2/4]

template<class T>
AH::UniquePtr< T >::UniquePtr ( T *  p)
inlineexplicit

Definition at line 24 of file UniquePtr.hpp.

◆ UniquePtr() [3/4]

template<class T>
AH::UniquePtr< T >::UniquePtr ( const UniquePtr< T > &  )
delete

◆ UniquePtr() [4/4]

template<class T>
template<class U >
AH::UniquePtr< T >::UniquePtr ( UniquePtr< U > &&  r)
inline

Definition at line 27 of file UniquePtr.hpp.

◆ ~UniquePtr()

template<class T>
AH::UniquePtr< T >::~UniquePtr ( )
inline

Definition at line 31 of file UniquePtr.hpp.

Member Function Documentation

◆ operator=() [1/2]

template<class T>
UniquePtr& AH::UniquePtr< T >::operator= ( const UniquePtr< T > &  )
delete

◆ operator=() [2/2]

template<class T>
UniquePtr<T>& AH::UniquePtr< T >::operator= ( UniquePtr< T > &&  r)
inline

Definition at line 34 of file UniquePtr.hpp.

◆ reset()

template<class T>
void AH::UniquePtr< T >::reset ( T *  newP = nullptr)
inline

Definition at line 39 of file UniquePtr.hpp.

◆ release()

template<class T>
T* AH::UniquePtr< T >::release ( )
inline

Definition at line 45 of file UniquePtr.hpp.

◆ operator bool()

template<class T>
AH::UniquePtr< T >::operator bool ( ) const
inlineexplicit

Definition at line 51 of file UniquePtr.hpp.

◆ get() [1/2]

template<class T>
T* AH::UniquePtr< T >::get ( )
inline

Definition at line 53 of file UniquePtr.hpp.

◆ get() [2/2]

template<class T>
const T* AH::UniquePtr< T >::get ( ) const
inline

Definition at line 54 of file UniquePtr.hpp.

◆ operator->() [1/2]

template<class T>
T* AH::UniquePtr< T >::operator-> ( )
inline

Definition at line 56 of file UniquePtr.hpp.

◆ operator->() [2/2]

template<class T>
const T* AH::UniquePtr< T >::operator-> ( ) const
inline

Definition at line 57 of file UniquePtr.hpp.

◆ operator*() [1/2]

template<class T>
T& AH::UniquePtr< T >::operator* ( )
inline

Definition at line 58 of file UniquePtr.hpp.

◆ operator*() [2/2]

template<class T>
const T& AH::UniquePtr< T >::operator* ( ) const
inline

Definition at line 59 of file UniquePtr.hpp.

Member Data Documentation

◆ p

template<class T>
T* AH::UniquePtr< T >::p = nullptr
private

Definition at line 62 of file UniquePtr.hpp.


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