18 template<
typename HashType,
typename CharType>
21 static_assert(std::is_same_v<HashType, uint32> || std::is_same_v<HashType, uint64>,
"HashType must be an unsigned 32 or 64 bit integer.");
22 static_assert(
sizeof(CharType) <= 4,
"FNV1a only works with characters up to 32 bits.");
25 constexpr HashType
Offset = []() -> HashType
27 if constexpr (
sizeof(HashType) == 4)
33 return 0xcbf29ce484222325;
36 constexpr HashType Prime = []() -> HashType
38 if constexpr (
sizeof(HashType) == 4)
55 Fnv ^= (
Ch >> 24) & 0xff;
57 Fnv ^= (
Ch >> 16) & 0xff;
59 Fnv ^= (
Ch >> 8) & 0xff;
69 template<
typename HashType,
typename CharType,
int32 Len>
76 template<
typename CharType>
82 template<
typename CharType,
int32 Len>
89 template<
typename CharType>
95 template<
typename CharType,
int32 Len>
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr auto MakeStringView(const CharPtrOrRangeType &CharPtrOrRange UE_LIFETIMEBOUND) -> decltype(TStringView(CharPtrOrRange))
Definition StringView.h:508
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition StringView.h:107
Definition AdvancedWidgetsModule.cpp:13
constexpr uint32 HashStringFNV1a32(TStringView< CharType > String)
Definition Fnv.h:77
constexpr HashType HashStringFNV1a(TStringView< CharType > String)
Definition Fnv.h:19
constexpr uint64 HashStringFNV1a64(TStringView< CharType > String)
Definition Fnv.h:90