Kicking it Olde Sküül! Burgerlib on Github Follow Olde Sküül on Twitter Burgerbecky on LinkedIn Burgerbecky on LinkedIn
No Matches
Public Member Functions | List of all members
Burger::ArgumentType_DispatchPtr< T, size, bIsIntegral > Struct Template Reference

Intrinsic data type dispatcher. More...

Public Member Functions

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

Detailed Description

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

Intrinsic data type dispatcher.

This template is used when a pointer to an intrinsic needs to be parsed. It requires the type to be pre-broken down into two components, sizeof() and, is_integral. 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 char.

Pointers are upcast to const * before the template is invoked to eliminate the need to create templates for the const, volatile pointer variants.

See also
ArgumentType_Dispatch and ArgumentType

Member Function Documentation

◆ operator()()

template<typename T , uintptr_t size, bool bIsIntegral>
Burger::ArgumentType_DispatchPtr< T, size, bIsIntegral >::operator() ( ArgumentType_t * pThis,
T pInput )

Intrinsic data type dispatchers.

This function will use the input pointer type T to check if the data it's pointing to is 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.

T is assumed to be a pointer type. Intrinsics and references are not permitted.
pThisPointer to the ArgumentType_t structure to fill in.
Template Parameters
TPointer to an intrinsic value to be stored in ArgumentType_t
pInputPointer to the data
See also
ArgumentType_DispatchPtr and ArgumentType