40 std::size_t operator() (
const std::string& str)
const
43#if defined(_M_AMD64) || defined(_M_X64) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(__aarch64__)
44 MIKTEX_ASSERT(
sizeof(std::size_t) == 8);
45 const std::size_t FNV_prime = 1099511628211ULL;
46 const std::size_t offset_basis = 14695981039346656037ULL;
48 MIKTEX_ASSERT(
sizeof(std::size_t) == 4);
49 const std::size_t FNV_prime = 16777619;
50 const std::size_t offset_basis = 2166136261;
52 std::size_t hash = offset_basis;
55 if (
static_cast<unsigned>(ch) >= 128)
60 else if (ch >=
'a' && ch <=
'z')
62 ch =
'A' + (ch -
'a');
64 hash ^= (std::size_t)ch;