41 A -=
B;
A -=
C;
A ^= (
C>>13);
42 B -=
C;
B -=
A;
B ^= (
A<<8);
43 C -=
A;
C -=
B;
C ^= (
B>>13);
44 A -=
B;
A -=
C;
A ^= (
C>>12);
45 B -=
C;
B -=
A;
B ^= (
A<<16);
46 C -=
A;
C -=
B;
C ^= (
B>>5);
47 A -=
B;
A -=
C;
A ^= (
C>>3);
48 B -=
C;
B -=
A;
B ^= (
A<<10);
49 C -=
A;
C -=
B;
C ^= (
B>>15);
55 UE_REQUIRES((std::is_convertible_v<Types, uint32> && ...))
59 if constexpr (
sizeof...(Types) > 0)
76 return A ^ (
B + 0x9e3779b9 + (
A << 6) + (
A >> 2));
80 UE_REQUIRES((std::is_convertible_v<Types, uint32> && ...))
84 if constexpr (
sizeof...(Types) > 0)
116 std::enable_if_t<std::is_scalar_v<ScalarType> && !std::is_same_v<ScalarType, TCHAR*> && !std::is_same_v<ScalarType, const TCHAR*>>* =
nullptr
120 if constexpr (std::is_integral_v<ScalarType>)
122 if constexpr (
sizeof(ScalarType) <= 4)
126 else if constexpr (
sizeof(ScalarType) == 8)
130 else if constexpr (
sizeof(ScalarType) == 16)
138 static_assert(
sizeof(ScalarType) == 0,
"Unsupported integral type");
142 else if constexpr (std::is_floating_point_v<ScalarType>)
144 if constexpr (std::is_same_v<ScalarType, float>)
148 else if constexpr (std::is_same_v<ScalarType, double>)
154 static_assert(
sizeof(ScalarType) == 0,
"Unsupported floating point type");
158 else if constexpr (std::is_enum_v<ScalarType>)
162 else if constexpr (std::is_pointer_v<ScalarType>)
171 static_assert(
sizeof(ScalarType) == 0,
"Unsupported scalar type");
179 std::enable_if_t<!std::is_same_v<const T, const TCHAR>>* =
nullptr
181UE_DEPRECATED(
all,
"Hashing arrays is deprecated - use PointerHash() instead to force a conversion to a pointer or GetArrayHash to hash the array contents")
189 std::enable_if_t<std::is_same_v<const T, const TCHAR>>* =
nullptr
191UE_DEPRECATED(5.3,
"Hashing TCHAR arrays is deprecated - use PointerHash() to force a conversion to a pointer or FCrc::Strihash_DEPRECATED to do a string hash, or use TStringPointerSetKeyFuncs_DEPRECATED or TStringPointerMapKeyFuncs_DEPRECATED as keyfuncs for a TSet or TMap respectively")
218template <
typename BuilderType,
typename ArgType>
224#if UE_ENABLE_INCLUDE_ORDER_DEPRECATED_IN_5_6
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_REQUIRES(...)
Definition Requires.h:86
constexpr uint32 HashCombineFast(uint32 A, uint32 B)
Definition TypeHash.h:74
uint32 PointerHash(const void *Key)
Definition TypeHash.h:91
UE_FORCEINLINE_HINT uint32 GetTypeHashHelper(const T &V)
Definition TypeHash.h:215
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
uint32 GetArrayHash(const T *Ptr, uint64 Size, uint32 PreviousHash=0)
Definition TypeHash.h:200
uint32 GetTypeHash(ScalarType Value)
Definition TypeHash.h:118
void DispatchAppendHash(BuilderType &Builder, const ArgType &Arg)
Definition TypeHash.h:219
void AppendHash(FBlake3 &Builder, FName In)
Definition UnrealNames.cpp:3801
uint32 Size
Definition VulkanMemory.cpp:4034
Definition OverriddenPropertySet.cpp:45
uint32 MurmurFinalize32(uint32 Hash)
Definition TypeHash.h:17
Definition AdvancedWidgetsModule.cpp:13
static uint32 Strihash_DEPRECATED(const CharType *Data)