1
0
Эх сурвалжийг харах

sparse_set/storage: put swap_or_move check into the base class

Michele Caini 2 жил өмнө
parent
commit
07ff28d9dc

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

@@ -234,7 +234,9 @@ private:
         return nullptr;
     }
 
-    virtual void swap_or_move(const std::size_t, const std::size_t) {}
+    virtual void swap_or_move([[maybe_unused]] const std::size_t lhs, [[maybe_unused]] const std::size_t rhs) {
+        ENTT_ASSERT((mode != deletion_policy::swap_only) || (((lhs < free_list()) + (rhs < free_list())) != 1u), "Cross swapping is not supported");
+    }
 
 protected:
     /*! @brief Random access iterator type. */

+ 0 - 5
src/entt/entity/storage.hpp

@@ -965,11 +965,6 @@ class basic_storage<Entity, Entity, Allocator>
         return local_traits_type::combine(static_cast<typename local_traits_type::entity_type>(pos), {});
     }
 
-private:
-    void swap_or_move([[maybe_unused]] const std::size_t lhs, [[maybe_unused]] const std::size_t rhs) override {
-        ENTT_ASSERT(((lhs < base_type::free_list()) + (rhs < base_type::free_list())) != 1u, "Cross swapping is not supported");
-    }
-
 protected:
     /**
      * @brief Assigns an entity to a storage.