54 template <
typename T,
typename SizeType>
64 SizeType (*
Num)(
const void* ContainerPtr);
68 template <
typename T,
typename ContainerType>
73 ((ContainerType*)ContainerPtr)->Add(
Val);
78 ((ContainerType*)ContainerPtr)->Add((T&&)
Val);
82 template <
typename SizeType,
typename ContainerType>
85 static SizeType
Num(
const void* ContainerPtr)
87 return ((
const ContainerType*)ContainerPtr)->Num();
92 ((ContainerType*)ContainerPtr)->Reserve(
Size);
96 template <
typename T,
typename Container>
102 template <
typename T,
typename SizeType,
typename Container>
115 typename ContainerType
116 UE_REQUIRES(!std::is_base_of_v<TAdderRef, ContainerType>)
126 this->
VPtr->AddConstRef(this->ContainerPtr,
Val);
131 this->
VPtr->AddRValueRef(this->ContainerPtr, (T&&)
Val);
145template <
typename T,
typename SizeType =
int32>
149 typename ContainerType
150 UE_REQUIRES(!std::is_base_of_v<TAdderReserverRef, ContainerType>)
155 static_assert(
sizeof(
InContainer.Num()) <=
sizeof(SizeType),
"Container has a larger SizeType than the TAdderReserverRef expects");
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_REQUIRES(...)
Definition Requires.h:86
float Val(const FString &Value)
Definition UnrealMath.cpp:3163
uint32 Size
Definition VulkanMemory.cpp:4034
Definition Core.Build.cs:8
Definition OverriddenPropertySet.cpp:45
implementation
Definition PlayInEditorLoadingScope.h:8
Definition AdvancedWidgetsModule.cpp:13
Definition AdderRef.h:113
UE_NODEBUG void Add(const T &Val) const
Definition AdderRef.h:124
UE_NODEBUG void Add(T &&Val) const
Definition AdderRef.h:129
UE_NODEBUG TAdderRef(ContainerType &InContainer UE_LIFETIMEBOUND)
Definition AdderRef.h:118
void * ContainerPtr
Definition AdderRef.h:142
const UE::Core::Private::TAdderVTable< T > * VPtr
Definition AdderRef.h:141
UE_NODEBUG TAdderRef(const UE::Core::Private::TAdderVTable< T > *InVPtr, void *InContainerPtr)
Definition AdderRef.h:135
Definition AdderRef.h:147
UE_NODEBUG TAdderReserverRef(ContainerType &InContainer UE_LIFETIMEBOUND)
Definition AdderRef.h:152
UE_NODEBUG SizeType Num() const
Definition AdderRef.h:158
UE_NODEBUG void Reserve(SizeType Size) const
Definition AdderRef.h:163
static void Reserve(void *ContainerPtr, SizeType Size)
Definition AdderRef.h:90
static SizeType Num(const void *ContainerPtr)
Definition AdderRef.h:85
void(* Reserve)(void *ContainerPtr, SizeType Size)
Definition AdderRef.h:65
constexpr TAdderReserverVTable(void(*InAddConstRef)(void *ContainerPtr, const T &Val), void(*InAddRValueRef)(void *ContainerPtr, T &&Val), SizeType(*InNum)(const void *ContainerPtr), void(*InReserve)(void *ContainerPtr, SizeType Size))
Definition AdderRef.h:57
SizeType(* Num)(const void *ContainerPtr)
Definition AdderRef.h:64
static void AddRValueRef(void *ContainerPtr, T &&Val)
Definition AdderRef.h:76
static void AddConstRef(void *ContainerPtr, const T &Val)
Definition AdderRef.h:71
void(* AddRValueRef)(void *ContainerPtr, T &&Val)
Definition AdderRef.h:51
void(* AddConstRef)(void *ContainerPtr, const T &Val)
Definition AdderRef.h:50
constexpr TAdderVTable(void(*InAddConstRef)(void *ContainerPtr, const T &Val), void(*InAddRValueRef)(void *ContainerPtr, T &&Val))
Definition AdderRef.h:44