Open Search
    Argument Class Reference

    #include <reflection_invocation.h>

    Classes

    struct  GetHelper
     
    struct  GetHelper< T, typename std::enable_if< STD_IS_REPLACEMENT(reference, T)>::type >
     
    struct  GetHelper< T, typename std::enable_if< STD_IS_REPLACEMENT(scalar, T)>::type >
     

    Public Member Functions

     Argument ()
     
    Result< void > MoveFrom (const ParameterType &type, Data &data, BaseArray< Data > &storage)
     
    Result< DataToData (const ParameterType &type) const
     
    template<typename T >
    std::conditional< STD_IS_REPLACEMENT(scalar, T)||STD_IS_REPLACEMENT(reference, T), T, T && >::type Get () const
     
    Generic * PrivateGetPointerValuePointer ()
     
    Generic * PrivateGetPointerValue ()
     
    template<>
    Float32 Get () const
     
    template<>
    Float64 Get () const
     

    Static Public Member Functions

    static Result< ArgumentFromData (const ParameterType &type, Data &data, BaseArray< Data > &storage)
     
    template<typename T >
    static Argument ByReference (T &&value)
     
    template<typename T , typename = typename std::enable_if<!STD_IS_REPLACEMENT(scalar, T)>::type>
    static Argument ByValue (T &value)
     
    template<typename T , typename = typename std::enable_if<STD_IS_REPLACEMENT(scalar, T)>::type>
    static Argument ByValue (T value)
     
    template<typename T , typename = typename std::enable_if<!STD_IS_REPLACEMENT(scalar, T)>::type>
    static Argument For (typename std::remove_reference< T >::type &value)
     
    template<typename T , typename = typename std::enable_if<STD_IS_REPLACEMENT(scalar, T)>::type>
    static Argument For (T value)
     

    Private Member Functions

     Argument (Char x)
     
     Argument (Int16 x)
     
     Argument (Int32 x)
     
     Argument (Int64 x)
     
     Argument (Float32 x)
     
     Argument (Float64 x)
     
     Argument (Generic *x)
     

    Private Attributes

    union {
       Char   _charValue
     
       Int16   _int16Value
     
       Int32   _int32Value
     
       Int64   _int64Value
     
       Float32   _float32Value
     
       Float64   _float64Value
     
       Generic *   _pointerValue
     
    }; 
     

    Constructor & Destructor Documentation

    ◆ Argument() [1/8]

    Argument ( )

    ◆ Argument() [2/8]

    Argument ( Char  x)
    explicitprivate

    ◆ Argument() [3/8]

    Argument ( Int16  x)
    explicitprivate

    ◆ Argument() [4/8]

    Argument ( Int32  x)
    explicitprivate

    ◆ Argument() [5/8]

    Argument ( Int64  x)
    explicitprivate

    ◆ Argument() [6/8]

    Argument ( Float32  x)
    explicitprivate

    ◆ Argument() [7/8]

    Argument ( Float64  x)
    explicitprivate

    ◆ Argument() [8/8]

    Argument ( Generic *  x)
    explicitprivate

    Member Function Documentation

    ◆ MoveFrom()

    Result<void> MoveFrom ( const ParameterType type,
    Data data,
    BaseArray< Data > &  storage 
    )

    ◆ ToData()

    Result<Data> ToData ( const ParameterType type) const

    ◆ FromData()

    static Result<Argument> FromData ( const ParameterType type,
    Data data,
    BaseArray< Data > &  storage 
    )
    static

    ◆ ByReference()

    static Argument ByReference ( T &&  value)
    static

    ◆ ByValue() [1/2]

    static Argument ByValue ( T &  value)
    static

    ◆ ByValue() [2/2]

    static Argument ByValue ( value)
    static

    ◆ For() [1/2]

    static Argument For ( typename std::remove_reference< T >::type value)
    static

    ◆ For() [2/2]

    static Argument For ( value)
    static

    ◆ Get() [1/3]

    std::conditional<STD_IS_REPLACEMENT(scalar, T) || STD_IS_REPLACEMENT(reference, T), T, T&&>::type Get ( ) const

    ◆ PrivateGetPointerValuePointer()

    Generic* PrivateGetPointerValuePointer ( )

    ◆ PrivateGetPointerValue()

    Generic* PrivateGetPointerValue ( )

    ◆ Get() [2/3]

    Float32 Get ( ) const

    ◆ Get() [3/3]

    Float64 Get ( ) const

    Member Data Documentation

    ◆ _charValue

    Char _charValue

    ◆ _int16Value

    Int16 _int16Value

    ◆ _int32Value

    Int32 _int32Value

    ◆ _int64Value

    Int64 _int64Value

    ◆ _float32Value

    Float32 _float32Value

    ◆ _float64Value

    Float64 _float64Value

    ◆ _pointerValue

    Generic* _pointerValue

    ◆ 

    union { ... }