24 using is_transparent [[maybe_unused]] =
void;
33 std::size_t operator()(std::string_view s)
const&
noexcept;
35 template <
class StringStrongTypedef>
36 auto operator()(
const StringStrongTypedef& s)
const&
noexcept
37 ->
decltype(operator()(std::string_view{s.GetUnderlying()})) {
39 noexcept((*
this)(std::string_view{s.GetUnderlying()})),
40 "GetUnderlying() should not throw as this affects efficiency "
44 return (*
this)(std::string_view{s.GetUnderlying()});
47 HashSeed GetSeed()
const noexcept {
return seed_; }