فهرست منبع

view: stable single type view ::rbegin/::rend functions

Michele Caini 2 سال پیش
والد
کامیت
e02050c515
2فایلهای تغییر یافته به همراه5 افزوده شده و 2 حذف شده
  1. 2 2
      src/entt/entity/view.hpp
  2. 3 0
      test/entt/entity/view.cpp

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

@@ -720,7 +720,7 @@ public:
      * @return An iterator to the first entity of the reversed view.
      */
     [[nodiscard]] reverse_iterator rbegin() const noexcept {
-        return view->rbegin();
+        return view ? view->rbegin() : reverse_iterator{};
     }
 
     /**
@@ -735,7 +735,7 @@ public:
      * reversed view.
      */
     [[nodiscard]] reverse_iterator rend() const noexcept {
-        return view->rend();
+        return view ? view->rend() : reverse_iterator{};
     }
 
     /**

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

@@ -83,6 +83,9 @@ TEST(SingleComponentView, InvalidView) {
     ASSERT_EQ(view.begin(), typename decltype(view)::iterator{});
     ASSERT_EQ(view.begin(), view.end());
 
+    ASSERT_EQ(view.rbegin(), typename decltype(view)::reverse_iterator{});
+    ASSERT_EQ(view.rbegin(), view.rend());
+
     entt::storage<int> storage;
     view.storage(storage);