Browse Source

group: decouple from component_traits

Michele Caini 1 year ago
parent
commit
5130420dd2
1 changed files with 2 additions and 3 deletions
  1. 2 3
      src/entt/entity/group.hpp

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

@@ -13,7 +13,6 @@
 #include "../core/iterator.hpp"
 #include "../core/type_info.hpp"
 #include "../core/type_traits.hpp"
-#include "component.hpp"
 #include "entity.hpp"
 #include "fwd.hpp"
 
@@ -29,7 +28,7 @@ template<typename It, typename... Owned, typename... Get>
 class extended_group_iterator<It, owned_t<Owned...>, get_t<Get...>> {
     template<typename Type>
     [[nodiscard]] auto index_to_element([[maybe_unused]] Type &cpool) const {
-        if constexpr(component_traits<typename Type::element_type>::page_size == 0u) {
+        if constexpr(std::is_void_v<typename Type::value_type>) {
             return std::make_tuple();
         } else {
             return std::forward_as_tuple(cpool.rbegin()[it.index()]);
@@ -695,7 +694,7 @@ private:
  */
 template<typename... Owned, typename... Get, typename... Exclude>
 class basic_group<owned_t<Owned...>, get_t<Get...>, exclude_t<Exclude...>> {
-    static_assert((!component_traits<typename Owned::element_type>::in_place_delete && ...), "Groups do not support in-place delete");
+    static_assert(((Owned::storage_policy != deletion_policy::in_place) && ...), "Groups do not support in-place delete");
 
     using base_type = std::common_type_t<typename Owned::base_type..., typename Get::base_type..., typename Exclude::base_type...>;
     using underlying_type = typename base_type::entity_type;