Kaynağa Gözat

entity: handle conversion warnings

Michele Caini 1 yıl önce
ebeveyn
işleme
ba70637eeb

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

@@ -131,7 +131,7 @@ class group_handler final: public group_descriptor {
 
     void common_setup() {
         // we cannot iterate backwards because we want to leave behind valid entities in case of owned types
-        for(auto first = pools[0u]->rbegin(), last = first + pools[0u]->size(); first != last; ++first) {
+        for(auto first = pools[0u]->rbegin(), last = first + static_cast<typename decltype(pools)::difference_type>(pools[0u]->size()); first != last; ++first) {
             push_on_construct(*first);
         }
     }
@@ -465,7 +465,7 @@ public:
      * @return The identifier that occupies the given position.
      */
     [[nodiscard]] entity_type operator[](const size_type pos) const {
-        return begin()[pos];
+        return begin()[static_cast<typename iterator::difference_type>(pos)];
     }
 
     /**

+ 1 - 1
src/entt/entity/sparse_set.hpp

@@ -937,7 +937,7 @@ public:
                 }
             }
 
-            packed.erase(packed.begin() + from, packed.end());
+            packed.erase(packed.begin() + static_cast<typename packed_container_type::difference_type>(from), packed.end());
         }
     }
 

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

@@ -1228,7 +1228,8 @@ public:
     /*! @copydoc each */
     [[nodiscard]] const_iterable each() const noexcept {
         const auto it = base_type::cend();
-        return const_iterable{it - base_type::free_list(), it};
+        const auto offset = static_cast<typename const_iterable::iterator::difference_type>(base_type::free_list());
+        return const_iterable{it - offset, it};
     }
 
     /**
@@ -1245,7 +1246,8 @@ public:
     /*! @copydoc reach */
     [[nodiscard]] const_reverse_iterable reach() const noexcept {
         const auto it = base_type::crbegin();
-        return const_reverse_iterable{it, it + base_type::free_list()};
+        const auto offset = static_cast<typename const_reverse_iterable::iterator::difference_type>(base_type::free_list());
+        return const_reverse_iterable{it, it + offset};
     }
 
 private: