Skip to content

Commit abbb3bf

Browse files
committed
type_traits: internal changes
1 parent b465e55 commit abbb3bf

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

src/entt/core/type_traits.hpp

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -749,12 +749,6 @@ struct has_value_type: std::false_type {};
749749
template<typename Type>
750750
struct has_value_type<Type, std::void_t<typename Type::value_type>>: std::true_type {};
751751

752-
template<typename, typename = void>
753-
struct has_void_element_type: std::false_type {};
754-
755-
template<typename Type>
756-
struct has_void_element_type<Type, std::remove_const_t<typename std::pointer_traits<Type>::element_type>>: std::true_type {};
757-
758752
template<typename>
759753
[[nodiscard]] constexpr bool dispatch_is_equality_comparable();
760754

@@ -776,20 +770,20 @@ template<typename Type>
776770
template<typename Type>
777771
[[nodiscard]] constexpr bool dispatch_is_equality_comparable() {
778772
// NOLINTBEGIN(modernize-use-transparent-functors)
779-
if constexpr(std::is_array_v<Type> || has_void_element_type<Type>::value) {
773+
if constexpr(std::is_array_v<Type>) {
780774
return false;
781-
} else if constexpr(!is_iterator_v<Type> && has_value_type<Type>::value) {
782-
if constexpr(std::is_same_v<typename Type::value_type, Type> || dispatch_is_equality_comparable<typename Type::value_type>()) {
783-
return maybe_equality_comparable<Type>(0);
784-
} else {
785-
return false;
786-
}
787775
} else if constexpr(is_complete_v<std::tuple_size<std::remove_cv_t<Type>>>) {
788776
if constexpr(has_tuple_size_value<Type>::value) {
789777
return maybe_equality_comparable<Type>(0) && unpack_maybe_equality_comparable<Type>(std::make_index_sequence<std::tuple_size<Type>::value>{});
790778
} else {
791779
return maybe_equality_comparable<Type>(0);
792780
}
781+
} else if constexpr(has_value_type<Type>::value) {
782+
if constexpr(is_iterator_v<Type> || std::is_same_v<typename Type::value_type, Type> || dispatch_is_equality_comparable<typename Type::value_type>()) {
783+
return maybe_equality_comparable<Type>(0);
784+
} else {
785+
return false;
786+
}
793787
} else {
794788
return maybe_equality_comparable<Type>(0);
795789
}

0 commit comments

Comments
 (0)