diff --git a/src/entt/entity/view.hpp b/src/entt/entity/view.hpp index 3de091222..0988cd318 100644 --- a/src/entt/entity/view.hpp +++ b/src/entt/entity/view.hpp @@ -371,7 +371,8 @@ class basic_view_impl, Component...> { template void traverse(Func func) const { for(const auto curr: internal::iterable_storage{*std::get *>(pools)}) { - if(Policy::accept(std::get<0>(curr)) && ((std::is_same_v || std::get *>(pools)->contains(std::get<0>(curr))) && ...) + if(internal::stable_iteration>>::accept(std::get<0>(curr)) + && ((std::is_same_v || std::get *>(pools)->contains(std::get<0>(curr))) && ...) && std::apply([entt = std::get<0>(curr)](const auto *... cpool) { return (!cpool->contains(entt) && ...); }, filter)) { if constexpr(is_applicable_v{}, std::declval().get({})))>) {