group/view:
* added default constructors to input iterators * make sure that a default constructed iterator compares equal to end()
This commit is contained in:
@@ -78,6 +78,8 @@ class basic_group<Entity, owned_t<>, get_t<Get...>, exclude_t<Exclude...>> final
|
||||
using reference = value_type;
|
||||
using iterator_category = std::input_iterator_tag;
|
||||
|
||||
extended_group_iterator() = default;
|
||||
|
||||
extended_group_iterator(typename basic_common_type::iterator from, const std::tuple<storage_type<Get> *...> &args) ENTT_NOEXCEPT
|
||||
: it{from},
|
||||
pools{args} {}
|
||||
@@ -535,6 +537,8 @@ class basic_group<Entity, owned_t<Owned...>, get_t<Get...>, exclude_t<Exclude...
|
||||
using reference = value_type;
|
||||
using iterator_category = std::input_iterator_tag;
|
||||
|
||||
extended_group_iterator() = default;
|
||||
|
||||
template<typename... Other>
|
||||
extended_group_iterator(typename basic_common_type::iterator from, const std::tuple<Other...> &other, const std::tuple<storage_type<Get> *...> &cpools) ENTT_NOEXCEPT
|
||||
: it{from},
|
||||
|
||||
@@ -106,6 +106,8 @@ struct extended_view_iterator final {
|
||||
using reference = value_type;
|
||||
using iterator_category = std::input_iterator_tag;
|
||||
|
||||
extended_view_iterator() = default;
|
||||
|
||||
extended_view_iterator(It from, std::tuple<Storage *...> storage) ENTT_NOEXCEPT
|
||||
: it{from},
|
||||
pools{storage} {}
|
||||
|
||||
@@ -194,6 +194,7 @@ TEST(NonOwningGroup, Each) {
|
||||
|
||||
ASSERT_NE(citerable.begin(), citerable.end());
|
||||
ASSERT_NO_THROW(iterable.begin()->operator=(*iterable.begin()));
|
||||
ASSERT_EQ(decltype(iterable.end()){}, iterable.end());
|
||||
|
||||
auto it = iterable.begin();
|
||||
|
||||
@@ -837,6 +838,7 @@ TEST(OwningGroup, Each) {
|
||||
|
||||
ASSERT_NE(citerable.begin(), citerable.end());
|
||||
ASSERT_NO_THROW(iterable.begin()->operator=(*iterable.begin()));
|
||||
ASSERT_EQ(decltype(iterable.end()){}, iterable.end());
|
||||
|
||||
auto it = iterable.begin();
|
||||
|
||||
|
||||
@@ -184,6 +184,7 @@ TEST(SingleComponentView, Each) {
|
||||
|
||||
ASSERT_NE(citerable.begin(), citerable.end());
|
||||
ASSERT_NO_THROW(iterable.begin()->operator=(*iterable.begin()));
|
||||
ASSERT_EQ(decltype(iterable.end()){}, iterable.end());
|
||||
|
||||
auto it = iterable.begin();
|
||||
|
||||
@@ -688,6 +689,7 @@ TEST(MultiComponentView, Each) {
|
||||
|
||||
ASSERT_NE(citerable.begin(), citerable.end());
|
||||
ASSERT_NO_THROW(iterable.begin()->operator=(*iterable.begin()));
|
||||
ASSERT_EQ(decltype(iterable.end()){}, iterable.end());
|
||||
|
||||
auto it = iterable.begin();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user