OpenBarnyard
 
Loading...
Searching...
No Matches
T2ManagedPtr< T > Class Template Reference

#include <T2ManagedPtr.h>

Public Member Functions

 T2ManagedPtr ()
 
 T2ManagedPtr (const T2ManagedPtr &a_rOther)=delete
 
 T2ManagedPtr (T2ManagedPtr &&a_rOther)
 
 ~T2ManagedPtr ()
 
TBOOL IsValid () const
 
TBOOL Destroy ()
 
T * Get ()
 
const T * Get () const
 
T * operator-> ()
 
const T * operator-> () const
 
T2ManagedPtroperator= (const T2ManagedPtr &a_rOther)=delete
 

Static Public Member Functions

template<class... Args>
static T2ManagedPtr New (Args &&... args)
 

Detailed Description

template<typename T>
class T2ManagedPtr< T >

Definition at line 11 of file T2ManagedPtr.h.

Constructor & Destructor Documentation

◆ T2ManagedPtr() [1/3]

template<typename T>
T2ManagedPtr< T >::T2ManagedPtr ( )
inline

Definition at line 15 of file T2ManagedPtr.h.

16 : m_pRawPtr( TNULL )
17 {}

◆ T2ManagedPtr() [2/3]

template<typename T>
T2ManagedPtr< T >::T2ManagedPtr ( const T2ManagedPtr< T > & a_rOther)
delete

◆ T2ManagedPtr() [3/3]

template<typename T>
T2ManagedPtr< T >::T2ManagedPtr ( T2ManagedPtr< T > && a_rOther)
inline

Definition at line 23 of file T2ManagedPtr.h.

24 {
25 m_pRawPtr = a_rOther.m_pRawPtr;
26 a_rOther.m_pRawPtr = TNULL;
27 }

◆ ~T2ManagedPtr()

template<typename T>
T2ManagedPtr< T >::~T2ManagedPtr ( )
inline

Definition at line 30 of file T2ManagedPtr.h.

31 {
32 if ( m_pRawPtr )
33 delete m_pRawPtr;
34 }

Member Function Documentation

◆ Destroy()

template<typename T>
TBOOL T2ManagedPtr< T >::Destroy ( )
inline

Definition at line 43 of file T2ManagedPtr.h.

44 {
45 if ( m_pRawPtr )
46 {
47 delete m_pRawPtr;
48 m_pRawPtr = TNULL;
49
50 return TTRUE;
51 }
52
53 return TFALSE;
54 }

◆ Get() [1/2]

template<typename T>
T * T2ManagedPtr< T >::Get ( )
inline

Definition at line 56 of file T2ManagedPtr.h.

56{ return TREINTERPRETCAST( T*, m_pRawPtr ); }
#define TREINTERPRETCAST(TYPE, VALUE)
Definition Defines.h:68

◆ Get() [2/2]

template<typename T>
const T * T2ManagedPtr< T >::Get ( ) const
inline

Definition at line 57 of file T2ManagedPtr.h.

57{ return TREINTERPRETCAST( const T*, m_pRawPtr ); }

◆ IsValid()

template<typename T>
TBOOL T2ManagedPtr< T >::IsValid ( ) const
inline

Definition at line 37 of file T2ManagedPtr.h.

38 {
39 return m_pRawPtr;
40 }

◆ New()

template<typename T>
template<class... Args>
static T2ManagedPtr T2ManagedPtr< T >::New ( Args &&... args)
inlinestatic

Definition at line 66 of file T2ManagedPtr.h.

67 {
68 // Allocate memory
69 T* pObject = new T( std::forward<Args>( args )... );
70
71 return T2ManagedPtr{ .m_pRawPtr = pObject };
72 }

◆ operator->() [1/2]

template<typename T>
T * T2ManagedPtr< T >::operator-> ( )
inline

Definition at line 59 of file T2ManagedPtr.h.

59{ return Get(); }

◆ operator->() [2/2]

template<typename T>
const T * T2ManagedPtr< T >::operator-> ( ) const
inline

Definition at line 60 of file T2ManagedPtr.h.

60{ return Get(); }

◆ operator=()

template<typename T>
T2ManagedPtr & T2ManagedPtr< T >::operator= ( const T2ManagedPtr< T > & a_rOther)
delete

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