#ifndef SPROUT_FUNCTIONAL_HASH_HASH_FWD_HPP #define SPROUT_FUNCTIONAL_HASH_HASH_FWD_HPP #include #include namespace sprout { // // hash // template struct hash; // // to_hash // template SPROUT_CONSTEXPR std::size_t to_hash(T const& v); // // hash_combine // template SPROUT_CONSTEXPR std::size_t hash_combine(std::size_t seed, T const& v); // // hash_range // template SPROUT_CONSTEXPR std::size_t hash_range(Iterator first, Iterator last); template SPROUT_CONSTEXPR std::size_t hash_range(std::size_t seed, Iterator first, Iterator last); // // hash_values_combine // template inline SPROUT_CONSTEXPR std::size_t hash_values_combine(std::size_t seed, Args const&... args); // // hash_values // template inline SPROUT_CONSTEXPR std::size_t hash_values(Args const&... args); } // namespace sprout #endif // #ifndef SPROUT_FUNCTIONAL_HASH_HASH_FWD_HPP