Explorar o código

group: reduce the footprint of non-owning group handlers

Michele Caini %!s(int64=3) %!d(string=hai) anos
pai
achega
6ec719bcfa
Modificáronse 1 ficheiros con 2 adicións e 3 borrados
  1. 2 3
      src/entt/entity/group.hpp

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

@@ -175,7 +175,7 @@ private:
 };
 };
 
 
 template<typename... Get, typename... Exclude>
 template<typename... Get, typename... Exclude>
-class group_handler<owned_t<>, get_t<Get...>, exclude_t<Exclude...>>: public basic_group_handler {
+class group_handler<owned_t<>, get_t<Get...>, exclude_t<Exclude...>> {
     // nasty workaround for an issue with the toolset v141 that doesn't accept a fold expression here
     // nasty workaround for an issue with the toolset v141 that doesn't accept a fold expression here
     static_assert(!std::disjunction_v<std::is_const<Get>..., std::is_const<Exclude>...>, "Const storage type not allowed");
     static_assert(!std::disjunction_v<std::is_const<Get>..., std::is_const<Exclude>...>, "Const storage type not allowed");
 
 
@@ -207,8 +207,7 @@ public:
 
 
     template<typename Alloc>
     template<typename Alloc>
     group_handler(const Alloc &alloc, Get &...gpool, Exclude &...epool)
     group_handler(const Alloc &alloc, Get &...gpool, Exclude &...epool)
-        : basic_group_handler{/* temporary, to be removed */},
-          pools{&gpool...},
+        : pools{&gpool...},
           filter{&epool...},
           filter{&epool...},
           elem{alloc} {
           elem{alloc} {
         std::apply([this](auto *...cpool) { ((cpool->on_construct().template connect<&group_handler::push_on_construct>(*this), cpool->on_destroy().template connect<&group_handler::remove_if>(*this)), ...); }, pools);
         std::apply([this](auto *...cpool) { ((cpool->on_construct().template connect<&group_handler::push_on_construct>(*this), cpool->on_destroy().template connect<&group_handler::remove_if>(*this)), ...); }, pools);