string_hash.h 538 B

12345678910111213141516171819202122
  1. #pragma once
  2. #include <cstddef>
  3. // reduce code bloat and cycled includes, declare functions here
  4. #if defined(_64_)
  5. ui64 CityHash64(const char* buf, size_t len) noexcept;
  6. #else
  7. template <typename T>
  8. T MurmurHash(const void* buf, size_t len) noexcept;
  9. #endif
  10. namespace NHashPrivate {
  11. template <typename C>
  12. size_t ComputeStringHash(const C* ptr, size_t size) noexcept {
  13. #if defined(_64_)
  14. return CityHash64((const char*)ptr, size * sizeof(C));
  15. #else
  16. return MurmurHash<size_t>(ptr, size * sizeof(C));
  17. #endif
  18. }
  19. }