view: minor changes

This commit is contained in:
Michele Caini
2021-07-08 16:15:49 +02:00
parent dbfec1b247
commit 94d02eeb4e

View File

@@ -274,7 +274,7 @@ class basic_view_impl<Policy, Entity, exclude_t<Exclude...>, Component...> {
});
}
[[nodiscard]] auto pools_to_unchecked_array() const ENTT_NOEXCEPT {
[[nodiscard]] auto test_set() const ENTT_NOEXCEPT {
std::size_t pos{};
std::array<const basic_common_type *, sizeof...(Component) - 1u> other{};
(static_cast<void>(std::get<storage_type<Component> *>(pools) == view ? void() : void(other[pos++] = std::get<storage_type<Component> *>(pools))), ...);
@@ -377,7 +377,7 @@ public:
* @return An iterator to the first entity of the view.
*/
[[nodiscard]] iterator begin() const {
return iterator{view->begin(), view->end(), view->begin(), pools_to_unchecked_array(), filter};
return iterator{view->begin(), view->end(), view->begin(), test_set(), filter};
}
/**
@@ -390,7 +390,7 @@ public:
* @return An iterator to the entity following the last entity of the view.
*/
[[nodiscard]] iterator end() const {
return iterator{view->begin(), view->end(), view->end(), pools_to_unchecked_array(), filter};
return iterator{view->begin(), view->end(), view->end(), test_set(), filter};
}
/**
@@ -402,7 +402,7 @@ public:
* @return An iterator to the first entity of the reversed view.
*/
[[nodiscard]] reverse_iterator rbegin() const {
return reverse_iterator{view->rbegin(), view->rend(), view->rbegin(), pools_to_unchecked_array(), filter};
return reverse_iterator{view->rbegin(), view->rend(), view->rbegin(), test_set(), filter};
}
/**
@@ -417,7 +417,7 @@ public:
* reversed view.
*/
[[nodiscard]] reverse_iterator rend() const {
return reverse_iterator{view->rbegin(), view->rend(), view->rend(), pools_to_unchecked_array(), filter};
return reverse_iterator{view->rbegin(), view->rend(), view->rend(), test_set(), filter};
}
/**
@@ -447,7 +447,7 @@ public:
* iterator otherwise.
*/
[[nodiscard]] iterator find(const entity_type entt) const {
const auto it = iterator{view->begin(), view->end(), view->find(entt), pools_to_unchecked_array(), filter};
const auto it = iterator{view->begin(), view->end(), view->find(entt), test_set(), filter};
return (it != end() && *it == entt) ? it : end();
}