Kicking it Olde Sküül! Burgerlib on Github Follow Olde Sküül on Twitter Burgerbecky on LinkedIn Burgerbecky on LinkedIn
Loading...
Searching...
No Matches
Burger::ArgumentType_Dispatch< T, size, bIsIntegral, bIsPointer > Struct Template Reference

Intrinsic data type dispatcher. More...

Public Member Functions

void operator() (ArgumentType_t *pThis, T) noexcept
 Intrinsic data type dispatchers.
 

Detailed Description

template<typename T, uintptr_t size, bool bIsIntegral, bool bIsPointer>
struct Burger::ArgumentType_Dispatch< T, size, bIsIntegral, bIsPointer >

Intrinsic data type dispatcher.


This template requires the type to be pre-broken down into three components, sizeof(), is_integral and is_pointer. A series of templates will capture intrinsic data of 1, 2, 4, or 8 bytes in size and mark the type appropriately. Special cases exist for float, double, bool and pointers.

In the case of a pointer, it will be subsequently dispatched to ArgumentType_DispatchPtr for further processing.

See also
ArgumentType_DispatchPtr and ArgumentType

Member Function Documentation

◆ operator()()

template<typename T , uintptr_t size, bool bIsIntegral, bool bIsPointer>
void Burger::ArgumentType_Dispatch< T, size, bIsIntegral, bIsPointer >::operator() ( ArgumentType_t * pThis,
T  )
inlinenoexcept

Intrinsic data type dispatchers.


This function will use the input type T to check if it's signed or unsigned. The template parameters will predetermine the width of the integer value so only whether it's signed or unsigned is the only test performed at compile time.

Note
T is assumed to be an intrinsic type. Pointers and references are not permitted.
Parameters
pThisPointer to the ArgumentType_t structure to fill in.
Template Parameters
TIntrinsic value to be stored in ArgumentType_t
See also
ArgumentType_Dispatch and ArgumentType