Delegate string hashing to standard library

Since standard library could have platform dependent specialized hashing functions.
Also the main idea is to let `qHash` handle whatever integer type `std::hash` returns and mix it with `seed` accordingly.

PR #18715.
This commit is contained in:
Chocobo1 2023-03-18 14:09:35 +08:00 committed by GitHub
parent d41a77841d
commit a450a7c6e1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 2 additions and 2 deletions

View file

@ -125,7 +125,7 @@ namespace std
{
uint qHash(const std::string &key, uint seed = 0)
{
return qHash(QByteArray::fromRawData(key.data(), static_cast<int>(key.length())), seed);
return ::qHash(std::hash<std::string> {}(key), seed);
}
}

View file

@ -167,6 +167,6 @@ std::size_t qHash(const Digest32<N> &key, const std::size_t seed = 0)
template <int N>
uint qHash(const Digest32<N> &key, const uint seed = 0)
{
return static_cast<uint>((std::hash<typename Digest32<N>::UnderlyingType> {})(key)) ^ seed;
return ::qHash(std::hash<typename Digest32<N>::UnderlyingType> {}(key), seed);
}
#endif