TaggedBaseRef< T, HANDLER, TAG, TAG_BITS, DEFAULT_VALUE, ENABLE_POINTER_CONVERSION > Class Template Reference

#include <taggedbaseref.h>

Public Types

using ReferencedType = T
 

Public Member Functions

 TaggedBaseRef ()
 
 TaggedBaseRef (T *ptr, TAG tag)
 
 TaggedBaseRef (const TaggedBaseRef &src)
 
 MAXON_OPERATOR_COPY_ASSIGNMENT (TaggedBaseRef)
 
 TaggedBaseRef (TaggedBaseRef &&src)
 
 MAXON_OPERATOR_MOVE_ASSIGNMENT (TaggedBaseRef)
 
 ~TaggedBaseRef ()
 
TaggedBaseRefoperator= (std::nullptr_t)
 
 operator T* () const
 
 operator Bool () const
 
T * operator-> () const
 
std::conditional< STD_IS_REPLACEMENT(same, const T, const void), DummyReturnType, T >::type & operator* () const
 
T * GetPointer () const
 
void SetPointer (T *ptr)
 
TAG GetTag () const
 
void SetTag (TAG t)
 
void Reset ()
 
 MAXON_OPERATOR_EQUALITY_HASHCODE (TaggedBaseRef, _ptr)
 
SFINAEHelper< String, T >::type ToString (const FormatStatement *format) const
 

Static Public Attributes

static const UInt TAG_MASK
 

Private Attributes

UInt _ptr
 

Member Typedef Documentation

◆ ReferencedType

using ReferencedType = T

Constructor & Destructor Documentation

◆ TaggedBaseRef() [1/4]

◆ TaggedBaseRef() [2/4]

TaggedBaseRef ( T *  ptr,
TAG  tag 
)

◆ TaggedBaseRef() [3/4]

TaggedBaseRef ( const TaggedBaseRef< T, HANDLER, TAG, TAG_BITS, DEFAULT_VALUE, ENABLE_POINTER_CONVERSION > &  src)

◆ TaggedBaseRef() [4/4]

TaggedBaseRef ( TaggedBaseRef< T, HANDLER, TAG, TAG_BITS, DEFAULT_VALUE, ENABLE_POINTER_CONVERSION > &&  src)

◆ ~TaggedBaseRef()

Member Function Documentation

◆ MAXON_OPERATOR_COPY_ASSIGNMENT()

MAXON_OPERATOR_COPY_ASSIGNMENT ( TaggedBaseRef< T, HANDLER, TAG, TAG_BITS, DEFAULT_VALUE, ENABLE_POINTER_CONVERSION >  )

◆ MAXON_OPERATOR_MOVE_ASSIGNMENT()

MAXON_OPERATOR_MOVE_ASSIGNMENT ( TaggedBaseRef< T, HANDLER, TAG, TAG_BITS, DEFAULT_VALUE, ENABLE_POINTER_CONVERSION >  )

◆ operator=()

TaggedBaseRef& operator= ( std::nullptr_t  )

◆ operator T*()

operator T* ( ) const

◆ operator Bool()

operator Bool ( ) const
explicit

◆ operator->()

T* operator-> ( ) const

◆ operator*()

std::conditional<STD_IS_REPLACEMENT(same, const T, const void), DummyReturnType, T>::type& operator* ( ) const

◆ GetPointer()

T* GetPointer ( ) const

◆ SetPointer()

void SetPointer ( T *  ptr)

◆ GetTag()

TAG GetTag ( ) const

◆ SetTag()

void SetTag ( TAG  t)

◆ Reset()

void Reset ( )

◆ MAXON_OPERATOR_EQUALITY_HASHCODE()

MAXON_OPERATOR_EQUALITY_HASHCODE ( TaggedBaseRef< T, HANDLER, TAG, TAG_BITS, DEFAULT_VALUE, ENABLE_POINTER_CONVERSION >  ,
_ptr   
)

◆ ToString()

SFINAEHelper<String, T>::type ToString ( const FormatStatement format) const

Member Data Documentation

◆ TAG_MASK

const UInt TAG_MASK
static

◆ _ptr

UInt _ptr
private