Argument Class Reference

#include <reflection_invocation.h>

Classes

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

Public Member Functions

 Argument ()
 
 Argument (Generic *ptr, Int sizeOrByRef)
 
Result< void > MoveFrom (const ParameterType &type, Data &data, BaseArray< Data > &storage)
 
Result< DataToData (const ParameterType &type) const
 
template<typename T >
std::conditional< ByValueTest< 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<!ByValueTest<T>>::type>
static Argument ByValue (T &value)
 
template<typename T , typename = typename std::enable_if<ByValueTest<T>>::type>
static Argument ByValue (T value)
 
template<typename T , typename = typename std::enable_if<!ByValueTest<T>>::type>
static Argument For (typename std::remove_reference< T >::type &value)
 
template<typename T , typename = typename std::enable_if<ByValueTest<T>>::type>
static Argument For (T value)
 

Static Public Attributes

template<typename T >
static constexpr Bool ByValueTest
 

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/9]

Argument ( )

◆ Argument() [2/9]

Argument ( Generic *  ptr,
Int  sizeOrByRef 
)

◆ Argument() [3/9]

Argument ( Char  x)
explicitprivate

◆ Argument() [4/9]

Argument ( Int16  x)
explicitprivate

◆ Argument() [5/9]

Argument ( Int32  x)
explicitprivate

◆ Argument() [6/9]

Argument ( Int64  x)
explicitprivate

◆ Argument() [7/9]

Argument ( Float32  x)
explicitprivate

◆ Argument() [8/9]

Argument ( Float64  x)
explicitprivate

◆ Argument() [9/9]

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<ByValueTest<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

◆ ByValueTest

constexpr Bool ByValueTest
staticconstexpr

◆ _charValue

Char _charValue

◆ _int16Value

Int16 _int16Value

◆ _int32Value

Int32 _int32Value

◆ _int64Value

Int64 _int64Value

◆ _float32Value

Float32 _float32Value

◆ _float64Value

Float64 _float64Value

◆ _pointerValue

Generic* _pointerValue

◆ 

union { ... }