Kaynağa Gözat

has_value_type: more concepts, less sfinae

skypjack 1 ay önce
ebeveyn
işleme
42c9e41c37
1 değiştirilmiş dosya ile 3 ekleme ve 2 silme
  1. 3 2
      src/entt/core/type_traits.hpp

+ 3 - 2
src/entt/core/type_traits.hpp

@@ -725,11 +725,12 @@ struct has_tuple_size_value: std::false_type {};
 template<typename Type>
 template<typename Type>
 struct has_tuple_size_value<Type, std::void_t<decltype(std::tuple_size<const Type>::value)>>: std::true_type {};
 struct has_tuple_size_value<Type, std::void_t<decltype(std::tuple_size<const Type>::value)>>: std::true_type {};
 
 
-template<typename, typename = void>
+template<typename>
 struct has_value_type: std::false_type {};
 struct has_value_type: std::false_type {};
 
 
 template<typename Type>
 template<typename Type>
-struct has_value_type<Type, std::void_t<typename Type::value_type>>: std::true_type {};
+requires requires { typename Type::value_type; }
+struct has_value_type<Type>: std::true_type {};
 
 
 template<typename>
 template<typename>
 [[nodiscard]] ENTT_CONSTEVAL bool dispatch_is_equality_comparable();
 [[nodiscard]] ENTT_CONSTEVAL bool dispatch_is_equality_comparable();