bug fixing

This commit is contained in:
Michele Caini
2019-04-14 15:39:09 +02:00
parent 8aacf3497e
commit 06b5a91cd3

View File

@@ -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);
});