#include <concepts>
#include <cstddef>
#include <functional>
#include <iterator>
#include <utility>
Go to the source code of this file.
|
| template<Hashable T> |
| size_t | osc::hash_combine (size_t seed, const T &v) noexcept(noexcept(std::hash< T >{}(v))) |
| |
| template<Hashable T> |
| size_t | osc::hash_of (const T &v) noexcept(noexcept(std::hash< T >{}(v))) |
| |
| template<Hashable T, Hashable... Ts> |
| size_t | osc::hash_of (const T &v, const Ts &... vs) |
| |
| template<typename Range > |
| size_t | osc::hash_range (const Range &range) noexcept(noexcept(hash_combine(0, *std::ranges::begin(range)))) |
| |