فهرست منبع

group/view:
* added default constructors to input iterators
* make sure that a default constructed iterator compares equal to end()

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

+ 4 - 0
src/entt/entity/group.hpp

@@ -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},

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

@@ -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} {}

+ 2 - 0
test/entt/entity/group.cpp

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

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

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