view: reduce instantiations due to none_of

This commit is contained in:
Michele Caini
2023-06-27 10:50:49 +02:00
parent 06680c64eb
commit f3eaa1f74a

View File

@@ -28,7 +28,9 @@ template<typename... Args, typename Type, std::size_t N>
template<typename Type, std::size_t N>
[[nodiscard]] auto none_of(const std::array<const Type *, N> &filter, const typename Type::entity_type entt) noexcept {
return std::apply([entt](const auto *...curr) { return (!(curr && curr->contains(entt)) && ...); }, filter);
std::size_t pos{};
for(; pos < N && !(filter[pos] && filter[pos]->contains(entt)); ++pos) {}
return (pos == N);
}
template<typename... Get, typename... Exclude, std::size_t... Index>