#ifndef SPROUT_FUNCTIONAL_HASH_HASH_RANGE_HPP #define SPROUT_FUNCTIONAL_HASH_HASH_RANGE_HPP #include #include #include #include #include namespace sprout { // // hash_range // template inline SPROUT_CONSTEXPR std::size_t hash_range(std::size_t seed, InputIterator first, InputIterator last) { return first != last ? sprout::hash_range(sprout::hash_combine(seed, *first), sprout::next(first), last) : seed ; } template inline SPROUT_CONSTEXPR std::size_t hash_range(InputIterator first, InputIterator last) { return sprout::hash_range(0, first, last); } } // namespace sprout #endif // #ifndef SPROUT_FUNCTIONAL_HASH_HASH_RANGE_HPP