OptDefaultStorage< T > Class Template Reference

#include <optional.h>

Public Member Functions

 OptDefaultStorage ()
 
 OptDefaultStorage (NO_VALUE_TYPE)
 
OptDefaultStorageoperator= (NO_VALUE_TYPE)
 
template<typename U , typename = typename std::enable_if<STD_IS_REPLACEMENT(constructible, T, const U&)>::type>
 OptDefaultStorage (const OptDefaultStorage< U > &src)
 
template<typename U , typename = typename std::enable_if<STD_IS_REPLACEMENT(assignable, T, const U&)>::type>
OptDefaultStorageoperator= (const OptDefaultStorage< U > &src)
 
template<typename U , typename = typename std::enable_if<STD_IS_REPLACEMENT(constructible, T, U&&)>::type>
 OptDefaultStorage (OptDefaultStorage< U > &&src)
 
template<typename U , typename = typename std::enable_if<STD_IS_REPLACEMENT(assignable, T, U&&)>::type>
OptDefaultStorageoperator= (OptDefaultStorage< U > &&src)
 
template<typename U >
 OptDefaultStorage (U &&value)
 
template<typename U >
OptDefaultStorageoperator= (U &&value)
 
template<typename ... ARGS>
 OptDefaultStorage (IN_PLACE_TYPE, ARGS &&... args)
 
template<typename ... ARGS>
void Emplace (ARGS &&... args)
 
Result< void > CopyFrom (const OptDefaultStorage &src)
 
 ~OptDefaultStorage ()
 
T & GetValueRef ()
 
const T & GetValueRef () const
 
Bool HasValue () const
 

Public Attributes

return * this
 
_valueStorage
 

Private Member Functions

template<typename U >
void CopyConstruct (const OptDefaultStorage< U > &src)
 
template<typename U >
void CopyAssign (const OptDefaultStorage< U > &src)
 
template<typename U >
void MoveConstruct (OptDefaultStorage< U > &&src)
 
template<typename U >
void MoveAssign (OptDefaultStorage< U > &&src)
 
void ClearValue ()
 
void Destruct ()
 

Private Attributes

Bool _hasValue
 
union {
   T   _valueStorage
 
}; 
 

Constructor & Destructor Documentation

◆ OptDefaultStorage() [1/6]

◆ OptDefaultStorage() [2/6]

◆ OptDefaultStorage() [3/6]

OptDefaultStorage ( const OptDefaultStorage< U > &  src)

◆ OptDefaultStorage() [4/6]

◆ OptDefaultStorage() [5/6]

OptDefaultStorage ( U &&  value)
explicit

◆ OptDefaultStorage() [6/6]

OptDefaultStorage ( IN_PLACE_TYPE  ,
ARGS &&...  args 
)
explicit

◆ ~OptDefaultStorage()

Member Function Documentation

◆ operator=() [1/4]

OptDefaultStorage& operator= ( NO_VALUE_TYPE  )

◆ operator=() [2/4]

OptDefaultStorage& operator= ( const OptDefaultStorage< U > &  src)

◆ operator=() [3/4]

OptDefaultStorage& operator= ( OptDefaultStorage< U > &&  src)

◆ operator=() [4/4]

OptDefaultStorage& operator= ( U &&  value)

◆ Emplace()

void Emplace ( ARGS &&...  args)

◆ CopyFrom()

Result<void> CopyFrom ( const OptDefaultStorage< T > &  src)

◆ GetValueRef() [1/2]

T& GetValueRef ( )

◆ GetValueRef() [2/2]

const T& GetValueRef ( ) const

◆ HasValue()

Bool HasValue ( ) const

◆ CopyConstruct()

void CopyConstruct ( const OptDefaultStorage< U > &  src)
private

◆ CopyAssign()

void CopyAssign ( const OptDefaultStorage< U > &  src)
private

◆ MoveConstruct()

void MoveConstruct ( OptDefaultStorage< U > &&  src)
private

◆ MoveAssign()

void MoveAssign ( OptDefaultStorage< U > &&  src)
private

◆ ClearValue()

void ClearValue ( )
private

◆ Destruct()

void Destruct ( )
private

Member Data Documentation

◆ this

return * this

◆ _hasValue

Bool _hasValue
private

◆ _valueStorage

T _valueStorage

◆ 

union { ... }