Browse Source

view: stable single type view ::each() function

Michele Caini 2 years ago
parent
commit
5be2fdc158
2 changed files with 6 additions and 1 deletions
  1. 1 1
      src/entt/entity/view.hpp
  2. 5 0
      test/entt/entity/view.cpp

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

@@ -877,7 +877,7 @@ public:
      * @return An iterable object to use to _visit_ the view.
      */
     [[nodiscard]] iterable each() const noexcept {
-        return std::get<0>(pools)->each();
+        return view ? std::get<0>(pools)->each() : iterable{};
     }
 
     /**

+ 5 - 0
test/entt/entity/view.cpp

@@ -90,6 +90,11 @@ TEST(SingleComponentView, InvalidView) {
     ASSERT_EQ(view.rbegin(), typename decltype(view)::reverse_iterator{});
     ASSERT_EQ(view.rbegin(), view.rend());
 
+    auto iterable = view.each();
+
+    ASSERT_EQ(iterable.begin(), iterable.end());
+    ASSERT_EQ(iterable.cbegin(), iterable.cend());
+
     entt::storage<int> storage;
     view.storage(storage);