sparse_set/storage: put swap_or_move check into the base class

This commit is contained in:
Michele Caini
2023-09-18 14:07:59 +02:00
parent d15fd2a8b7
commit 07ff28d9dc
2 changed files with 3 additions and 6 deletions

View File

@@ -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. */

View File

@@ -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.