Michele Caini 6 ani în urmă
părinte
comite
06b5a91cd3
1 a modificat fișierele cu 6 adăugiri și 3 ștergeri
  1. 6 3
      src/entt/entity/registry.hpp

+ 6 - 3
src/entt/entity/registry.hpp

@@ -294,10 +294,10 @@ class basic_registry {
         static_assert(sizeof...(Owned) + sizeof...(Get) + sizeof...(Exclude) > 1);
         static_assert(sizeof...(Owned) + sizeof...(Get) > 0);
 
-        const std::size_t extent[] = { sizeof...(Owned), sizeof...(Get), sizeof...(Exclude) };
-        const ENTT_ID_TYPE types[] = { type<Owned>()..., type<Get>()..., type<Exclude>()... };
-
         if constexpr(sizeof...(Owned) == 0) {
+            const std::size_t extent[] = { sizeof...(Get), sizeof...(Exclude) };
+            const ENTT_ID_TYPE types[] = { type<Get>()..., type<Exclude>()... };
+
             auto it = std::find_if(outer_groups.begin(), outer_groups.end(), [&extent, &types](auto &&gdata) {
                 return std::equal(std::begin(extent), std::end(extent), gdata.extent) && gdata.is_same(types);
             });
@@ -335,6 +335,9 @@ class basic_registry {
 
             return it->data.get();
         } else {
+            const std::size_t extent[] = { sizeof...(Owned), sizeof...(Get), sizeof...(Exclude) };
+            const ENTT_ID_TYPE types[] = { type<Owned>()..., type<Get>()..., type<Exclude>()... };
+
             auto it = std::find_if(inner_groups.begin(), inner_groups.end(), [&extent, &types](auto &&gdata) {
                 return std::equal(std::begin(extent), std::end(extent), gdata.extent) && gdata.is_same(types);
             });