27#define HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
28#define IS_POD(T) __is_pod(T)
29#define IS_EMPTY(T) __is_empty(T)
38template<
typename DerivedType,
typename BaseType>
63template <
int32 N,
typename... Types>
84 template <
typename CharType = TCHAR>
91 static_assert(
sizeof(T) < 0,
"Format specifier not supported for this type.");
92 return CHARTEXT(CharType,
"Unknown"); \
95#define Expose_TFormatSpecifier(type, format) \
97struct TFormatSpecifier<type> \
99 template <typename CharType = TCHAR> \
100 UE_FORCEINLINE_HINT static constexpr decltype(auto) GetFormatSpecifier() \
102 return CHARTEXT(CharType, format); \
161template <
typename RetType,
typename...
Params>
195 return TEXT(
"Unknown");
199#define Expose_TNameOf(type) \
201struct TNameOf<type> \
203 UE_FORCEINLINE_HINT static TCHAR const* GetName() \
205 return TEXT(#type); \
227template <
typename T,
bool TypeIsSmall>
297template <
typename T,
size_t N>
301 typedef T ArrayType[N];
311template <
typename T,
size_t N>
315 typedef const T ArrayType[N];
355template <
typename T,
typename U>
408template <
typename T,
typename Arg>
414 "TIsBitwiseConstructible is not designed to accept reference types");
417 std::is_same_v<T, std::remove_cv_t<T >> &&
418 std::is_same_v<Arg, std::remove_cv_t<Arg>>,
419 "TIsBitwiseConstructible is not designed to accept qualified types");
432template <
typename T,
typename U>
470#define GENERATE_MEMBER_FUNCTION_CHECK(MemberName, Result, ConstModifier, ...) \
471template <typename T> \
472class THasMemberFunction_##MemberName \
474 template <typename U, Result(U::*)(__VA_ARGS__) ConstModifier> struct Check; \
475 template <typename U> static char MemberTest(Check<U, &U::MemberName> *); \
476 template <typename U> static int MemberTest(...); \
478 enum { Value = sizeof(MemberTest<T>(nullptr)) == sizeof(char) }; \
486#undef HAS_TRIVIAL_CONSTRUCTOR
488#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_5
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
#define Expose_TNameOf(type)
Definition UnrealTypeTraits.h:199
#define Expose_TFormatSpecifier(type, format)
Definition UnrealTypeTraits.h:95
FUniformParams Params
Definition MeshPaintVirtualTexture.cpp:162
Definition TestUtils.cpp:8
Definition UnrealTypeTraits.h:351
virtual ~FVirtualDestructor()
Definition UnrealTypeTraits.h:352
Definition UnrealTypeTraits.h:267
TCallTraitsParamTypeHelper< T, PassByValue >::ConstParamType ConstPointerType
Definition UnrealTypeTraits.h:276
TCallTraitsParamTypeHelper< T, PassByValue >::ParamType ParamType
Definition UnrealTypeTraits.h:275
T ValueType
Definition UnrealTypeTraits.h:272
const T & ConstReference
Definition UnrealTypeTraits.h:274
T & Reference
Definition UnrealTypeTraits.h:273
const T ParamType
Definition UnrealTypeTraits.h:236
const T ConstParamType
Definition UnrealTypeTraits.h:237
const T * ConstParamType
Definition UnrealTypeTraits.h:243
T * ParamType
Definition UnrealTypeTraits.h:242
Definition UnrealTypeTraits.h:229
const T & ParamType
Definition UnrealTypeTraits.h:230
const T & ConstParamType
Definition UnrealTypeTraits.h:231
T & Reference
Definition UnrealTypeTraits.h:290
T & ConstPointerType
Definition UnrealTypeTraits.h:293
T & ValueType
Definition UnrealTypeTraits.h:289
const T & ConstReference
Definition UnrealTypeTraits.h:291
T & ParamType
Definition UnrealTypeTraits.h:292
const T *const ParamType
Definition UnrealTypeTraits.h:306
const ArrayType & ConstReference
Definition UnrealTypeTraits.h:305
ArrayType & Reference
Definition UnrealTypeTraits.h:304
const T *const ConstPointerType
Definition UnrealTypeTraits.h:307
const T * ValueType
Definition UnrealTypeTraits.h:303
const T *const ConstPointerType
Definition UnrealTypeTraits.h:321
ArrayType & Reference
Definition UnrealTypeTraits.h:318
const T *const ParamType
Definition UnrealTypeTraits.h:320
const T * ValueType
Definition UnrealTypeTraits.h:317
const ArrayType & ConstReference
Definition UnrealTypeTraits.h:319
Definition UnrealTypeTraits.h:283
Definition IsArithmetic.h:12
Definition UnrealTypeTraits.h:410
@ Value
Definition UnrealTypeTraits.h:422
Definition UnrealTypeTraits.h:40
char Yes[2]
Definition UnrealTypeTraits.h:43
static Yes & Test(BaseType *)
char No[1]
Definition UnrealTypeTraits.h:42
static constexpr bool Value
Definition UnrealTypeTraits.h:57
static Yes & Test(const BaseType *)
static DerivedType * DerivedTypePtr()
Definition UnrealTypeTraits.h:52
static constexpr bool IsDerived
Definition UnrealTypeTraits.h:59
Definition UnrealTypeTraits.h:157
@ Value
Definition UnrealTypeTraits.h:158
Definition UnrealTypeTraits.h:146
@ Value
Definition UnrealTypeTraits.h:147
Definition UnrealTypeTraits.h:132
@ Value
Definition UnrealTypeTraits.h:132
Definition IsPODType.h:12
Definition IsPointer.h:12
Definition UnrealTypeTraits.h:138
@ Value
Definition UnrealTypeTraits.h:138
Definition UnrealTypeTraits.h:125
Definition IsTriviallyCopyConstructible.h:13
Definition UnrealTypeTraits.h:181
@ Value
Definition UnrealTypeTraits.h:182
Definition UnrealTypeTraits.h:172
T && Move
Definition UnrealTypeTraits.h:368
const T & Copy
Definition UnrealTypeTraits.h:367
Definition UnrealTypeTraits.h:357
U Copy
Definition UnrealTypeTraits.h:360
Definition UnrealTypeTraits.h:392
Definition UnrealTypeTraits.h:191
static TCHAR const * GetName()
Definition UnrealTypeTraits.h:192
T Type
Definition UnrealTypeTraits.h:75
typename TNthTypeFromParameterPack< N - 1, OtherTypes... >::Type Type
Definition UnrealTypeTraits.h:69
Definition UnrealTypeTraits.h:64
Definition UnrealTypeTraits.h:335
TCallTraits< T >::ParamType ConstInitType
Definition UnrealTypeTraits.h:336
TCallTraits< T >::ConstPointerType ConstPointerType
Definition UnrealTypeTraits.h:337
Definition UnrealTypeTraits.h:347