| Index: third_party/WebKit/Source/platform/wtf/HashFunctions.h
|
| diff --git a/third_party/WebKit/Source/platform/wtf/HashFunctions.h b/third_party/WebKit/Source/platform/wtf/HashFunctions.h
|
| index 37f195696767ccf5b5c60142b5322bc49f288500..dbcac614f5d406373f537bb7bcdbed58aff1c10f 100644
|
| --- a/third_party/WebKit/Source/platform/wtf/HashFunctions.h
|
| +++ b/third_party/WebKit/Source/platform/wtf/HashFunctions.h
|
| @@ -284,6 +284,30 @@ struct DefaultHash<std::pair<T, U>> {
|
| using Hash = PairHash<T, U>;
|
| };
|
|
|
| +template <typename T, typename U, typename V>
|
| +struct TupleHash {
|
| + static unsigned GetHash(const std::tuple<T, U, V>& p) {
|
| + return HashInts(HashInts(DefaultHash<T>::Hash::GetHash(std::get<0>(p)),
|
| + DefaultHash<U>::Hash::GetHash(std::get<1>(p))),
|
| + DefaultHash<V>::Hash::GetHash(std::get<2>(p)));
|
| + }
|
| + static bool Equal(const std::tuple<T, U, V>& a,
|
| + const std::tuple<T, U, V>& b) {
|
| + return DefaultHash<T>::Hash::Equal(std::get<0>(a), std::get<0>(b)) &&
|
| + DefaultHash<U>::Hash::Equal(std::get<1>(a), std::get<1>(b)) &&
|
| + DefaultHash<V>::Hash::Equal(std::get<2>(a), std::get<2>(b));
|
| + }
|
| + static const bool safe_to_compare_to_empty_or_deleted =
|
| + DefaultHash<T>::Hash::safe_to_compare_to_empty_or_deleted &&
|
| + DefaultHash<U>::Hash::safe_to_compare_to_empty_or_deleted &&
|
| + DefaultHash<V>::Hash::safe_to_compare_to_empty_or_deleted;
|
| +};
|
| +
|
| +template <typename T, typename U, typename V>
|
| +struct DefaultHash<std::tuple<T, U, V>> {
|
| + using Hash = TupleHash<T, U, V>;
|
| +};
|
| +
|
| } // namespace WTF
|
|
|
| using WTF::DefaultHash;
|
|
|