Weaponry Assembly System
WAS
Loading...
Searching...
No Matches
TAttributeOperator< T > Struct Template Reference

#include <Operations.h>

+ Inheritance diagram for TAttributeOperator< T >:
+ Collaboration diagram for TAttributeOperator< T >:

Public Types

using TSmart = std::conditional_t<sizeof(T) <= sizeof(void*) * 2, T, const T&>
 

Static Public Member Functions

template<typename Other >
static FORCEINLINE T CalculateOperation (TSmart A, const Other &B, EOperator Operator)
 
static FORCEINLINE T CalculateOperation (TSmart A, TSmart B, EOperator Operator)
 
static constexpr TFunction< T(TSmart A, TSmart B)> GetOperationStaticFunction (EOperator InOperator)
 
template<typename Other >
static TFunction< T(TSmart A, Other B)> GetOperationStaticFunction (EOperator InOperator)
 
static T GetOperationStaticValue (EOperator InOperator, TSmart A, TSmart B)
 

Detailed Description

template<typename T>
struct TAttributeOperator< T >

Template specialization handling arithmetic operations by type.

Member Typedef Documentation

◆ TSmart

template<typename T >
using TAttributeOperator< T >::TSmart = std::conditional_t<sizeof(T) <= sizeof(void*) * 2, T, const T&>

Member Function Documentation

◆ CalculateOperation() [1/2]

template<typename T >
template<typename Other >
static FORCEINLINE T TAttributeOperator< T >::CalculateOperation ( TSmart A,
const Other & B,
EOperator Operator )
inlinestatic

Applies operator to values (casts B to T) and returns result.

◆ CalculateOperation() [2/2]

template<typename T >
static FORCEINLINE T TAttributeOperator< T >::CalculateOperation ( TSmart A,
TSmart B,
EOperator Operator )
inlinestatic

Applies operator to values and returns result.

◆ GetOperationStaticFunction() [1/2]

template<typename T >
static constexpr TFunction< T(TSmart A, TSmart B)> TAttributeOperator< T >::GetOperationStaticFunction ( EOperator InOperator)
inlinestaticconstexpr

Gets the operator function based on the operator type.

◆ GetOperationStaticFunction() [2/2]

template<typename T >
template<typename Other >
static TFunction< T(TSmart A, Other B)> TAttributeOperator< T >::GetOperationStaticFunction ( EOperator InOperator)
inlinestatic

Gets the operator function based on the operator type.

◆ GetOperationStaticValue()

template<typename T >
static T TAttributeOperator< T >::GetOperationStaticValue ( EOperator InOperator,
TSmart A,
TSmart B )
inlinestatic