소스 검색

minor changes

Michele Caini 6 년 전
부모
커밋
b8d888b17f
2개의 변경된 파일4개의 추가작업 그리고 4개의 파일을 삭제
  1. 2 2
      src/entt/entity/registry.hpp
  2. 2 2
      src/entt/entity/storage.hpp

+ 2 - 2
src/entt/entity/registry.hpp

@@ -77,7 +77,7 @@ class basic_registry {
         }
 
         template<typename It, typename... Args>
-        std::enable_if_t<!std::is_same_v<It, Entity>, typename storage<Entity, Component>::reverse_iterator_type>
+        std::enable_if_t<std::is_same_v<typename std::iterator_traits<It>::value_type, Entity>, typename storage<Entity, Component>::reverse_iterator_type>
         assign(basic_registry &owner, It first, It last, Args &&... args) {
             auto it = storage<Entity, Component>::construct(first, last, std::forward<Args>(args)...);
 
@@ -721,7 +721,7 @@ public:
      * @return An iterator to the list of components just created.
      */
     template<typename Component, typename It, typename... Args>
-    std::enable_if_t<!std::is_same_v<It, entity_type>, typename pool_type<Component>::reverse_iterator_type>
+    std::enable_if_t<std::is_same_v<typename std::iterator_traits<It>::value_type, entity_type>, typename pool_type<Component>::reverse_iterator_type>
     assign(It first, It last, Args &&... args) {
         ENTT_ASSERT(std::all_of(first, last, [this](const auto entity) { return valid(entity); }));
         return assure<Component>()->assign(*this, first, last, std::forward<Args>(args)...);

+ 2 - 2
src/entt/entity/storage.hpp

@@ -355,7 +355,7 @@ public:
      * same of the entities.
      */
     template<typename It, typename... Args>
-    std::enable_if_t<!std::is_same_v<It, entity_type>, reverse_iterator_type>
+    std::enable_if_t<std::is_same_v<typename std::iterator_traits<It>::value_type, entity_type>, reverse_iterator_type>
     construct(It first, It last, [[maybe_unused]] Args &&... args) {
         if constexpr(sizeof...(Args) == 0) {
             instances.resize(instances.size() + std::distance(first, last));
@@ -706,7 +706,7 @@ public:
      * same of the entities.
      */
     template<typename It, typename... Args>
-    std::enable_if_t<!std::is_same_v<It, entity_type>, reverse_iterator_type>
+    std::enable_if_t<std::is_same_v<typename std::iterator_traits<It>::value_type, entity_type>, reverse_iterator_type>
     construct(It first, It last, Args &&... args) {
         [[maybe_unused]] object_type instance{std::forward<Args>(args)...};
         // entity goes after component in case constructor throws