Przeglądaj źródła

type_traits: removed is_iterator_type[_v], it may be ambiguous and cause errors

Michele Caini 4 lat temu
rodzic
commit
4fa51f8c52
2 zmienionych plików z 0 dodań i 37 usunięć
  1. 0 27
      src/entt/core/type_traits.hpp
  2. 0 10
      test/entt/core/type_traits.cpp

+ 0 - 27
src/entt/core/type_traits.hpp

@@ -486,33 +486,6 @@ struct is_iterator<Type, std::enable_if_t<!std::is_same_v<std::remove_const_t<st
 template<typename Type>
 inline constexpr bool is_iterator_v = is_iterator<Type>::value;
 
-/**
- * @brief Provides the member constant `value` to true if a given type is of the
- * required iterator type, false otherwise.
- * @tparam Type The type to test.
- * @tparam It Required iterator type.
- */
-template<typename Type, typename It, typename = void>
-struct is_iterator_type: std::false_type {};
-
-/*! @copydoc is_iterator_type */
-template<typename Type, typename It>
-struct is_iterator_type<Type, It, std::enable_if_t<is_iterator_v<Type> && std::is_same_v<Type, It>>>
-    : std::true_type {};
-
-/*! @copydoc is_iterator_type */
-template<typename Type, typename It>
-struct is_iterator_type<Type, It, std::enable_if_t<!std::is_same_v<Type, It>, std::void_t<typename It::iterator_type>>>
-    : is_iterator_type<Type, typename It::iterator_type> {};
-
-/**
- * @brief Helper variable template.
- * @tparam Type The type to test.
- * @tparam It Required iterator type.
- */
-template<typename Type, typename It>
-inline constexpr bool is_iterator_type_v = is_iterator_type<Type, It>::value;
-
 /**
  * @brief Provides the member constant `value` to true if a given type is both
  * an empty and non-final class, false otherwise.

+ 0 - 10
test/entt/core/type_traits.cpp

@@ -152,16 +152,6 @@ TEST(TypeTraits, IsIterator) {
     static_assert(entt::is_iterator_v<std::vector<int>::reverse_iterator>);
 }
 
-TEST(TypeTraits, IsIteratorType) {
-    static_assert(!entt::is_iterator_type_v<void, std::vector<int>::iterator>);
-    static_assert(!entt::is_iterator_type_v<std::vector<int>::iterator, std::vector<int>::const_iterator>);
-    static_assert(!entt::is_iterator_type_v<std::vector<int>::iterator, int *>);
-
-    static_assert(entt::is_iterator_type_v<std::vector<int>::iterator, std::vector<int>::iterator>);
-    static_assert(entt::is_iterator_type_v<std::vector<int>::iterator, std::reverse_iterator<std::vector<int>::iterator>>);
-    static_assert(entt::is_iterator_type_v<std::vector<int>::iterator, std::reverse_iterator<std::reverse_iterator<std::vector<int>::iterator>>>);
-}
-
 TEST(TypeTraits, IsEBCOEligible) {
     static_assert(entt::is_ebco_eligible_v<not_comparable>);
     static_assert(!entt::is_ebco_eligible_v<nlohmann_json_like>);