4#error "Map.h.inl should only be included after defining UE_TMAP_PREFIX"
7#define TMAPBASE PREPROCESSOR_JOIN(UE_TMAP_PREFIX, MapBase)
8#define TSORTABLEMAPBASE PREPROCESSOR_JOIN(UE_TMAP_PREFIX, SortableMapBase)
9#define TMAP PREPROCESSOR_JOIN(UE_TMAP_PREFIX, Map)
10#define TMAPPRIVATEFRIEND PREPROCESSOR_JOIN(TMAP,PrivateFriend)
11#define TMULTIMAP PREPROCESSOR_JOIN(UE_TMAP_PREFIX, MultiMap)
12#define TSET PREPROCESSOR_JOIN(UE_TMAP_PREFIX, Set)
13#define TMAP_STRINGIFY(name) #name
27template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
30 template <
typename OtherKeyType,
typename OtherValueType,
typename OtherSetAllocator,
typename OtherKeyFuncs>
51 template<
typename OtherSetAllocator>
58 template<
typename OtherSetAllocator>
88 template<
typename OtherSetAllocator>
96 template<
typename OtherSetAllocator>
122 for (
typename ElementSetType::TConstIterator It(
Pairs); It; ++It)
124 const ValueType*
BVal =
Other.Find(It->Key);
129 if (!(*
BVal == It->Value))
173 Pairs.CompactStable();
190 return Pairs.IsEmpty();
208 return Pairs.GetMaxIndex();
247 if constexpr (!KeyFuncs::bAllowDuplicateKeys)
252 for (
typename ElementSetType::TConstIterator It(
Pairs); It; ++It)
277 if (!KeyFuncs::bAllowDuplicateKeys)
282 for (
typename ElementSetType::TConstIterator It(
Pairs); It; ++It)
299 return Pairs.GetAllocatedSize();
310 Pairs.CountBytes(Ar);
360 template <
typename InitKeyType = KeyType,
typename InitValueType = ValueType>
369 template <
typename InitKeyType = KeyType,
typename InitValueType = ValueType>
383 template <
typename InitKeyType = KeyType>
392 template <
typename InitKeyType = KeyType>
419 template<
typename ComparableKey>
447 for (
typename ElementSetType::TConstIterator PairIt(
Pairs); PairIt; ++PairIt)
449 if (PairIt->Value ==
Value)
464 template <
typename Predicate>
488 if (
auto* Pair =
Pairs.Find(Key))
501 template<
typename ComparableKey>
504 if (
auto* Pair =
Pairs.FindByHash(KeyHash, Key))
511 template<
typename ComparableKey>
517 template<
typename ComparableKey>
520 auto* Pair =
Pairs.FindByHash(KeyHash, Key);
521 check(Pair !=
nullptr);
524 template<
typename ComparableKey>
538 return Pairs.FindId(Key);
542 template<
typename ComparableKey>
545 return Pairs.FindIdByHash(KeyHash, Key);
551 return KeyFuncs::GetKeyHash(Key);
561 template <
typename InitKeyType>
564 if (
auto* Pair =
Pairs.FindByHash(KeyHash, Key))
580 template <
typename InitKeyType,
typename InitValueType>
583 if (
auto* Pair =
Pairs.FindByHash(KeyHash, Key))
634 const auto* Pair =
Pairs.Find(Key);
635 check(Pair !=
nullptr);
647 auto* Pair =
Pairs.Find(Key);
648 check(Pair !=
nullptr);
660 if (
const auto* Pair =
Pairs.Find(Key))
677 if (
const auto* Pair =
Pairs.Find(Key))
694 return Pairs.FindArbitraryElement();
709 return Pairs.Contains(Key);
713 template<
typename ComparableKey>
716 return Pairs.ContainsByHash(KeyHash, Key);
722 return Pairs.Array();
733 for (
typename ElementSetType::TConstIterator PairIt(
Pairs); PairIt; ++PairIt)
747 for (
typename ElementSetType::TConstIterator PairIt(
Pairs); PairIt; ++PairIt)
767 template<
bool bConst>
771 typedef std::conditional_t<
773 typename ElementSetType::TConstIterator,
774 typename ElementSetType::TIterator
777 typedef std::conditional_t<bConst, const KeyType, KeyType> ItKeyType;
778 typedef std::conditional_t<bConst, const ValueType, ValueType> ItValueType;
779 typedef std::conditional_t<bConst, const typename ElementSetType::ElementType, typename ElementSetType::ElementType> PairType;
806 return PairIt == Rhs.PairIt;
810 return PairIt != Rhs.PairIt;
841 template<
bool bConst>
845 typedef std::conditional_t<bConst, typename ElementSetType::TConstKeyIterator, typename ElementSetType::TKeyIterator> SetItType;
846 typedef std::conditional_t<bConst, const KeyType, KeyType> ItKeyType;
847 typedef std::conditional_t<bConst, const ValueType, ValueType> ItValueType;
875 return SetIt.GetId();
888 return SetIt.operator*();
892 return SetIt.operator->();
905 Pairs.WriteMemoryImage(Writer);
910 Pairs.CopyUnfrozen(
Context, Dst);
915 ElementSetType::AppendHash(LayoutParams, Hasher);
927 , bElementsHaveBeenRemoved(
false)
935 if (bElementsHaveBeenRemoved && bRequiresRehashOnRemoval)
948 bElementsHaveBeenRemoved =
true;
953 bool bElementsHaveBeenRemoved;
954 bool bRequiresRehashOnRemoval;
975 using IteratorType =
typename ElementSetType::TConstKeyIterator;
991 using IteratorType =
typename ElementSetType::TKeyIterator;
1051template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1068 template<
typename OtherSetAllocator>
1075 template<
typename OtherSetAllocator>
1082 template<
typename OtherSetAllocator>
1090 template<
typename OtherSetAllocator>
1100 constexpr static bool bHasIntrusiveUnsetOptionalState =
true;
1109 return Super::operator==(
Tag);
1120 template<
typename PREDICATE_CLASS>
1130 template<
typename PREDICATE_CLASS>
1140 template<
typename PREDICATE_CLASS>
1150 template<
typename PREDICATE_CLASS>
1163 Super::Pairs.SortFreeList();
1169 template<
typename PREDICATE_CLASS>
1170 class FKeyComparisonClass
1181 [[
nodiscard]]
inline bool operator()(
const typename Super::ElementType&
A,
const typename Super::ElementType&
B)
const
1183 return Predicate(
A.Key,
B.Key);
1188 template<
typename PREDICATE_CLASS>
1189 class FValueComparisonClass
1200 [[
nodiscard]]
inline bool operator()(
const typename Super::ElementType&
A,
const typename Super::ElementType&
B)
const
1202 return Predicate(
A.Value,
B.Value);
1211 template <
typename,
typename>
1214 static_assert(!KeyFuncs::bAllowDuplicateKeys,
TMAP_STRINGIFY(
TMAP)
" cannot be instantiated with a KeyFuncs which allows duplicate keys");
1237 template<
typename OtherSetAllocator>
1244 template<
typename OtherSetAllocator>
1256 this->
Add(Element.Key, Element.Value);
1263 constexpr static bool bHasIntrusiveUnsetOptionalState =
true;
1272 return Super::operator==(
Tag);
1279 template<
typename OtherSetAllocator>
1287 template<
typename OtherSetAllocator>
1300 this->
Add(Element.Key, Element.Value);
1322 Super::Pairs.Remove(
PairId);
1336 Super::Pairs.RemoveStable(
PairId);
1341 template<
typename ComparableKey>
1351 Super::Pairs.Remove(
PairId);
1368 Super::Pairs.Remove(
PairId);
1378 template<
typename OtherSetAllocator>
1396 template<
typename OtherSetAllocator>
1402 this->
Add(Pair.Key, Pair.Value);
1418 template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1421 Object.WriteMemoryImage(Writer);
1424 template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1431 template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1442template<
typename KeyType,
typename ValueType,
typename SetAllocator ,
typename KeyFuncs >
1445 static_assert(KeyFuncs::bAllowDuplicateKeys,
TMAP_STRINGIFY(
TMULTIMAP)
" cannot be instantiated with a KeyFuncs which disallows duplicate keys");
1460 template<
typename OtherSetAllocator>
1467 template<
typename OtherSetAllocator>
1479 this->
Add(Element.Key, Element.Value);
1486 constexpr static bool bHasIntrusiveUnsetOptionalState =
true;
1495 return Super::operator==(
Tag);
1502 template<
typename OtherSetAllocator>
1510 template<
typename OtherSetAllocator>
1523 this->
Add(Element.Key, Element.Value);
1606 template <
typename InitKeyType,
typename InitValueType>
1626 return Super::Remove(
InKey);
1691 Super::Pairs.RemoveStable(It.GetId());
1725 if (It->Value ==
Value)
1749 return Super::Num();
1758 template<
typename OtherSetAllocator>
1776 template<
typename OtherSetAllocator>
1782 this->
Add(Pair.Key, Pair.Value);
1789 template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1792 Object.WriteMemoryImage(Writer);
1795 template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1802 template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1812template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
struct TIsTMap<
TMAP<KeyType, ValueType, SetAllocator, KeyFuncs>> {
enum {
Value =
true }; };
1813template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
struct TIsTMap<const
TMAP<KeyType, ValueType, SetAllocator, KeyFuncs>> {
enum {
Value =
true }; };
1814template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
struct TIsTMap<
volatile TMAP<KeyType, ValueType, SetAllocator, KeyFuncs>> {
enum {
Value =
true }; };
1815template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
struct TIsTMap<const
volatile TMAP<KeyType, ValueType, SetAllocator, KeyFuncs>> {
enum {
Value =
true }; };
1819 template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1826 template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1861 Slot <<
InMap.Pairs;
1865 template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1868 return TSetPrivateFriend::LegacyCompareEqual(
A.Pairs,
B.Pairs);
1873template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1876 return TMAPPRIVATEFRIEND::Serialize(Ar,
Map);
1880template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1883 TMAPPRIVATEFRIEND::SerializeStructured(Slot,
InMap);
1887template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1890 return TMAPPRIVATEFRIEND::LegacyCompareEqual(
A,
B);
1892template <
typename KeyType,
typename ValueType,
typename SetAllocator,
typename KeyFuncs>
1895 return !TMAPPRIVATEFRIEND::LegacyCompareEqual(
A,
B);
constexpr bool operator!(EUpdateTransformFlags Value)
Definition ActorComponent.h:116
#define check(expr)
Definition AssertionMacros.h:314
#define UE_STATIC_ASSERT_WARN(bExpression, Message)
Definition CoreMiscDefines.h:431
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
return true
Definition ExternalRpcRegistry.cpp:601
#define TMAP_STRINGIFY(name)
Definition Map.h.inl:13
#define TMAP
Definition Map.h.inl:9
#define TMULTIMAP
Definition Map.h.inl:11
#define TSORTABLEMAPBASE
Definition Map.h.inl:8
#define TMAPBASE
Definition Map.h.inl:31
UE_FORCEINLINE_HINT FArchive & operator<<(FArchive &Ar, TMAPBASE< KeyType, ValueType, SetAllocator, KeyFuncs > &Map)
Definition Map.h.inl:1874
bool LegacyCompareNotEqual(const TMAPBASE< KeyType, ValueType, SetAllocator, KeyFuncs > &A, const TMAPBASE< KeyType, ValueType, SetAllocator, KeyFuncs > &B)
Definition Map.h.inl:1893
bool LegacyCompareEqual(const TMAPBASE< KeyType, ValueType, SetAllocator, KeyFuncs > &A, const TMAPBASE< KeyType, ValueType, SetAllocator, KeyFuncs > &B)
Definition Map.h.inl:1888
#define DECLARE_TEMPLATE_INTRINSIC_TYPE_LAYOUT(TemplatePrefix, T)
Definition MemoryLayout.h:661
const bool
Definition NetworkReplayStreaming.h:178
TIndexedContainerIterator< const TArray< FPreviewAttachedObjectPair >, const FPreviewAttachedObjectPair, int32 > TConstIterator
Definition PreviewAssetAttachComponent.h:69
TIndexedContainerIterator< TArray< FPreviewAttachedObjectPair >, FPreviewAttachedObjectPair, int32 > TIterator
Definition PreviewAssetAttachComponent.h:68
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTempIfPossible(T &&Obj) noexcept
Definition UnrealTemplate.h:538
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition Archive.h:1208
Definition MemoryImageWriter.h:14
Definition MemoryImageWriter.h:78
Definition OutputDevice.h:133
Definition SecureHash.h:314
Definition SetUtilities.h:95
Definition StructuredArchiveSlots.h:52
UE_FORCEINLINE_HINT PairType & operator*() const
Definition Map.h.inl:827
UE_FORCEINLINE_HINT ItValueType & Value() const
Definition Map.h.inl:817
UE_FORCEINLINE_HINT ItKeyType & Key() const
Definition Map.h.inl:813
UE_FORCEINLINE_HINT PairType * operator->() const
Definition Map.h.inl:831
UE_FORCEINLINE_HINT TBaseIterator(const PairItType &InElementIt)
Definition Map.h.inl:782
PairItType PairIt
Definition Map.h.inl:837
UE_FORCEINLINE_HINT bool operator!=(const TBaseIterator &Rhs) const
Definition Map.h.inl:808
UE_FORCEINLINE_HINT bool operator==(const TBaseIterator &Rhs) const
Definition Map.h.inl:804
UE_FORCEINLINE_HINT TBaseIterator & operator++()
Definition Map.h.inl:787
UE_FORCEINLINE_HINT FSetElementId GetId() const
Definition Map.h.inl:822
std::conditional_t< bConst, typename ElementSetType::TConstIterator, typename ElementSetType::TIterator > PairItType
Definition Map.h.inl:775
UE_FORCEINLINE_HINT ItKeyType & Key() const
Definition Map.h.inl:877
UE_FORCEINLINE_HINT TBaseKeyIterator & operator++()
Definition Map.h.inl:856
SetItType SetIt
Definition Map.h.inl:896
UE_FORCEINLINE_HINT ItValueType & Value() const
Definition Map.h.inl:881
UE_FORCEINLINE_HINT TBaseKeyIterator(const SetItType &InSetIt)
Definition Map.h.inl:851
UE_FORCEINLINE_HINT FSetElementId GetId() const
Definition Map.h.inl:873
UE_FORCEINLINE_HINT TConstIterator(const TMAPBASE &InMap)
Definition Map.h.inl:961
typename IteratorType::KeyArgumentType KeyArgumentType
Definition Map.h.inl:978
UE_FORCEINLINE_HINT TConstKeyIterator(const TMAPBASE &InMap, KeyArgumentType InKey)
Definition Map.h.inl:980
void RemoveCurrent()
Definition Map.h.inl:945
TIterator(TMAPBASE &InMap, bool bInRequiresRehashOnRemoval=false)
Definition Map.h.inl:924
~TIterator()
Definition Map.h.inl:933
UE_FORCEINLINE_HINT void RemoveCurrent()
Definition Map.h.inl:1002
UE_FORCEINLINE_HINT TKeyIterator(TMAPBASE &InMap, KeyArgumentType InKey)
Definition Map.h.inl:996
typename IteratorType::KeyArgumentType KeyArgumentType
Definition Map.h.inl:994
UE_FORCEINLINE_HINT int32 Num() const
Definition Map.h.inl:194
typename ElementSetType::TRangedForIterator TRangedForIterator
Definition Map.h.inl:967
UE_FORCEINLINE_HINT TKeyIterator CreateKeyIterator(typename TKeyIterator::KeyArgumentType InKey)
Definition Map.h.inl:1021
TSET< ElementType, KeyFuncs, SetAllocator > ElementSetType
Definition Map.h.inl:764
TMAPBASE(const TMAPBASE &)=default
UE_FORCEINLINE_HINT ValueType & AddByHash(uint32 KeyHash, const KeyType &InKey, ValueType &&InValue)
Definition Map.h.inl:327
TMAPBASE & operator=(const TMAPBASE &)=default
UE_FORCEINLINE_HINT FSetElementId FindId(KeyInitType Key) const
Definition Map.h.inl:536
UE_FORCEINLINE_HINT TIterator CreateIterator()
Definition Map.h.inl:1009
ValueType & Emplace(InitKeyType &&InKey, InitValueType &&InValue)
Definition Map.h.inl:361
ValueType * Find(KeyConstPointerType Key)
Definition Map.h.inl:486
UE_FORCEINLINE_HINT FSetElementId FindIdByHash(uint32 KeyHash, const ComparableKey &Key) const
Definition Map.h.inl:543
void Dump(FOutputDevice &Ar)
Definition Map.h.inl:758
TMAP< KeyType, ValueType, SetAllocator, KeyFuncs > FilterByPredicate(Predicate Pred) const
Definition Map.h.inl:465
typename ElementSetType::TRangedForConstIterator TRangedForConstIterator
Definition Map.h.inl:968
ElementSetType Pairs
Definition Map.h.inl:900
UE_FORCEINLINE_HINT void Reserve(int32 Number)
Definition Map.h.inl:177
UE_FORCEINLINE_HINT ValueType & FindOrAddByHash(uint32 KeyHash, KeyType &&Key)
Definition Map.h.inl:605
ValueType & EmplaceByHash(uint32 KeyHash, InitKeyType &&InKey, InitValueType &&InValue)
Definition Map.h.inl:370
UE_FORCEINLINE_HINT void Empty(int32 ExpectedNumElements=0)
Definition Map.h.inl:147
UE_FORCEINLINE_HINT ValueType & FindOrAddByHash(uint32 KeyHash, const KeyType &Key, ValueType &&Value)
Definition Map.h.inl:622
UE_FORCEINLINE_HINT SIZE_T GetAllocatedSize() const
Definition Map.h.inl:297
UE_FORCEINLINE_HINT ValueType & FindOrAddByHash(uint32 KeyHash, const KeyType &Key)
Definition Map.h.inl:604
ValueType & Emplace(InitKeyType &&InKey)
Definition Map.h.inl:384
consteval TMAPBASE(EConstEval)
Definition Map.h.inl:41
friend bool operator!=(const TMAPBASE &, const TMAPBASE &)=delete
UE_FORCEINLINE_HINT void CountBytes(FArchive &Ar) const
Definition Map.h.inl:308
UE_FORCEINLINE_HINT void CompactStable()
Definition Map.h.inl:171
UE_FORCEINLINE_HINT ValueType & Add(KeyType &&InKey, ValueType &&InValue)
Definition Map.h.inl:323
void GenerateValueArray(TArray< ValueType, Allocator > &OutArray) const
Definition Map.h.inl:744
ValueType * FindByHash(uint32 KeyHash, const ComparableKey &Key)
Definition Map.h.inl:502
UE_FORCEINLINE_HINT int32 GetMaxIndex() const
Definition Map.h.inl:206
TTypeTraits< KeyType >::ConstPointerType KeyConstPointerType
Definition Map.h.inl:34
UE_FORCEINLINE_HINT const ValueType & FindByHashChecked(uint32 KeyHash, const ComparableKey &Key) const
Definition Map.h.inl:525
TMAPBASE(TMAPBASE &&)=default
static void AppendHash(const FPlatformTypeLayoutParameters &LayoutParams, FSHA1 &Hasher)
Definition Map.h.inl:913
TTypeTraits< ValueType >::ConstInitType ValueInitType
Definition Map.h.inl:36
UE_FORCEINLINE_HINT bool IsValidId(FSetElementId Id) const
Definition Map.h.inl:216
UE_FORCEINLINE_HINT ValueType & FindOrAdd(const KeyType &Key, ValueType &&Value)
Definition Map.h.inl:616
UE_FORCEINLINE_HINT bool Contains(KeyConstPointerType Key) const
Definition Map.h.inl:707
int32 RemoveStable(KeyConstPointerType InKey)
Definition Map.h.inl:412
TArray< ElementType > Array() const
Definition Map.h.inl:720
const ElementType * FindArbitraryElement() const
Definition Map.h.inl:696
const ValueType & FindChecked(KeyConstPointerType Key) const
Definition Map.h.inl:632
friend uint32 GetTypeHash(const TMAPBASE &Map)=delete
TMAPBASE & operator=(const TMAPBASE< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &Other)
Definition Map.h.inl:97
friend bool operator==(const TMAPBASE &, const TMAPBASE &)=delete
void GenerateKeyArray(TArray< KeyType, Allocator > &OutArray) const
Definition Map.h.inl:730
TMAPBASE(FIntrusiveUnsetOptionalState Tag)
Definition Map.h.inl:75
UE_FORCEINLINE_HINT TConstKeyIterator CreateConstKeyIterator(typename TConstKeyIterator::KeyArgumentType InKey) const
Definition Map.h.inl:1027
TMAPBASE & operator=(TMAPBASE< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &&Other)
Definition Map.h.inl:89
UE_FORCEINLINE_HINT ValueType & FindOrAdd(const KeyType &Key, const ValueType &Value)
Definition Map.h.inl:615
~TMAPBASE()
Definition Map.h.inl:64
UE_FORCEINLINE_HINT ValueType & Add(const KeyType &InKey)
Definition Map.h.inl:337
UE_FORCEINLINE_HINT ValueType & AddByHash(uint32 KeyHash, KeyType &&InKey)
Definition Map.h.inl:342
UE_FORCEINLINE_HINT ValueType & FindOrAdd(KeyType &&Key, const ValueType &Value)
Definition Map.h.inl:617
UE_FORCEINLINE_HINT ValueType & FindOrAdd(const KeyType &Key)
Definition Map.h.inl:600
UE_FORCEINLINE_HINT ValueType & AddByHash(uint32 KeyHash, KeyType &&InKey, const ValueType &InValue)
Definition Map.h.inl:328
UE_FORCEINLINE_HINT TRangedForConstIterator begin() const
Definition Map.h.inl:1040
TMAPBASE(TMAPBASE< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &&Other)
Definition Map.h.inl:52
bool OrderIndependentCompareEqual(const TMAPBASE &Other) const
Definition Map.h.inl:113
UE_FORCEINLINE_HINT ValueType & Add(const KeyType &InKey, const ValueType &InValue)
Definition Map.h.inl:320
UE_FORCEINLINE_HINT const ValueType * Find(KeyConstPointerType Key) const
Definition Map.h.inl:495
UE_FORCEINLINE_HINT TConstIterator CreateConstIterator() const
Definition Map.h.inl:1015
UE_FORCEINLINE_HINT const ValueType * FindByHash(uint32 KeyHash, const ComparableKey &Key) const
Definition Map.h.inl:512
UE_FORCEINLINE_HINT ValueType & Add(const KeyType &InKey, ValueType &&InValue)
Definition Map.h.inl:321
UE_FORCEINLINE_HINT ValueType & Add(KeyType &&InKey)
Definition Map.h.inl:338
ValueType FindRef(KeyConstPointerType Key, ValueType DefaultValue) const
Definition Map.h.inl:675
UE_FORCEINLINE_HINT ValueType & AddByHash(uint32 KeyHash, const KeyType &InKey, const ValueType &InValue)
Definition Map.h.inl:326
int32 GetKeys(TArray< KeyType, Allocator > &OutKeys) const
Definition Map.h.inl:239
UE_FORCEINLINE_HINT ElementType & Get(FSetElementId Id)
Definition Map.h.inl:222
UE_FORCEINLINE_HINT const ElementType & Get(FSetElementId Id) const
Definition Map.h.inl:228
bool IsEmpty() const
Definition Map.h.inl:188
UE_FORCEINLINE_HINT TRangedForIterator end()
Definition Map.h.inl:1041
UE_FORCEINLINE_HINT void Shrink()
Definition Map.h.inl:159
TMAPBASE & operator=(TMAPBASE &&)=default
void WriteMemoryImage(FMemoryImageWriter &Writer) const
Definition Map.h.inl:903
UE_FORCEINLINE_HINT void Reset()
Definition Map.h.inl:153
UE_FORCEINLINE_HINT ValueType & FindOrAddByHash(uint32 KeyHash, const KeyType &Key, const ValueType &Value)
Definition Map.h.inl:621
UE_FORCEINLINE_HINT ValueType & Add(const TTuple< KeyType, ValueType > &InKeyValue)
Definition Map.h.inl:350
UE_FORCEINLINE_HINT ValueType & AddByHash(uint32 KeyHash, KeyType &&InKey, ValueType &&InValue)
Definition Map.h.inl:329
ElementType * FindArbitraryElement()
Definition Map.h.inl:690
UE_FORCEINLINE_HINT ValueType & FindOrAdd(KeyType &&Key)
Definition Map.h.inl:601
TTypeTraits< KeyType >::ConstInitType KeyInitType
Definition Map.h.inl:35
UE_FORCEINLINE_HINT bool ContainsByHash(uint32 KeyHash, const ComparableKey &Key) const
Definition Map.h.inl:714
UE_FORCEINLINE_HINT ValueType & Add(TTuple< KeyType, ValueType > &&InKeyValue)
Definition Map.h.inl:351
UE_FORCEINLINE_HINT ValueType & FindOrAddByHash(uint32 KeyHash, KeyType &&Key, ValueType &&Value)
Definition Map.h.inl:624
ValueType & FindChecked(KeyConstPointerType Key)
Definition Map.h.inl:645
UE_FORCEINLINE_HINT ValueType & AddByHash(uint32 KeyHash, const KeyType &InKey)
Definition Map.h.inl:341
UE_FORCEINLINE_HINT TRangedForConstIterator end() const
Definition Map.h.inl:1042
UE_FORCEINLINE_HINT int32 Max() const
Definition Map.h.inl:200
int32 Remove(KeyConstPointerType InKey)
Definition Map.h.inl:406
UE_FORCEINLINE_HINT ValueType & FindOrAdd(KeyType &&Key, ValueType &&Value)
Definition Map.h.inl:618
TPair< KeyType, ValueType > ElementType
Definition Map.h.inl:37
UE_FORCEINLINE_HINT ValueType & Add(KeyType &&InKey, const ValueType &InValue)
Definition Map.h.inl:322
ValueType & FindByHashChecked(uint32 KeyHash, const ComparableKey &Key)
Definition Map.h.inl:518
ValueType FindRef(KeyConstPointerType Key) const
Definition Map.h.inl:658
UE_FORCEINLINE_HINT ValueType & FindOrAddByHash(uint32 KeyHash, KeyType &&Key, const ValueType &Value)
Definition Map.h.inl:623
static constexpr bool bHasIntrusiveUnsetOptionalState
Definition Map.h.inl:72
void CopyUnfrozen(const FMemoryUnfreezeContent &Context, void *Dst) const
Definition Map.h.inl:908
UE_FORCEINLINE_HINT void Compact()
Definition Map.h.inl:165
UE_FORCEINLINE_HINT TRangedForIterator begin()
Definition Map.h.inl:1039
TMAPBASE(const TMAPBASE< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &Other)
Definition Map.h.inl:59
bool operator==(FIntrusiveUnsetOptionalState Tag) const
Definition Map.h.inl:79
ValueType & EmplaceByHash(uint32 KeyHash, InitKeyType &&InKey)
Definition Map.h.inl:393
const KeyType * FindKey(ValueInitType Value) const
Definition Map.h.inl:445
constexpr TMAPBASE()=default
int32 GetKeys(TSet< KeyType, InSetKeyFuncs, InSetAllocator > &OutKeys) const
Definition Map.h.inl:272
int32 RemoveByHash(uint32 KeyHash, const ComparableKey &Key)
Definition Map.h.inl:420
UE_FORCEINLINE_HINT void Remove(FSetElementId Id)
Definition Map.h.inl:430
Definition Map.h.inl:1210
Super::KeyInitType KeyInitType
Definition Map.h.inl:1223
TSORTABLEMAPBASE< KeyType, ValueType, SetAllocator, KeyFuncs > Super
Definition Map.h.inl:1222
TMAP & operator=(std::initializer_list< TPairInitializer< const KeyType &, const ValueType & > > InitList)
Definition Map.h.inl:1295
bool RemoveAndCopyValueByHash(uint32 KeyHash, const ComparableKey &Key, ValueType &OutRemovedValue)
Definition Map.h.inl:1342
consteval TMAP(EConstEval)
Definition Map.h.inl:1227
SetAllocator SetAllocatorType
Definition Map.h.inl:1219
void Append(const TMAP< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &OtherMap)
Definition Map.h.inl:1397
void Append(TMAP< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &&OtherMap)
Definition Map.h.inl:1379
TMAP(FIntrusiveUnsetOptionalState Tag)
Definition Map.h.inl:1266
Super::KeyConstPointerType KeyConstPointerType
Definition Map.h.inl:1224
TMAP(TMAP< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &&Other)
Definition Map.h.inl:1238
ValueType FindAndRemoveChecked(KeyConstPointerType Key)
Definition Map.h.inl:1363
InKeyType KeyType
Definition Map.h.inl:1217
TMAP & operator=(const TMAP &)=default
bool RemoveAndCopyValue(KeyInitType Key, ValueType &OutRemovedValue)
Definition Map.h.inl:1313
UE_FORCEINLINE_HINT const ValueType & operator[](KeyConstPointerType Key) const
Definition Map.h.inl:1410
UE_FORCEINLINE_HINT ValueType & operator[](KeyConstPointerType Key)
Definition Map.h.inl:1406
TMAP(const TMAP< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &Other)
Definition Map.h.inl:1245
TMAP(std::initializer_list< TPairInitializer< const KeyType &, const ValueType & > > InitList)
Definition Map.h.inl:1251
TMAP & operator=(const TMAP< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &Other)
Definition Map.h.inl:1288
bool RemoveAndCopyValueStable(KeyInitType Key, ValueType &OutRemovedValue)
Definition Map.h.inl:1327
TMAP(const TMAP &)=default
TMAP & operator=(TMAP< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &&Other)
Definition Map.h.inl:1280
InValueType ValueType
Definition Map.h.inl:1218
TMAP & operator=(TMAP &&)=default
bool operator==(FIntrusiveUnsetOptionalState Tag) const
Definition Map.h.inl:1270
KeyFuncs KeyFuncsType
Definition Map.h.inl:1220
Definition Map.h.inl:1444
UE_FORCEINLINE_HINT ValueType & AddUnique(const KeyType &InKey, ValueType &&InValue)
Definition Map.h.inl:1591
TMULTIMAP & operator=(const TMULTIMAP &)=default
TMULTIMAP(TMULTIMAP &&)=default
void Append(const TMULTIMAP< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &OtherMultiMap)
Definition Map.h.inl:1777
void MultiFindPointer(KeyInitType Key, TArray< const ValueType *, Allocator > &OutValues, bool bMaintainOrder=false) const
Definition Map.h.inl:1556
Super::KeyConstPointerType KeyConstPointerType
Definition Map.h.inl:1449
Super::KeyInitType KeyInitType
Definition Map.h.inl:1450
TMULTIMAP & operator=(TMULTIMAP &&)=default
constexpr TMULTIMAP()=default
int32 Num(KeyInitType Key) const
Definition Map.h.inl:1735
UE_FORCEINLINE_HINT int32 Num() const
Definition Map.h.inl:1747
TMULTIMAP & operator=(std::initializer_list< TPairInitializer< const KeyType &, const ValueType & > > InitList)
Definition Map.h.inl:1518
TMULTIMAP & operator=(TMULTIMAP< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &&Other)
Definition Map.h.inl:1503
UE_FORCEINLINE_HINT const ValueType * FindPair(KeyInitType Key, ValueInitType Value) const
Definition Map.h.inl:1706
void MultiFind(KeyInitType Key, TArray< ValueType, Allocator > &OutValues, bool bMaintainOrder=false) const
Definition Map.h.inl:1535
TMULTIMAP(const TMULTIMAP< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &Other)
Definition Map.h.inl:1468
ValueType * FindPair(KeyInitType Key, ValueInitType Value)
Definition Map.h.inl:1719
Super::ValueInitType ValueInitType
Definition Map.h.inl:1451
UE_FORCEINLINE_HINT ValueType & AddUnique(KeyType &&InKey, ValueType &&InValue)
Definition Map.h.inl:1593
TSORTABLEMAPBASE< KeyType, ValueType, SetAllocator, KeyFuncs > Super
Definition Map.h.inl:1448
int32 Remove(KeyInitType InKey, ValueInitType InValue)
Definition Map.h.inl:1636
TMULTIMAP(std::initializer_list< TPairInitializer< const KeyType &, const ValueType & > > InitList)
Definition Map.h.inl:1474
void Append(TMULTIMAP< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &&OtherMultiMap)
Definition Map.h.inl:1759
UE_FORCEINLINE_HINT ValueType & AddUnique(const KeyType &InKey, const ValueType &InValue)
Definition Map.h.inl:1590
int32 RemoveSingle(KeyInitType InKey, ValueInitType InValue)
Definition Map.h.inl:1659
ValueType & EmplaceUnique(InitKeyType &&InKey, InitValueType &&InValue)
Definition Map.h.inl:1607
TMULTIMAP & operator=(const TMULTIMAP< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &Other)
Definition Map.h.inl:1511
TMULTIMAP(FIntrusiveUnsetOptionalState Tag)
Definition Map.h.inl:1489
TMULTIMAP(TMULTIMAP< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &&Other)
Definition Map.h.inl:1461
UE_FORCEINLINE_HINT ValueType & AddUnique(KeyType &&InKey, const ValueType &InValue)
Definition Map.h.inl:1592
bool RemoveSingleStable(KeyInitType InKey, ValueInitType InValue)
Definition Map.h.inl:1685
bool operator==(FIntrusiveUnsetOptionalState Tag) const
Definition Map.h.inl:1493
UE_FORCEINLINE_HINT int32 Remove(KeyConstPointerType InKey)
Definition Map.h.inl:1624
void MultiFindPointer(KeyInitType Key, TArray< ValueType *, Allocator > &OutValues, bool bMaintainOrder=false)
Definition Map.h.inl:1568
TMULTIMAP(const TMULTIMAP &)=default
Definition Map.h.inl:1053
constexpr TSORTABLEMAPBASE()=default
TSORTABLEMAPBASE(const TSORTABLEMAPBASE &)=default
UE_FORCEINLINE_HINT void KeyStableSort(const PREDICATE_CLASS &Predicate)
Definition Map.h.inl:1131
TSORTABLEMAPBASE & operator=(const TSORTABLEMAPBASE< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &Other)
Definition Map.h.inl:1091
TSORTABLEMAPBASE(TSORTABLEMAPBASE &&)=default
UE_FORCEINLINE_HINT void ValueSort(const PREDICATE_CLASS &Predicate)
Definition Map.h.inl:1141
TSORTABLEMAPBASE & operator=(TSORTABLEMAPBASE &&)=default
TSORTABLEMAPBASE(FIntrusiveUnsetOptionalState Tag)
Definition Map.h.inl:1103
TSORTABLEMAPBASE & operator=(const TSORTABLEMAPBASE &)=default
TMAPBASE< KeyType, ValueType, SetAllocator, KeyFuncs > Super
Definition Map.h.inl:1055
bool operator==(FIntrusiveUnsetOptionalState Tag) const
Definition Map.h.inl:1107
TSORTABLEMAPBASE(const TSORTABLEMAPBASE< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &Other)
Definition Map.h.inl:1076
TSORTABLEMAPBASE(TSORTABLEMAPBASE< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &&Other)
Definition Map.h.inl:1069
consteval TSORTABLEMAPBASE(EConstEval)
Definition Map.h.inl:1058
UE_FORCEINLINE_HINT void KeySort(const PREDICATE_CLASS &Predicate)
Definition Map.h.inl:1121
UE_FORCEINLINE_HINT void ValueStableSort(const PREDICATE_CLASS &Predicate)
Definition Map.h.inl:1151
TSORTABLEMAPBASE & operator=(TSORTABLEMAPBASE< KeyType, ValueType, OtherSetAllocator, KeyFuncs > &&Other)
Definition Map.h.inl:1083
void SortFreeList()
Definition Map.h.inl:1161
UE_REWRITE void Reverse(T(&Array)[ArraySize])
Definition Reverse.h:28
UE_NODEBUG void IntrinsicWriteMemoryImage(FMemoryImageWriter &Writer, const TArray< T, AllocatorType > &Object, const FTypeLayoutDesc &)
Definition Array.h:3957
CORE_API uint32 DefaultAppendHash(const FTypeLayoutDesc &TypeDesc, const FPlatformTypeLayoutParameters &LayoutParams, FSHA1 &Hasher)
Definition MemoryImage.cpp:575
UE_NODEBUG uint32 IntrinsicUnfrozenCopy(const FMemoryUnfreezeContent &Context, const TArray< T, AllocatorType > &Object, void *OutDst)
Definition Array.h:3963
UE_NODEBUG uint32 IntrinsicAppendHash(const TArray< T, AllocatorType > *DummyObject, const FTypeLayoutDesc &TypeDesc, const FPlatformTypeLayoutParameters &LayoutParams, FSHA1 &Hasher)
Definition Array.h:3970
@ false
Definition radaudio_common.h:23
Definition IntrusiveUnsetOptionalState.h:71
Definition MemoryLayout.h:108
@ Value
Definition Map.h:125
Definition Map.h.inl:1818
static FArchive & Serialize(FArchive &Ar, TMAPBASE< KeyType, ValueType, SetAllocator, KeyFuncs > &Map)
Definition Map.h.inl:1820
static bool LegacyCompareEqual(const TMAPBASE< KeyType, ValueType, SetAllocator, KeyFuncs > &A, const TMAPBASE< KeyType, ValueType, SetAllocator, KeyFuncs > &B)
Definition Map.h.inl:1866
static UE_FORCEINLINE_HINT void SerializeStructured(FStructuredArchive::FSlot Slot, TMAPBASE< KeyType, ValueType, SetAllocator, KeyFuncs > &InMap)
Definition Map.h.inl:1827
TCallTraits< T >::ParamType ConstInitType
Definition UnrealTypeTraits.h:336
TCallTraits< T >::ConstPointerType ConstPointerType
Definition UnrealTypeTraits.h:337