| ... | @@ -410,8 +410,13 @@ struct __segmented_iterator_traits<_JoinViewIterator> { | ... | @@ -410,8 +410,13 @@ struct __segmented_iterator_traits<_JoinViewIterator> { |
| 410 | | 410 | |
| 411 | static constexpr _LIBCPP_HIDE_FROM_ABI _JoinViewIterator | 411 | static constexpr _LIBCPP_HIDE_FROM_ABI _JoinViewIterator |
| 412 | __compose(__segment_iterator __seg_iter, __local_iterator __local_iter) { | 412 | __compose(__segment_iterator __seg_iter, __local_iterator __local_iter) { |
| 413 | return _JoinViewIterator( | 413 | auto&& __parent = std::move(__seg_iter).__get_data(); |
| 414 | std::move(__seg_iter).__get_data(), std::move(__seg_iter).__get_iter(), std::move(__local_iter)); | 414 | auto&& __outer = std::move(__seg_iter).__get_iter(); |
| | 415 | if (__local_iter == ranges::end(*__outer)) { |
| | 416 | ++__outer; |
| | 417 | return _JoinViewIterator(*__parent, __outer); |
| | 418 | } |
| | 419 | return _JoinViewIterator(__parent, __outer, std::move(__local_iter)); |
| 415 | } | 420 | } |
| 416 | }; | 421 | }; |
| 417 | | 422 | |