Context
The current hash_string_view implementation uses a hybrid strategy:
– at compile-time (std::is_constant_evaluated() == true) it falls back to a
constexpr FNV-1a + Murmur final-mix;
– at run-time it delegates to xxh3_64bits_withSeed().
Concerns
Digest mismatch across translation units
Two identical keys may hash to different 64-bit values depending on whether
the call happened in a constexpr context, causing UB in distributed /
persisted maps.
Context
The current
hash_string_viewimplementation uses a hybrid strategy:– at compile-time (
std::is_constant_evaluated() == true) it falls back to aconstexpr FNV-1a + Murmur final-mix;
– at run-time it delegates to
xxh3_64bits_withSeed().Concerns
Digest mismatch across translation units
Two identical keys may hash to different 64-bit values depending on whether
the call happened in a
constexprcontext, causing UB in distributed /persisted maps.