#pragma once #include <cstddef> // reduce code bloat and cycled includes, declare functions here #if defined(_64_) && !defined(NO_CITYHASH) ui64 CityHash64(const char* buf, size_t len) noexcept; #else size_t MurmurHashSizeT(const char* buf, size_t len) noexcept; #endif namespace NHashPrivate { template <typename C> size_t ComputeStringHash(const C* ptr, size_t size) noexcept { #if defined(_64_) && !defined(NO_CITYHASH) return CityHash64((const char*)ptr, size * sizeof(C)); #else return MurmurHashSizeT((const char*)ptr, size * sizeof(C)); #endif } }