diff options
author | shadchin <shadchin@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:44:39 +0300 |
commit | e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0 (patch) | |
tree | 64175d5cadab313b3e7039ebaa06c5bc3295e274 /contrib/libs/llvm12/include/llvm/ADT/Hashing.h | |
parent | 2598ef1d0aee359b4b6d5fdd1758916d5907d04f (diff) | |
download | ydb-e9656aae26e0358d5378e5b63dcac5c8dbe0e4d0.tar.gz |
Restoring authorship annotation for <shadchin@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/llvm12/include/llvm/ADT/Hashing.h')
-rw-r--r-- | contrib/libs/llvm12/include/llvm/ADT/Hashing.h | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/contrib/libs/llvm12/include/llvm/ADT/Hashing.h b/contrib/libs/llvm12/include/llvm/ADT/Hashing.h index da16cbb67a..d6d956afaf 100644 --- a/contrib/libs/llvm12/include/llvm/ADT/Hashing.h +++ b/contrib/libs/llvm12/include/llvm/ADT/Hashing.h @@ -59,7 +59,7 @@ #include <cassert> #include <cstring> #include <string> -#include <tuple> +#include <tuple> #include <utility> namespace llvm { @@ -120,10 +120,10 @@ template <typename T> hash_code hash_value(const T *ptr); template <typename T, typename U> hash_code hash_value(const std::pair<T, U> &arg); -/// Compute a hash_code for a tuple. -template <typename... Ts> -hash_code hash_value(const std::tuple<Ts...> &arg); - +/// Compute a hash_code for a tuple. +template <typename... Ts> +hash_code hash_value(const std::tuple<Ts...> &arg); + /// Compute a hash_code for a standard string. template <typename T> hash_code hash_value(const std::basic_string<T> &arg); @@ -657,26 +657,26 @@ hash_code hash_value(const std::pair<T, U> &arg) { return hash_combine(arg.first, arg.second); } -// Implementation details for the hash_value overload for std::tuple<...>(...). -namespace hashing { -namespace detail { - -template <typename... Ts, std::size_t... Indices> -hash_code hash_value_tuple_helper(const std::tuple<Ts...> &arg, - std::index_sequence<Indices...> indices) { - return hash_combine(std::get<Indices>(arg)...); -} - -} // namespace detail -} // namespace hashing - -template <typename... Ts> -hash_code hash_value(const std::tuple<Ts...> &arg) { - // TODO: Use std::apply when LLVM starts using C++17. - return ::llvm::hashing::detail::hash_value_tuple_helper( - arg, typename std::index_sequence_for<Ts...>()); -} - +// Implementation details for the hash_value overload for std::tuple<...>(...). +namespace hashing { +namespace detail { + +template <typename... Ts, std::size_t... Indices> +hash_code hash_value_tuple_helper(const std::tuple<Ts...> &arg, + std::index_sequence<Indices...> indices) { + return hash_combine(std::get<Indices>(arg)...); +} + +} // namespace detail +} // namespace hashing + +template <typename... Ts> +hash_code hash_value(const std::tuple<Ts...> &arg) { + // TODO: Use std::apply when LLVM starts using C++17. + return ::llvm::hashing::detail::hash_value_tuple_helper( + arg, typename std::index_sequence_for<Ts...>()); +} + // Declared and documented above, but defined here so that any of the hashing // infrastructure is available. template <typename T> |