17template<
typename Allocator>
22 using SizeType =
typename AllocatorType::SizeType;
78 static_assert(std::is_same_v<SizeType, int32>,
"TCompactSet currently only supports 32-bit allocators");
228 Elements.ResizeAllocation(OldSize, NewSize, 1);
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
constexpr T Align(T Val, uint64 Alignment)
Definition AlignmentTemplates.h:18
constexpr T AlignDown(T Val, uint64 Alignment)
Definition AlignmentTemplates.h:34
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ INDEX_NONE
Definition CoreMiscDefines.h:150
EConstEval
Definition CoreMiscDefines.h:161
@ ConstEval
Definition CoreMiscDefines.h:161
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define MAX_int32
Definition NumericLimits.h:25
Definition CompactHashTable.h:350
Definition CompactHashTable.h:283
Definition CompactSetBase.h:19
typename AllocatorType::SizeType SizeType
Definition CompactSetBase.h:22
void ResizeAllocation(const int32 NewMaxElements, const FCompactSetLayout &Layout)
Definition CompactSetBase.h:199
Allocator AllocatorType
Definition CompactSetBase.h:21
UE_FORCEINLINE_HINT SIZE_T GetAllocatedSize(const FCompactSetLayout Layout) const
Definition CompactSetBase.h:63
UE_FORCEINLINE_HINT int32 Max() const
Definition CompactSetBase.h:47
FConstCompactHashTableView GetConstHashTableView(const FCompactSetLayout Layout) const
Definition CompactSetBase.h:109
SizeType MaxElements
Definition CompactSetBase.h:279
static UE_FORCEINLINE_HINT constexpr SizeType GetHashCount(uint32 NumElements)
Definition CompactSetBase.h:117
FCompactHashTableView GetHashTableView(const FCompactSetLayout Layout)
Definition CompactSetBase.h:102
consteval TCompactSetBase(EConstEval)
Definition CompactSetBase.h:83
ElementAllocatorType Elements
Definition CompactSetBase.h:276
UE_FORCEINLINE_HINT const HashCountType * GetHashTableMemory(const FCompactSetLayout Layout) const
Definition CompactSetBase.h:97
static constexpr SizeType GetMaxElementsForAvailableSpace(size_t TotalBytes, uint32 HashCount, uint32 MinElementCount, const FCompactSetLayout Layout)
Definition CompactSetBase.h:141
static UE_FORCEINLINE_HINT constexpr size_t GetElementsSizeInBytes(uint32 NumElements, const FCompactSetLayout Layout)
Definition CompactSetBase.h:123
bool operator==(FIntrusiveUnsetOptionalState Tag) const
Definition CompactSetBase.h:24
typename AllocatorType::template ForElementType< uint8 > ElementAllocatorType
Definition CompactSetBase.h:76
TCompactSetBase(FIntrusiveUnsetOptionalState Tag)
Definition CompactSetBase.h:90
int32 AllocatorCalculateSlackGrow(int32 NewMaxElements, const FCompactSetLayout &Layout) const
Definition CompactSetBase.h:152
static UE_FORCEINLINE_HINT constexpr size_t GetTotalMemoryRequiredInBytes(uint32 NumElements, const FCompactSetLayout Layout)
Definition CompactSetBase.h:135
UE_FORCEINLINE_HINT int32 GetMaxIndex() const
Definition CompactSetBase.h:53
uint32 HashCountType
Definition CompactSetBase.h:74
bool ResizeAllocationPreserveData(const int32 NewMaxElements, const FCompactSetLayout &Layout, bool bPreserve=true)
Definition CompactSetBase.h:205
UE_FORCEINLINE_HINT bool IsEmpty() const
Definition CompactSetBase.h:35
UE_FORCEINLINE_HINT TCompactSetBase()=default
static constexpr size_t HashCountSize
Definition CompactSetBase.h:75
SizeType NumElements
Definition CompactSetBase.h:278
static UE_FORCEINLINE_HINT constexpr size_t GetTotalMemoryRequiredInBytes(uint32 NumElements, uint32 HashCount, const FCompactSetLayout Layout)
Definition CompactSetBase.h:129
UE_FORCEINLINE_HINT int32 Num() const
Definition CompactSetBase.h:41
constexpr size_t GetHashCount(uint32 NumElements)
Definition CompactHashTable.h:75
UE_FORCEINLINE_HINT constexpr uint32 GetTypeShift(uint32 IndexCount)
Definition CompactHashTable.h:59
UE_FORCEINLINE_HINT constexpr size_t GetMemoryRequiredInBytes(uint32 IndexCount, uint32 HashCount)
Definition CompactHashTable.h:64
UE_FORCEINLINE_HINT constexpr size_t GetMemoryAlignment()
Definition CompactHashTable.h:69
UE_FORCEINLINE_HINT constexpr uint32 GetTypeSize(uint32 IndexCount)
Definition CompactHashTable.h:54
Definition CompactSetBase.h:11
int32 Alignment
Definition CompactSetBase.h:13
int32 Size
Definition CompactSetBase.h:12
Definition IntrusiveUnsetOptionalState.h:71
static UE_FORCEINLINE_HINT void * Memmove(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:109
Definition ContainerAllocationPolicies.h:256