10#include "Containers/Array.h"
18template<
typename T,
typename Allocator = FDefaultAllocator>
36 for (
auto& Item :
Other)
52 for (
auto& Item :
Other)
116 return (
const T**)Array.
GetData();
137 return *(T*)Array[
Index];
150 return *(T*)Array[
Index];
195 DestructAndFreeItems();
196 Array.
Reset(NewSize);
278 for (
int32 ElementId =
Count; ElementId; --ElementId)
329 for (
int32 ElementId =
Count; ElementId; --ElementId)
363 DestructAndFreeItems();
376 return Array.
Add(Item);
420 return Array.
Max() *
sizeof(T*) + Array.
Num() *
sizeof(T);
452 void DestructAndFreeItems()
485template<
typename T,
typename Allocator>
EAllowShrinking
Definition AllowShrinking.h:10
#define UE_ALLOWSHRINKING_BOOL_DEPRECATED(FunctionName)
Definition AllowShrinking.h:31
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
FArchive & operator<<(FArchive &Ar, TIndirectArray< T, Allocator > &A)
Definition IndirectArray.h:486
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition Archive.h:1208
virtual void Serialize(void *V, int64 Length)
Definition Archive.h:1689
UE_FORCEINLINE_HINT bool IsLoading() const
Definition Archive.h:236
virtual void CountBytes(SIZE_T InNum, SIZE_T InMax)
Definition Archive.h:125
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType & Last(SizeType IndexFromTheEnd=0) UE_LIFETIMEBOUND
Definition Array.h:1263
void RemoveAt(SizeType Index, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2083
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
UE_FORCEINLINE_HINT void RemoveAtSwap(SizeType Index, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< AllocatorType >())
Definition Array.h:2185
UE_REWRITE SizeType Max() const
Definition Array.h:1161
UE_NODEBUG UE_FORCEINLINE_HINT RangedForIteratorType end()
Definition Array.h:3391
UE_REWRITE bool IsEmpty() const
Definition Array.h:1133
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
UE_NODEBUG UE_FORCEINLINE_HINT RangedForIteratorType begin()
Definition Array.h:3389
UE_NODEBUG void CountBytes(FArchive &Ar) const
Definition Array.h:1649
UE_FORCEINLINE_HINT void Swap(SizeType FirstIndexToSwap, SizeType SecondIndexToSwap)
Definition Array.h:3300
UE_FORCEINLINE_HINT void Shrink()
Definition Array.h:1278
SizeType Insert(std::initializer_list< ElementType > InitList, const SizeType InIndex)
Definition Array.h:1875
void Empty(SizeType Slack=0)
Definition Array.h:2273
UE_FORCEINLINE_HINT void Reserve(SizeType Number)
Definition Array.h:3016
Definition IndirectArray.h:20
void Serialize(FArchive &Ar, UObject *Owner)
Definition IndirectArray.h:206
void RemoveAt(int32 Index, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< Allocator >())
Definition IndirectArray.h:254
UE_FORCEINLINE_HINT void Reserve(int32 Number)
Definition IndirectArray.h:396
TIndirectArray & operator=(const TIndirectArray &Other)
Definition IndirectArray.h:47
UE_FORCEINLINE_HINT TDereferencingIterator< const ElementType, typename InternalArrayType::RangedForConstIteratorType > begin() const
Definition IndirectArray.h:468
TIterator CreateIterator()
Definition IndirectArray.h:432
T ElementType
Definition IndirectArray.h:22
TIndirectArray(const TIndirectArray &Other)
Definition IndirectArray.h:34
UE_FORCEINLINE_HINT int32 Num() const
Definition IndirectArray.h:94
UE_FORCEINLINE_HINT const T & operator[](int32 Index) const
Definition IndirectArray.h:148
UE_FORCEINLINE_HINT TDereferencingIterator< const ElementType, typename InternalArrayType::RangedForConstIteratorType > end() const
Definition IndirectArray.h:470
UE_FORCEINLINE_HINT const ElementType & Last(int32 IndexFromTheEnd=0) const
Definition IndirectArray.h:172
bool IsEmpty() const
Definition IndirectArray.h:84
~TIndirectArray()
Definition IndirectArray.h:73
UE_FORCEINLINE_HINT bool IsValidIndex(int32 Index) const
Definition IndirectArray.h:408
void RemoveAtSwap(int32 Index, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< Allocator >())
Definition IndirectArray.h:302
UE_FORCEINLINE_HINT int32 Add(T *Item)
Definition IndirectArray.h:374
void RemoveAt(int32 Index, int32 Count, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< Allocator >())
Definition IndirectArray.h:272
void Shrink()
Definition IndirectArray.h:181
TIndirectArray & operator=(TIndirectArray &&Other)
Definition IndirectArray.h:60
void Empty(int32 Slack=0)
Definition IndirectArray.h:361
UE_FORCEINLINE_HINT TDereferencingIterator< ElementType, typename InternalArrayType::RangedForIteratorType > begin()
Definition IndirectArray.h:467
TConstIterator CreateConstIterator() const
Definition IndirectArray.h:442
UE_FORCEINLINE_HINT void Insert(T *Item, int32 Index)
Definition IndirectArray.h:385
UE_FORCEINLINE_HINT T & operator[](int32 Index)
Definition IndirectArray.h:135
TIndexedContainerIterator< const TIndirectArray, const ElementType, int32 > TConstIterator
Definition IndirectArray.h:425
void Reset(int32 NewSize=0)
Definition IndirectArray.h:193
UE_FORCEINLINE_HINT TDereferencingIterator< ElementType, typename InternalArrayType::RangedForIteratorType > end()
Definition IndirectArray.h:469
void CountBytes(FArchive &Ar) const
Definition IndirectArray.h:241
static constexpr uint32 GetTypeSize()
Definition IndirectArray.h:124
TArray< void *, Allocator > InternalArrayType
Definition IndirectArray.h:23
void RemoveAtSwap(int32 Index, int32 Count, EAllowShrinking AllowShrinking=UE::Core::Private::AllowShrinkingByDefault< Allocator >())
Definition IndirectArray.h:323
void Swap(int32 FirstIndexToSwap, int32 SecondIndexToSwap)
Definition IndirectArray.h:350
SIZE_T GetAllocatedSize() const
Definition IndirectArray.h:418
UE_FORCEINLINE_HINT const T ** GetData() const
Definition IndirectArray.h:114
UE_FORCEINLINE_HINT T ** GetData()
Definition IndirectArray.h:104
TIndirectArray(TIndirectArray &&)=default
TIndexedContainerIterator< TIndirectArray, ElementType, int32 > TIterator
Definition IndirectArray.h:424
UE_FORCEINLINE_HINT ElementType & Last(int32 IndexFromTheEnd=0)
Definition IndirectArray.h:159
U16 Index
Definition radfft.cpp:71