|
|
@@ -10,6 +10,7 @@
|
|
|
#include <iterator>
|
|
|
#include <utility>
|
|
|
|
|
|
+#include <iterator/detail/arrow_proxy.h>
|
|
|
#include <iterator/end_aware_iterator.hpp>
|
|
|
#include <iterator/facade.h>
|
|
|
#include <iterator/iterator_fwd.hpp>
|
|
|
@@ -70,10 +71,14 @@ private:
|
|
|
while (!joiner_.at_end() && end_aware_iterator(*joiner_).at_end()) {
|
|
|
++joiner_;
|
|
|
}
|
|
|
- if (!joiner_.at_end()) { iterator_ = end_aware_iterator(*joiner_); }
|
|
|
+ if (!joiner_.at_end()) {
|
|
|
+ cache_ = *joiner_;
|
|
|
+ iterator_ = end_aware_iterator(cache_.get());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
end_aware_iterator<join_iter> joiner_;
|
|
|
+ detail::value_proxy<decltype(*std::declval<join_iter>())> cache_;
|
|
|
end_aware_iterator<iter_type> iterator_;
|
|
|
};
|
|
|
|