Prechádzať zdrojové kódy

refactor: add end_aware_iterator::end

refactor: return copy of iterator instead of cref
Sam Jaffe 2 rokov pred
rodič
commit
4dda725401

+ 3 - 0
include/iterator/end_aware_iterator.h

@@ -49,6 +49,9 @@ public:
       return super_t::impl() == end_;
     }
   }
+  
+protected:
+  It end() const { return end_; }
 
 private:
   template <typename O> friend class end_aware_iterator;

+ 4 - 5
include/iterator/join_iterator.h

@@ -70,14 +70,13 @@ public:
 
   decltype(auto) dereference() const { return *inner_; }
 
-  bool at_end() const { return outer_iterator().at_end(); }
+  bool at_end() const { return outer_.at_end(); }
   bool equal_to(joining_iterator const & other) const {
-    return outer_iterator() == other.outer_iterator() &&
-           inner_iterator() == other.inner_iterator();
+    return outer_ == other.outer_ && inner_ == other.inner_;
   }
 
-  auto const & outer_iterator() const { return outer_; }
-  auto const & inner_iterator() const { return inner_; }
+  auto outer_iterator() const { return outer_; }
+  auto inner_iterator() const { return inner_; }
 
 private:
   template <typename OuterIt, typename InnerIt>

+ 4 - 4
include/iterator/proxy.h

@@ -27,7 +27,7 @@ public:
   }
 
 protected:
-  auto & impl() const { return impl_; }
+  auto impl() const { return impl_; }
 };
 
 template <typename It, typename Self>
@@ -48,7 +48,7 @@ public:
   }
 
 protected:
-  auto & impl() const { return impl_; }
+  auto impl() const { return impl_; }
 };
 
 template <typename It, typename Self>
@@ -70,7 +70,7 @@ public:
   }
 
 protected:
-  auto & impl() const { return impl_; }
+  auto impl() const { return impl_; }
 };
 
 template <typename It, typename Self>
@@ -99,7 +99,7 @@ public:
   }
 
 protected:
-  auto & impl() const { return impl_; }
+  auto impl() const { return impl_; }
 };
 }