14 template <
typename ChunkType,
typename ElementType, u
int32 NumElementsPerChunk>
40 return Count < Rhs.Count;
47template<
typename InElementType, u
int32 TargetBytesPerChunk,
typename AllocatorType>
50template <
typename T, u
int32 TargetBytesPerChunk,
typename AllocatorType>
54template<
typename InElementType, u
int32 TargetBytesPerChunk = 16384,
typename AllocatorType = FDefaultAllocator >
70 for(
int32 ChunkIndex = 0;ChunkIndex < NumChunks;ChunkIndex++)
77 template <
typename ArrayType>
78 inline static void Move(ArrayType& ToArray, ArrayType&
FromArray)
81 ToArray.NumElements =
FromArray.NumElements;
88 this->Move(*
this,
Other);
95 this->Move(*
this,
Other);
195 new(*this) ElementType(Item);
222 for(
const auto& It :
Other )
259 template<
typename OtherAllocator>
268 for (
int32 ChunkIndex = 0; ChunkIndex <
Chunks.
Num(); ChunkIndex++)
278 template<
typename OtherAllocator>
287 for (
int32 ChunkIndex = 0; ChunkIndex <
Chunks.
Num(); ChunkIndex++)
371template <
typename T,u
int32 TargetBytesPerChunk,
typename AllocatorType>
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define UE_STATIC_ASSERT_WARN(bExpression, Message)
Definition CoreMiscDefines.h:431
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 Size
Definition VulkanMemory.cpp:4034
Definition ChunkedArray.h:56
ChunksType Chunks
Definition ChunkedArray.h:338
TChunkedArray & operator=(const TChunkedArray &)=default
void MoveToLinearArray(TArray< ElementType, OtherAllocator > &DestinationArray)
Definition ChunkedArray.h:279
FConstIterType end() const
Definition ChunkedArray.h:363
~TChunkedArray()
Definition ChunkedArray.h:101
static constexpr bool bHasIntrusiveUnsetOptionalState
Definition ChunkedArray.h:112
TChunkedArray & operator+=(const TArray< ElementType > &Other)
Definition ChunkedArray.h:218
int32 NumElements
Definition ChunkedArray.h:341
FConstIterType begin() const
Definition ChunkedArray.h:353
int32 Emplace(ArgsType &&... Args)
Definition ChunkedArray.h:206
TChunkedArray(const TChunkedArray &)=default
bool IsEmpty() const
Definition ChunkedArray.h:159
void Reserve(int32 Number)
Definition ChunkedArray.h:313
int32 Num() const
Definition ChunkedArray.h:164
TChunkedArray(TChunkedArray &&Other)
Definition ChunkedArray.h:86
void Shrink()
Definition ChunkedArray.h:320
TIndirectArray< FChunk, AllocatorType > ChunksType
Definition ChunkedArray.h:337
ElementType & operator[](int32 ElementIndex)
Definition ChunkedArray.h:140
const ElementType & operator()(int32 ElementIndex) const
Definition ChunkedArray.h:134
UE_FORCEINLINE_HINT bool IsValidIndex(int32 Index) const
Definition ChunkedArray.h:182
FIterType begin()
Definition ChunkedArray.h:348
TChunkedArray & operator+=(const TChunkedArray &Other)
Definition ChunkedArray.h:230
TChunkedArray(FIntrusiveUnsetOptionalState)
Definition ChunkedArray.h:115
int32 Add(int32 Count=1)
Definition ChunkedArray.h:242
int32 AddElement(const ElementType &Item)
Definition ChunkedArray.h:193
void CopyToLinearArray(TArray< ElementType, OtherAllocator > &DestinationArray)
Definition ChunkedArray.h:260
TChunkedArray & operator=(TChunkedArray &&Other)
Definition ChunkedArray.h:91
TChunkedArray(int32 InNumElements=0)
Definition ChunkedArray.h:62
@ NumElementsPerChunk
Definition ChunkedArray.h:327
SIZE_T GetAllocatedSize(void) const
Definition ChunkedArray.h:169
void Empty(int32 Slack=0)
Definition ChunkedArray.h:299
const ElementType & operator[](int32 ElementIndex) const
Definition ChunkedArray.h:146
bool operator==(FIntrusiveUnsetOptionalState) const
Definition ChunkedArray.h:119
FIterType end()
Definition ChunkedArray.h:358
ElementType & operator()(int32 ElementIndex)
Definition ChunkedArray.h:128
Definition IndirectArray.h:20
UE_FORCEINLINE_HINT void Reserve(int32 Number)
Definition IndirectArray.h:396
UE_FORCEINLINE_HINT int32 Num() const
Definition IndirectArray.h:94
UE_FORCEINLINE_HINT int32 Add(T *Item)
Definition IndirectArray.h:374
void Shrink()
Definition IndirectArray.h:181
void Empty(int32 Slack=0)
Definition IndirectArray.h:361
SIZE_T GetAllocatedSize() const
Definition IndirectArray.h:418
UE_FORCEINLINE_HINT T ** GetData()
Definition IndirectArray.h:104
Definition ChunkedArray.h:13
U16 Index
Definition radfft.cpp:71
Definition IntrusiveUnsetOptionalState.h:71
Definition ChunkedArray.h:331
ElementType Elements[NumElementsPerChunk]
Definition ChunkedArray.h:333
Definition ChunkedArray.h:16
uint32 ElementIndex
Definition ChunkedArray.h:19
ChunkType ** Chunk
Definition ChunkedArray.h:17
bool operator!=(const TChunkedArrayIterator &Rhs) const
Definition ChunkedArray.h:38
void operator++()
Definition ChunkedArray.h:26
uint32 Count
Definition ChunkedArray.h:18
ElementType & operator*() const
Definition ChunkedArray.h:21