5#include "Containers/Map.h"
8template<
typename ClassT,
typename FirstType,
typename SecondType>
37 ClassT::PairDefinitions.Reset();
46template<
typename DomainType,
typename RangeType>
64 if (
ensureAlwaysMsgf(!Image.Contains(Pair.X),
TEXT(
"This cannot be a bijection if there is a duplicate domain entry")))
66 Image.Emplace(Pair.X, Pair.Y);
68 if (
ensureAlwaysMsgf(!PreImage.Contains(Pair.Y),
TEXT(
"This cannot be a bijection if there is a duplicate range entry")))
70 PreImage.Emplace(Pair.Y, Pair.X);
#define ensureAlwaysMsgf(InExpression, InFormat,...)
Definition AssertionMacros.h:467
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition UnrealString.h.inl:34
Definition TwoWayMap.h:51
const RangeType Y
Definition TwoWayMap.h:53
const DomainType X
Definition TwoWayMap.h:52
Definition TwoWayMap.h:48
constexpr const DomainType * Find(const RangeType &InValue) const
Definition TwoWayMap.h:75
constexpr const RangeType & FindChecked(const DomainType &InValue) const
Definition TwoWayMap.h:90
constexpr const DomainType & FindChecked(const RangeType &InValue) const
Definition TwoWayMap.h:80
constexpr TBijectionMaps(const std::initializer_list< FPairValue > &InitList)
Definition TwoWayMap.h:59
constexpr const RangeType * Find(const DomainType &InValue) const
Definition TwoWayMap.h:85
Definition TwoWayMap.h:10
static const TMap< SecondType, FirstType > & GetSecondToFirst()
Definition TwoWayMap.h:19
static const TMap< FirstType, SecondType > & GetFirstToSecond()
Definition TwoWayMap.h:13
static void InitIfNeeded()
Definition TwoWayMap.h:24
static TMap< FirstType, SecondType > FirstToSecond
Definition TwoWayMap.h:42
TArray< TPair< FirstType, SecondType > > InitListType
Definition TwoWayMap.h:11
static TMap< SecondType, FirstType > SecondToFirst
Definition TwoWayMap.h:43