Open Search
    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 { ... }