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

This commit is contained in:
Michele Caini
2023-04-27 09:07:37 +02:00
parent 26930633f0
commit e02050c515
2 changed files with 5 additions and 2 deletions

View File

@@ -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{};
}
/**

View File

@@ -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);