20template<
typename BaseType, u
int16 DesiredMaxInlineSize=64, u
int8 DefaultAlignment=8>
106 bInline = In.bInline;
122 ConditionallyDestroyAllocation();
129 template <
typename T,
typename...
ArgsType>
151 checkf(bIsValid,
TEXT(
"It is an error to call GetValue() on an invalid TInlineValue. Please either check IsValid() or use Get(DefaultValue) instead."));
152 return bInline ? (BaseType&)Data : **((BaseType**)&Data);
194 template<
typename T,
typename...
ArgsType>
195 void InitializeFrom(
ArgsType&&... Args)
200 ConditionallyAllocateObject(
sizeof(T),
alignof(T));
214 BaseType* Allocation = (BaseType*)FMemory::Malloc(
Size, Alignment);
215 *((BaseType**)&Data) = Allocation;
219 void ConditionallyDestroyAllocation()
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
EInPlace
Definition CoreMiscDefines.h:162
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
TInlineValue< BaseType, MaxInlineSize, DefaultAlignment > MakeInlineValue(ArgsType... Args)
Definition InlineValue.h:245
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32 Size
Definition VulkanMemory.cpp:4034
Definition InlineValue.h:22
void Reset()
Definition InlineValue.h:114
TInlineValue(T &&In)
Definition InlineValue.h:39
UE_FORCEINLINE_HINT BaseType * operator->() const
Definition InlineValue.h:174
UE_FORCEINLINE_HINT BaseType & operator*() const
Definition InlineValue.h:173
TInlineValue & operator=(const TInlineValue &In)=delete
TInlineValue()
Definition InlineValue.h:27
TInlineValue(const TInlineValue &In)=delete
void * Reserve(uint32 InSize, uint32 InAlignment)
Definition InlineValue.h:180
UE_FORCEINLINE_HINT bool IsValid() const
Definition InlineValue.h:140
UE_FORCEINLINE_HINT const BaseType & Get(const BaseType &Default) const
Definition InlineValue.h:159
void Reset(TInlineValue &&In)
Definition InlineValue.h:96
TInlineValue(TInlineValue &&In)
Definition InlineValue.h:66
void Emplace(ArgsType &&... Args)
Definition InlineValue.h:130
TEnableIf< TPointerIsConvertibleFromTo< typenameTDecay< T >::Type, BaseType >::Value, TInlineValue & >::Type operator=(T &&In)
Definition InlineValue.h:87
UE_FORCEINLINE_HINT BaseType * GetPtr(BaseType *Default=nullptr) const
Definition InlineValue.h:168
~TInlineValue()
Definition InlineValue.h:58
BaseType & GetValue() const
Definition InlineValue.h:149
TInlineValue(EInPlace, ArgTypes &&... Args)
Definition InlineValue.h:49
TInlineValue & operator=(TInlineValue &&In)
Definition InlineValue.h:71
@ false
Definition radaudio_common.h:23
static FORCENOINLINE CORE_API void Free(void *Original)
Definition UnrealMemory.cpp:685
Definition TypeCompatibleBytes.h:17
Definition PointerIsConvertibleFromTo.h:60