gem5-dev@gem5.org

The gem5 Developer List

View all threads

[S] Change in gem5/gem5[develop]: base: define is_std_hash_enabled type trait

GB
Gabriel B. (Gerrit)
Tue, Jun 27, 2023 11:51 AM

Gabriel B. has uploaded this change for review. (
https://gem5-review.googlesource.com/c/public/gem5/+/71839?usp=email )

Change subject: base: define is_std_hash_enabled type trait
......................................................................

base: define is_std_hash_enabled type trait

Change-Id: I7ffb7f80a90006d6b8cd42bdf3d63e34c6dbda01

M src/base/type_traits.hh
1 file changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/base/type_traits.hh b/src/base/type_traits.hh
index a42f786..c40696c 100644
--- a/src/base/type_traits.hh
+++ b/src/base/type_traits.hh
@@ -105,6 +105,17 @@
template <typename T>
constexpr bool is_iterable_v = is_iterable<T>::value;

+// std::hash-enabled type trait
+template <typename, typename = void>
+struct is_std_hash_enabled: std::false_type {};
+
+template <typename T>
+struct is_std_hash_enabled<T,

  • std::void_t<std::void_t<decltype(std::hash<T>())>>>: std::true_type {};

+template <typename T>
+constexpr bool is_std_hash_enabled_v = is_std_hash_enabled<T>::value;
+
} // namespace gem5

#endif // BASE_TYPETRAITS_HH

--
To view, visit
https://gem5-review.googlesource.com/c/public/gem5/+/71839?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gem5-review.googlesource.com/settings?usp=email

Gerrit-MessageType: newchange
Gerrit-Project: public/gem5
Gerrit-Branch: develop
Gerrit-Change-Id: I7ffb7f80a90006d6b8cd42bdf3d63e34c6dbda01
Gerrit-Change-Number: 71839
Gerrit-PatchSet: 1
Gerrit-Owner: Gabriel B. gabriel.busnot@arteris.com

Gabriel B. has uploaded this change for review. ( https://gem5-review.googlesource.com/c/public/gem5/+/71839?usp=email ) Change subject: base: define is_std_hash_enabled type trait ...................................................................... base: define is_std_hash_enabled type trait Change-Id: I7ffb7f80a90006d6b8cd42bdf3d63e34c6dbda01 --- M src/base/type_traits.hh 1 file changed, 11 insertions(+), 0 deletions(-) diff --git a/src/base/type_traits.hh b/src/base/type_traits.hh index a42f786..c40696c 100644 --- a/src/base/type_traits.hh +++ b/src/base/type_traits.hh @@ -105,6 +105,17 @@ template <typename T> constexpr bool is_iterable_v = is_iterable<T>::value; +// std::hash-enabled type trait +template <typename, typename = void> +struct is_std_hash_enabled: std::false_type {}; + +template <typename T> +struct is_std_hash_enabled<T, + std::void_t<std::void_t<decltype(std::hash<T>())>>>: std::true_type {}; + +template <typename T> +constexpr bool is_std_hash_enabled_v = is_std_hash_enabled<T>::value; + } // namespace gem5 #endif // BASE_TYPETRAITS_HH -- To view, visit https://gem5-review.googlesource.com/c/public/gem5/+/71839?usp=email To unsubscribe, or for help writing mail filters, visit https://gem5-review.googlesource.com/settings?usp=email Gerrit-MessageType: newchange Gerrit-Project: public/gem5 Gerrit-Branch: develop Gerrit-Change-Id: I7ffb7f80a90006d6b8cd42bdf3d63e34c6dbda01 Gerrit-Change-Number: 71839 Gerrit-PatchSet: 1 Gerrit-Owner: Gabriel B. <gabriel.busnot@arteris.com>