From 06b5a91cd3efa21a02e330be25aff2699c672de4 Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Sun, 14 Apr 2019 15:39:09 +0200 Subject: [PATCH] bug fixing --- src/entt/entity/registry.hpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/entt/entity/registry.hpp b/src/entt/entity/registry.hpp index b7ca7e18f..56a0db19a 100644 --- a/src/entt/entity/registry.hpp +++ b/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()..., type()..., type()... }; - if constexpr(sizeof...(Owned) == 0) { + const std::size_t extent[] = { sizeof...(Get), sizeof...(Exclude) }; + const ENTT_ID_TYPE types[] = { type()..., type()... }; + 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()..., type()..., type()... }; + 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); });