CommonLibSSE (Parapets fork)
RE::BSTPointerAndFlags< T, MASK > Class Template Reference

#include <BSTPointerAndFlags.h>

Classes

union  Storage
 

Public Types

using value_type = T
 
using element_type = typename T::element_type
 

Public Member Functions

constexpr BSTPointerAndFlags () noexcept=default
 
 BSTPointerAndFlags (const BSTPointerAndFlags &a_rhs)
 
constexpr BSTPointerAndFlags (BSTPointerAndFlags &&a_rhs) noexcept
 
constexpr BSTPointerAndFlags (std::nullptr_t) noexcept
 
 ~BSTPointerAndFlags ()
 
BSTPointerAndFlagsoperator= (const BSTPointerAndFlags &a_rhs)
 
BSTPointerAndFlagsoperator= (BSTPointerAndFlags &&a_rhs) noexcept
 
void reset () noexcept
 
element_typeget () const noexcept
 
element_typeoperator* () const noexcept
 
element_typeoperator-> () const noexcept
 
 operator bool () const noexcept
 

Protected Member Functions

constexpr void clear_flags () noexcept
 

Protected Attributes

Storage _storage
 

Static Protected Attributes

static constexpr std::uintptr_t FLAG_MASK = MASK
 

Member Typedef Documentation

◆ element_type

template<class T , std::uintptr_t MASK = 1>
using RE::BSTPointerAndFlags< T, MASK >::element_type = typename T::element_type

◆ value_type

template<class T , std::uintptr_t MASK = 1>
using RE::BSTPointerAndFlags< T, MASK >::value_type = T

Constructor & Destructor Documentation

◆ BSTPointerAndFlags() [1/4]

template<class T , std::uintptr_t MASK = 1>
constexpr RE::BSTPointerAndFlags< T, MASK >::BSTPointerAndFlags ( )
constexprdefaultnoexcept

◆ BSTPointerAndFlags() [2/4]

template<class T , std::uintptr_t MASK = 1>
RE::BSTPointerAndFlags< T, MASK >::BSTPointerAndFlags ( const BSTPointerAndFlags< T, MASK > &  a_rhs)
inline

◆ BSTPointerAndFlags() [3/4]

template<class T , std::uintptr_t MASK = 1>
constexpr RE::BSTPointerAndFlags< T, MASK >::BSTPointerAndFlags ( BSTPointerAndFlags< T, MASK > &&  a_rhs)
inlineconstexprnoexcept

◆ BSTPointerAndFlags() [4/4]

template<class T , std::uintptr_t MASK = 1>
constexpr RE::BSTPointerAndFlags< T, MASK >::BSTPointerAndFlags ( std::nullptr_t  )
inlineconstexprnoexcept

◆ ~BSTPointerAndFlags()

template<class T , std::uintptr_t MASK = 1>
RE::BSTPointerAndFlags< T, MASK >::~BSTPointerAndFlags ( )
inline

Member Function Documentation

◆ clear_flags()

template<class T , std::uintptr_t MASK = 1>
constexpr void RE::BSTPointerAndFlags< T, MASK >::clear_flags ( )
inlineconstexprprotectednoexcept

◆ get()

template<class T , std::uintptr_t MASK = 1>
element_type* RE::BSTPointerAndFlags< T, MASK >::get ( ) const
inlinenoexcept

◆ operator bool()

template<class T , std::uintptr_t MASK = 1>
RE::BSTPointerAndFlags< T, MASK >::operator bool ( ) const
inlineexplicitnoexcept

◆ operator*()

template<class T , std::uintptr_t MASK = 1>
element_type& RE::BSTPointerAndFlags< T, MASK >::operator* ( ) const
inlinenoexcept

◆ operator->()

template<class T , std::uintptr_t MASK = 1>
element_type* RE::BSTPointerAndFlags< T, MASK >::operator-> ( ) const
inlinenoexcept

◆ operator=() [1/2]

template<class T , std::uintptr_t MASK = 1>
BSTPointerAndFlags& RE::BSTPointerAndFlags< T, MASK >::operator= ( BSTPointerAndFlags< T, MASK > &&  a_rhs)
inlinenoexcept

◆ operator=() [2/2]

template<class T , std::uintptr_t MASK = 1>
BSTPointerAndFlags& RE::BSTPointerAndFlags< T, MASK >::operator= ( const BSTPointerAndFlags< T, MASK > &  a_rhs)
inline

◆ reset()

template<class T , std::uintptr_t MASK = 1>
void RE::BSTPointerAndFlags< T, MASK >::reset ( )
inlinenoexcept

Member Data Documentation

◆ _storage

template<class T , std::uintptr_t MASK = 1>
Storage RE::BSTPointerAndFlags< T, MASK >::_storage
protected

◆ FLAG_MASK

template<class T , std::uintptr_t MASK = 1>
constexpr std::uintptr_t RE::BSTPointerAndFlags< T, MASK >::FLAG_MASK = MASK
staticconstexprprotected

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