diff options
| author | 2024-08-08 19:19:16 +0000 | |
|---|---|---|
| committer | 2024-08-08 19:19:16 +0000 | |
| commit | 19c2c3b21aae011940fceb6a242eed4ee596be9d (patch) | |
| tree | 443760f93d33eae3bd5e90bec1b511408800d66e | |
| parent | 7e47435fc1a09ed7fce93c9a7acef65a57000277 (diff) | |
| parent | d36a990e2af9fdfea104f00229387d10d2ef632d (diff) | |
Merge "libmath: use TVECHELPERS_STD_HASH macro for std::hash" into main am: d36a990e2a
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/3205855
Change-Id: I0c4ed382615f04bae147e89a32917bc1b90ca372
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | libs/math/include/math/TVecHelpers.h | 19 | ||||
| -rw-r--r-- | libs/math/include/math/mat2.h | 2 | ||||
| -rw-r--r-- | libs/math/include/math/mat3.h | 2 | ||||
| -rw-r--r-- | libs/math/include/math/mat4.h | 2 | ||||
| -rw-r--r-- | libs/math/include/math/quat.h | 2 | ||||
| -rw-r--r-- | libs/math/include/math/vec2.h | 2 | ||||
| -rw-r--r-- | libs/math/include/math/vec3.h | 2 | ||||
| -rw-r--r-- | libs/math/include/math/vec4.h | 2 |
8 files changed, 21 insertions, 12 deletions
diff --git a/libs/math/include/math/TVecHelpers.h b/libs/math/include/math/TVecHelpers.h index 0dac662e97..7278d2d3e1 100644 --- a/libs/math/include/math/TVecHelpers.h +++ b/libs/math/include/math/TVecHelpers.h @@ -620,15 +620,10 @@ public: } // namespace details } // namespace android -namespace std { - template<template<typename T> class VECTOR, typename T> - struct hash<VECTOR<T>> { - static constexpr bool IS_VECTOR = - std::is_base_of<android::details::TVecUnaryOperators<VECTOR, T>, VECTOR<T>>::value; - - typename std::enable_if<IS_VECTOR, size_t>::type - operator()(const VECTOR<T>& v) const { - return v.hash(); - } - }; -} +#define TVECHELPERS_STD_HASH(VECTOR) \ + template <typename T> \ + struct std::hash<VECTOR<T>> { \ + size_t operator()(const VECTOR<T>& v) const { \ + return v.hash(); \ + } \ + } diff --git a/libs/math/include/math/mat2.h b/libs/math/include/math/mat2.h index 3e6cd4c794..24c2bad420 100644 --- a/libs/math/include/math/mat2.h +++ b/libs/math/include/math/mat2.h @@ -373,5 +373,7 @@ typedef details::TMat22<float> mat2f; // ---------------------------------------------------------------------------------------- } // namespace android +TVECHELPERS_STD_HASH(android::details::TMat22); + #undef PURE #undef CONSTEXPR diff --git a/libs/math/include/math/mat3.h b/libs/math/include/math/mat3.h index 5c8a9b2573..4647a60917 100644 --- a/libs/math/include/math/mat3.h +++ b/libs/math/include/math/mat3.h @@ -436,5 +436,7 @@ typedef details::TMat33<float> mat3f; // ---------------------------------------------------------------------------------------- } // namespace android +TVECHELPERS_STD_HASH(android::details::TMat33); + #undef PURE #undef CONSTEXPR diff --git a/libs/math/include/math/mat4.h b/libs/math/include/math/mat4.h index c630d972b2..c9e118ab34 100644 --- a/libs/math/include/math/mat4.h +++ b/libs/math/include/math/mat4.h @@ -590,5 +590,7 @@ typedef details::TMat44<float> mat4f; // ---------------------------------------------------------------------------------------- } // namespace android +TVECHELPERS_STD_HASH(android::details::TMat44); + #undef PURE #undef CONSTEXPR diff --git a/libs/math/include/math/quat.h b/libs/math/include/math/quat.h index 07573c5ecf..43c8038cc1 100644 --- a/libs/math/include/math/quat.h +++ b/libs/math/include/math/quat.h @@ -187,6 +187,8 @@ constexpr inline quatd operator"" _kd(unsigned long long v) { // NOLINT // ---------------------------------------------------------------------------------------- } // namespace android +TVECHELPERS_STD_HASH(android::details::TQuaternion); + #pragma clang diagnostic pop #undef PURE diff --git a/libs/math/include/math/vec2.h b/libs/math/include/math/vec2.h index e0adb7f6cc..909c77eb28 100644 --- a/libs/math/include/math/vec2.h +++ b/libs/math/include/math/vec2.h @@ -122,4 +122,6 @@ typedef details::TVec2<bool> bool2; // ---------------------------------------------------------------------------------------- } // namespace android +TVECHELPERS_STD_HASH(android::details::TVec2); + #pragma clang diagnostic pop diff --git a/libs/math/include/math/vec3.h b/libs/math/include/math/vec3.h index 21fb684efc..ff2b3e4f54 100644 --- a/libs/math/include/math/vec3.h +++ b/libs/math/include/math/vec3.h @@ -128,4 +128,6 @@ typedef details::TVec3<bool> bool3; // ---------------------------------------------------------------------------------------- } // namespace android +TVECHELPERS_STD_HASH(android::details::TVec3); + #pragma clang diagnostic pop diff --git a/libs/math/include/math/vec4.h b/libs/math/include/math/vec4.h index 1e279fe3f2..16509c91a1 100644 --- a/libs/math/include/math/vec4.h +++ b/libs/math/include/math/vec4.h @@ -125,4 +125,6 @@ typedef details::TVec4<bool> bool4; // ---------------------------------------------------------------------------------------- } // namespace android +TVECHELPERS_STD_HASH(android::details::TVec4); + #pragma clang diagnostic pop |