10#include <initializer_list>
43 template<
typename OtherElementType,
bool OtherAllowNull,
typename =
typename TEnableIf<std::is_convertible_v<OtherElementType*, InElementType*> && (AllowNull || !OtherAllowNull)>::Type>
59 template<
typename OtherElementType,
bool OtherAllowNull,
typename =
typename TEnableIf<std::is_convertible_v<OtherElementType*, InElementType*> && (AllowNull || !OtherAllowNull)>::Type>
86 template<
typename OtherElementType,
bool OtherAllowNull,
typename =
typename TEnableIf<std::is_convertible_v<OtherElementType*, InElementType*> && (AllowNull || !OtherAllowNull)>::Type>
100 template<
typename OtherElementType,
bool OtherAllowNull,
typename =
typename TEnableIf<std::is_convertible_v<OtherElementType*, InElementType*> && (AllowNull || !OtherAllowNull)>::Type>
134 template<
typename OtherElementType,
bool OtherAllowNull,
typename =
typename TEnableIf<std::is_convertible_v<OtherElementType*, InElementType*> && (AllowNull || !OtherAllowNull)>::Type>
159 template<
class OtherElementType,
bool OtherAllowNull,
typename =
typename TEnableIf<std::is_convertible_v<OtherElementType*, InElementType*> && (AllowNull || !OtherAllowNull)>::Type>
171 template<
class OtherElementType,
bool OtherAllowNull,
typename =
typename TEnableIf<std::is_convertible_v<OtherElementType*, InElementType*> && (AllowNull || !OtherAllowNull)>::Type>
417 template <
typename Predicate>
429 template <
typename Predicate>
442 template <
typename KeyType>
454 template <
typename Predicate>
468 template <
typename KeyType>
487 template <
typename Predicate>
516 template <
typename ComparisonType>
529 template <
typename Predicate>
628 template <
typename CountType>
665 template <
typename CountType>
892 ULANG_ENSUREF(!Item->Dereference(),
"Item was passed in so there must be at least one reference left after this.");
910 ULANG_ENSUREF(!Item->Dereference(),
"Item was passed in so there must be at least one reference left after this.");
923 template <
typename Predicate>
929 if (
RemoveIt && Item->Dereference())
931 Item->~ElementType();
944 template <
class Predicate>
950 if (
RemoveIt && Item->Dereference())
952 Item->~ElementType();
973 ULANG_ENSUREF(!Item->Dereference(),
"Item was passed in so there must be at least one reference left after this.");
993 ULANG_ENSUREF(!Item->Dereference(),
"Item was passed in so there must be at least one reference left after this.");
1011 template <
class PredicateType>
1068 if (Item && Item->Dereference())
1071 Item->~ElementType();
1129template<
typename ElementType>
1133template<
typename ElementType>
1137template<
typename ElementType>
1141template<
typename ElementType>
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 ULANG_ENSUREF(expr, format,...)
Definition Common.h:292
#define ULANG_ASSERT(expr)
Definition Common.h:285
#define ULANG_FORCEINLINE
Definition Common.h:188
Definition Allocator.h:35
ULANG_FORCEINLINE void Shrink()
Definition Array.h:562
ULANG_FORCEINLINE int32_t Emplace(ArgsType &&... Args)
Definition Array.h:1527
ULANG_FORCEINLINE ElementType & Last(int32_t IndexFromTheEnd=0)
Definition Array.h:537
ULANG_FORCEINLINE int32_t Max() const
Definition Array.h:413
ULANG_FORCEINLINE const ElementType * FindByPredicate(Predicate Pred) const
Definition Array.h:757
int32_t Remove(const OtherElementType &Item)
Definition Array.h:1814
int32_t RemoveSwap(const ElementType &Item)
Definition Array.h:1927
ULANG_FORCEINLINE void EmplaceAt(int32_t Index, ArgsType &&... Args)
Definition Array.h:1556
void SetNumZeroed(int32_t NewNum, bool bAllowShrinking=true)
Definition Array.h:1360
void Empty(int32_t Slack=0)
Definition Array.h:1322
ULANG_FORCEINLINE bool ContainsByPredicate(Predicate Pred) const
Definition Array.h:831
ULANG_FORCEINLINE bool Find(const ElementType &Item, int32_t &Index) const
Definition Array.h:579
ULANG_FORCEINLINE void RemoveAt(int32_t Index)
Definition Array.h:1188
void RemoveAllSwap(const PREDICATE_CLASS &Predicate, bool bAllowShrinking=true)
Definition Array.h:1879
ULANG_FORCEINLINE ElementType * begin()
Definition Array.h:1948
void InsertZeroed(int32_t Index, int32_t Count=1)
Definition Array.h:921
int32_t AddZeroed(int32_t Count=1)
Definition Array.h:1646
ULANG_FORCEINLINE void Push(ElementType &&Item)
Definition Array.h:489
int32_t RemoveSingleSwap(const ElementType &Item, bool bAllowShrinking=true)
Definition Array.h:1903
void Reset(int32_t NewSize=0)
Definition Array.h:1303
ULANG_FORCEINLINE bool IsEmpty() const
Definition Array.h:430
ULANG_FORCEINLINE bool IsFilled() const
Definition Array.h:441
ULANG_FORCEINLINE ElementType * GetData()
Definition Array.h:313
ULANG_FORCEINLINE int32_t GetSlack() const
Definition Array.h:355
ULANG_FORCEINLINE void RemoveAtSwap(int32_t Index)
Definition Array.h:1252
int32_t RemoveSingle(const ElementType &Item)
Definition Array.h:1784
int32_t Insert(std::initializer_list< ElementType > InitList, const int32_t InIndex)
Definition Array.h:986
void Append(const TArrayG< ElementType, OtherElementAllocatorType, OtherRawAllocatorArgsType... > &Source)
Definition Array.h:1408
ULANG_FORCEINLINE ElementType * end()
Definition Array.h:1950
ULANG_FORCEINLINE ElementType & Top()
Definition Array.h:513
ULANG_FORCEINLINE ElementType Pop(bool bAllowShrinking=true)
Definition Array.h:476
ULANG_FORCEINLINE int32_t AddUnique(ElementType &&Item)
Definition Array.h:1736
ULANG_FORCEINLINE bool FindLast(const ElementType &Item, int32_t &Index) const
Definition Array.h:613
ULANG_FORCEINLINE const ElementAllocatorType::RawAllocatorType & GetRawAllocator() const
Definition Array.h:419
int32_t IndexOfByPredicate(Predicate Pred) const
Definition Array.h:700
int32_t FindLastByPredicate(Predicate Pred, int32_t Count) const
Definition Array.h:646
ULANG_FORCEINLINE void Reserve(int32_t Number)
Definition Array.h:1753
ULANG_FORCEINLINE bool IsValidIndex(int32_t Index) const
Definition Array.h:391
int32_t RemoveAll(const PREDICATE_CLASS &Predicate)
Definition Array.h:1831
ULANG_FORCEINLINE int32_t Num() const
Definition Array.h:402
Definition SharedPointerArray.h:1032
ULANG_FORCEINLINE const ElementType * operator->() const
Definition SharedPointerArray.h:1038
ULANG_FORCEINLINE bool operator==(const Iterator &Other) const
Definition SharedPointerArray.h:1039
TTypeCompatibleBytes< PointerType > _DummyPtr
Definition SharedPointerArray.h:1053
ULANG_FORCEINLINE ~Iterator()=default
friend ULANG_FORCEINLINE Iterator operator+(const Iterator &Left, int32_t Right)
Definition SharedPointerArray.h:1045
ULANG_FORCEINLINE const PointerType & operator*() const
Definition SharedPointerArray.h:1037
ULANG_FORCEINLINE Iterator operator--(int)
Definition SharedPointerArray.h:1044
ElementType *const * _Item
Definition SharedPointerArray.h:1052
ULANG_FORCEINLINE Iterator & operator++()
Definition SharedPointerArray.h:1041
friend ULANG_FORCEINLINE int32_t operator-(const Iterator &Left, const Iterator &Right)
Definition SharedPointerArray.h:1047
friend ULANG_FORCEINLINE Iterator operator+(int32_t Left, const Iterator &Right)
Definition SharedPointerArray.h:1046
ULANG_FORCEINLINE Iterator & operator--()
Definition SharedPointerArray.h:1043
ULANG_FORCEINLINE PointerType & Ptr() const
Definition SharedPointerArray.h:1050
ULANG_FORCEINLINE Iterator operator++(int)
Definition SharedPointerArray.h:1042
ULANG_FORCEINLINE Iterator(ElementType *const *Item, const typename InElementAllocatorType::RawAllocatorType &Allocator)
Definition SharedPointerArray.h:1035
ULANG_FORCEINLINE bool operator!=(const Iterator &Other) const
Definition SharedPointerArray.h:1040
ULANG_FORCEINLINE Iterator()
Definition SharedPointerArray.h:1034
Definition SharedPointerArray.h:21
ULANG_FORCEINLINE PointerType Pop(bool bAllowShrinking=true)
Definition SharedPointerArray.h:284
bool ContainsByKey(const ComparisonType &Key) const
Definition SharedPointerArray.h:517
void Empty(int32_t Slack=0)
Definition SharedPointerArray.h:709
ULANG_FORCEINLINE void DereferenceRange(int32_t BeginIndex, int32_t EndIndex)
Definition SharedPointerArray.h:1098
ULANG_FORCEINLINE PointerType operator[](int32_t Index) const
Definition SharedPointerArray.h:273
int32_t IndexOfByPredicate(Predicate Pred) const
Definition SharedPointerArray.h:455
InElementType ElementType
Definition SharedPointerArray.h:27
ULANG_FORCEINLINE int32_t GetSlack() const
Definition SharedPointerArray.h:210
ULANG_FORCEINLINE int32_t Num() const
Definition SharedPointerArray.h:232
void Sort()
Definition SharedPointerArray.h:1001
ULANG_FORCEINLINE int32_t Find(const ElementType *Item) const
Definition SharedPointerArray.h:377
int32_t RemoveAll(const Predicate &Pred)
Definition SharedPointerArray.h:924
ULANG_FORCEINLINE void RemoveAt(int32_t Index, CountType Count, bool bAllowShrinking=true)
Definition SharedPointerArray.h:629
TSPtrArrayG & operator=(const TSPtrArrayG< OtherElementType, OtherAllowNull, InElementAllocatorType, RawAllocatorArgsType... > &Other)
Definition SharedPointerArray.h:101
ULANG_FORCEINLINE void ReferenceRange(int32_t BeginIndex, int32_t EndIndex)
Definition SharedPointerArray.h:1085
void Reset(int32_t NewSize=0)
Definition SharedPointerArray.h:698
ULANG_FORCEINLINE int32_t Find(const PointerType &Item) const
Definition SharedPointerArray.h:381
ULANG_FORCEINLINE void Shrink()
Definition SharedPointerArray.h:347
TSPtrArrayG(TSPtrArrayG< OtherElementType, OtherAllowNull, InElementAllocatorType, RawAllocatorArgsType... > &&Other, int32_t ExtraSlack)
Definition SharedPointerArray.h:160
ULANG_FORCEINLINE TSPtrArrayG(RawAllocatorArgsType &&... RawAllocatorArgs)
Definition SharedPointerArray.h:35
int32_t ReplaceAt(const PointerType &Item, int32_t Index)
Definition SharedPointerArray.h:680
ULANG_FORCEINLINE Iterator end()
Definition SharedPointerArray.h:1058
ULANG_FORCEINLINE void Dereference(int32_t Index)
Definition SharedPointerArray.h:1078
int32_t IndexOfByKey(const KeyType &Key) const
Definition SharedPointerArray.h:443
ULANG_FORCEINLINE void Push(const PointerType &Item)
Definition SharedPointerArray.h:299
void(*)(ElementType *, const typename ElementAllocatorType::RawAllocatorType &) DereferenceFuncType
Definition SharedPointerArray.h:1124
ULANG_FORCEINLINE TSPtrArrayG(const TSPtrArrayG< OtherElementType, OtherAllowNull, InElementAllocatorType, RawAllocatorArgsType... > &Other)
Definition SharedPointerArray.h:60
PointerStorageType _PointerStorage
Definition SharedPointerArray.h:1118
int32_t RemoveSingleSwap(const PointerType &Item, bool bAllowShrinking=true)
Definition SharedPointerArray.h:968
bool Contains(const PointerType &Pointer) const
Definition SharedPointerArray.h:505
ULANG_FORCEINLINE void EnableDereference()
Definition SharedPointerArray.h:1064
int32_t RemoveSwap(const PointerType &Item)
Definition SharedPointerArray.h:988
ULANG_FORCEINLINE TOptional< PointerType > FindByKey(const KeyType &Key) const
Definition SharedPointerArray.h:469
ULANG_FORCEINLINE bool FindLast(const PointerType &Item, int32_t &Index) const
Definition SharedPointerArray.h:394
~TSPtrArrayG()
Definition SharedPointerArray.h:200
ULANG_FORCEINLINE void DereferenceAll()
Definition SharedPointerArray.h:1113
TSPtrG< ElementType, AllowNull, typename InElementAllocatorType::RawAllocatorType, RawAllocatorArgsType... > PointerType
Definition SharedPointerArray.h:29
ULANG_FORCEINLINE PointerType Top() const
Definition SharedPointerArray.h:326
void Append(TSPtrArrayG &Source)
Definition SharedPointerArray.h:737
ULANG_FORCEINLINE TOptional< PointerType > FindByPredicate(Predicate Pred) const
Definition SharedPointerArray.h:488
ULANG_FORCEINLINE void InsertNew(int32_t Index, CtorArgsType &&... CtorArgs)
Definition SharedPointerArray.h:804
ULANG_FORCEINLINE void RemoveAtSwap(int32_t Index)
Definition SharedPointerArray.h:647
int32_t Insert(const PointerType &Item, int32_t Index)
Definition SharedPointerArray.h:589
ULANG_FORCEINLINE TSPtrArrayG(TSPtrArrayG &&Other)
Definition SharedPointerArray.h:146
ULANG_FORCEINLINE int32_t AddUnique(const PointerType &Item)
Definition SharedPointerArray.h:856
ULANG_FORCEINLINE TSPtrArrayG(const TSPtrArrayG< OtherElementType, OtherAllowNull, InElementAllocatorType, RawAllocatorArgsType... > &Other, int32_t ExtraSlack)
Definition SharedPointerArray.h:87
ULANG_FORCEINLINE PointerType First() const
Definition SharedPointerArray.h:315
ULANG_FORCEINLINE const TSPtrArrayG< OtherElementType, OtherAllowNull, ElementAllocatorType, RawAllocatorArgsType... > & As() const
Definition SharedPointerArray.h:1023
ULANG_FORCEINLINE Iterator begin() const
Definition SharedPointerArray.h:1057
InElementAllocatorType ElementAllocatorType
Definition SharedPointerArray.h:28
int32_t AddZeroed(int32_t Count=1)
Definition SharedPointerArray.h:843
void InsertZeroed(int32_t Index, int32_t Count=1)
Definition SharedPointerArray.h:547
ULANG_FORCEINLINE Iterator begin()
Definition SharedPointerArray.h:1056
void RemoveAllSwap(const Predicate &Pred, bool bAllowShrinking=true)
Definition SharedPointerArray.h:945
ULANG_FORCEINLINE int32_t Add(const PointerType &Item)
Definition SharedPointerArray.h:821
TSPtrArrayG & operator=(TSPtrArrayG &&Other)
Definition SharedPointerArray.h:188
int32_t Insert(TSPtrArrayG &&Items, const int32_t InIndex)
Definition SharedPointerArray.h:575
ULANG_FORCEINLINE int32_t FindLastByPredicate(Predicate Pred) const
Definition SharedPointerArray.h:430
TSPtrArrayG & operator+=(const TSPtrArrayG &Other)
Definition SharedPointerArray.h:776
ULANG_FORCEINLINE PointerType RemoveAt(int32_t Index)
Definition SharedPointerArray.h:608
ULANG_FORCEINLINE Iterator end() const
Definition SharedPointerArray.h:1059
ULANG_FORCEINLINE TSPtrArrayG(const TSPtrArrayG &Other)
Definition SharedPointerArray.h:72
ULANG_FORCEINLINE int32_t FindLast(const PointerType &Item) const
Definition SharedPointerArray.h:405
ULANG_FORCEINLINE int32_t FindLastByPredicate(Predicate Pred, int32_t Count) const
Definition SharedPointerArray.h:418
int32_t Remove(const PointerType &Item)
Definition SharedPointerArray.h:905
void SetNumZeroed(int32_t NewNum, bool bAllowShrinking=true)
Definition SharedPointerArray.h:720
ULANG_FORCEINLINE int32_t AddNew(CtorArgsType &&... CtorArgs)
Definition SharedPointerArray.h:789
DereferenceFuncType _DereferenceFunc
Definition SharedPointerArray.h:1125
ULANG_FORCEINLINE TSPtrArrayG(TSPtrArrayG< OtherElementType, OtherAllowNull, InElementAllocatorType, RawAllocatorArgsType... > &&Other)
Definition SharedPointerArray.h:135
ULANG_FORCEINLINE bool IsEmpty() const
Definition SharedPointerArray.h:254
ULANG_FORCEINLINE void ReferenceAll()
Definition SharedPointerArray.h:1107
ULANG_FORCEINLINE bool ContainsByPredicate(Predicate Pred) const
Definition SharedPointerArray.h:530
ULANG_FORCEINLINE TSPtrArrayG(std::initializer_list< TSPtrG< OtherElementType, OtherAllowNull, typename InElementAllocatorType::RawAllocatorType, RawAllocatorArgsType... > > InitList, RawAllocatorArgsType &&... RawAllocatorArgs)
Definition SharedPointerArray.h:44
TSPtrArrayG & operator=(const TSPtrArrayG &Other)
Definition SharedPointerArray.h:118
void Append(TSPtrArrayG &&Source)
Definition SharedPointerArray.h:750
ULANG_FORCEINLINE TSPtrArrayG< OtherElementType, OtherAllowNull, ElementAllocatorType, RawAllocatorArgsType... > & As()
Definition SharedPointerArray.h:1021
ULANG_FORCEINLINE bool Find(const ElementType *Item, int32_t &Index) const
Definition SharedPointerArray.h:360
ULANG_FORCEINLINE void Reserve(int32_t Number)
Definition SharedPointerArray.h:874
int32_t Insert(const TSPtrArrayG &Items, const int32_t InIndex)
Definition SharedPointerArray.h:560
ULANG_FORCEINLINE void RemoveAtSwap(int32_t Index, CountType Count, bool bAllowShrinking=true)
Definition SharedPointerArray.h:666
int32_t RemoveSingle(const PointerType &Item)
Definition SharedPointerArray.h:887
ULANG_FORCEINLINE int32_t Max() const
Definition SharedPointerArray.h:243
TSPtrArrayG & operator=(TSPtrArrayG< OtherElementType, OtherAllowNull, InElementAllocatorType, RawAllocatorArgsType... > &&Other)
Definition SharedPointerArray.h:172
ULANG_FORCEINLINE bool Find(const PointerType &Item, int32_t &Index) const
Definition SharedPointerArray.h:364
TSPtrArrayG & operator+=(TSPtrArrayG &&Other)
Definition SharedPointerArray.h:764
void Sort(const PredicateType &Predicate)
Definition SharedPointerArray.h:1012
ULANG_FORCEINLINE PointerType Last(int32_t IndexFromTheEnd=0) const
Definition SharedPointerArray.h:337
ULANG_FORCEINLINE bool IsFilled() const
Definition SharedPointerArray.h:265
ULANG_FORCEINLINE bool IsValidIndex(int32_t Index) const
Definition SharedPointerArray.h:221
Definition SharedPointer.h:77
ULANG_FORCEINLINE ObjectType * Get() const
Definition SharedPointer.h:111
AllocatorType _Allocator
Definition SharedPointer.h:273
ObjectType * _Object
Pointer to original object.
Definition SharedPointer.h:269
ULANG_FORCEINLINE void EnableRelease()
Set the release function pointer to a valid value.
Definition SharedPointer.h:248
ULANG_FORCEINLINE void Sort(RangeType &&Range)
Definition Sort.h:18
Definition VVMEngineEnvironment.h:23
@ Unspecified
Not sure if success or failure.
ULANG_FORCEINLINE T && ForwardArg(typename TRemoveReference< T >::Type &Obj)
Definition References.h:115
ULANG_FORCEINLINE TRemoveReference< T >::Type && Move(T &&Obj)
Definition References.h:86
U16 Index
Definition radfft.cpp:71
Definition Allocator.h:238
Definition TypeTraits.h:451
@ MoveWillEmptyContainer
Definition TypeTraits.h:453
Definition TypeTraits.h:456
Definition TypeTraits.h:263
@ Value
Definition TypeTraits.h:264
Definition TypeTraits.h:325