Browse Source

view: minor changes

Michele Caini 5 years ago
parent
commit
291e3cd229
1 changed files with 6 additions and 6 deletions
  1. 6 6
      src/entt/entity/view.hpp

+ 6 - 6
src/entt/entity/view.hpp

@@ -253,7 +253,7 @@ class basic_view<Entity, exclude_t<Exclude...>, Component...> {
     }
 
     template<typename Comp, typename Other>
-    [[nodiscard]] decltype(auto) get([[maybe_unused]] component_iterator<Comp> it, [[maybe_unused]] pool_type<Other> *cpool, [[maybe_unused]] const Entity entt) const {
+    [[nodiscard]] decltype(auto) get([[maybe_unused]] component_iterator<Comp> &it, [[maybe_unused]] pool_type<Other> *cpool, [[maybe_unused]] const Entity entt) const {
         if constexpr(std::is_same_v<Comp, Other>) {
             return *it;
         } else {
@@ -267,17 +267,17 @@ class basic_view<Entity, exclude_t<Exclude...>, Component...> {
             auto it = std::get<pool_type<Comp> *>(pools)->begin();
 
             for(const auto entt: static_cast<const sparse_set<entity_type> &>(*std::get<pool_type<Comp> *>(pools))) {
-                auto curr = it++;
-
                 if(((std::is_same_v<Comp, Component> || std::get<pool_type<Component> *>(pools)->contains(entt)) && ...)
-                         && (sizeof...(Exclude) == 0 || std::none_of(filter.cbegin(), filter.cend(), [entt](const sparse_set<Entity> *cpool) { return cpool->contains(entt); })))
+                        && (sizeof...(Exclude) == 0 || std::none_of(filter.cbegin(), filter.cend(), [entt](const sparse_set<Entity> *cpool) { return cpool->contains(entt); })))
                 {
                     if constexpr(std::is_invocable_v<Func, decltype(get<Type>({}))...>) {
-                        func(get<Comp, Type>(curr, std::get<pool_type<Type> *>(pools), entt)...);
+                        func(get<Comp, Type>(it, std::get<pool_type<Type> *>(pools), entt)...);
                     } else {
-                        func(entt, get<Comp, Type>(curr, std::get<pool_type<Type> *>(pools), entt)...);
+                        func(entt, get<Comp, Type>(it, std::get<pool_type<Type> *>(pools), entt)...);
                     }
                 }
+
+                ++it;
             }
         } else {
             for(const auto entt: static_cast<const sparse_set<entity_type> &>(*std::get<pool_type<Comp> *>(pools))) {