#pragma once #include #include namespace NYT { //////////////////////////////////////////////////////////////////////////////// //! Updates #h with #k. //! Cf. |boost::hash_combine|. void HashCombine(size_t& h, size_t k); //! Updates #h with the hash of #k. //! Cf. |boost::hash_combine|. template void HashCombine(size_t& h, const T& k); //////////////////////////////////////////////////////////////////////////////// //! Provides a hasher that randomizes the results of another one. template > class TRandomizedHash { public: TRandomizedHash(); size_t operator () (const TElement& element) const; private: size_t Seed_; TUnderlying Underlying_; }; //////////////////////////////////////////////////////////////////////////////// } // namespace NYT #define HASH_INL_H_ #include "hash-inl.h" #undef HASH_INL_H_