diff --git a/include/boost/container/experimental/segmented_merge.hpp b/include/boost/container/experimental/segmented_merge.hpp index cd2ec61..2d4c499 100644 --- a/include/boost/container/experimental/segmented_merge.hpp +++ b/include/boost/container/experimental/segmented_merge.hpp @@ -43,9 +43,10 @@ struct merge_default_less }; template -OutIter merge_scan(FwdIt first, Sent last, InIter2& first2, Sent2 last2, OutIter result, Comp comp, +OutIter merge_scan(FwdIt first, Sent last, InIter2& first2_out, Sent2 last2, OutIter result, Comp comp, non_segmented_iterator_tag) { + InIter2 first2 = first2_out; while(first != last && first2 != last2) { if(comp(*first2, *first)) { *result = *first2; @@ -57,6 +58,7 @@ OutIter merge_scan(FwdIt first, Sent last, InIter2& first2, Sent2 last2, OutIter } ++result; } + first2_out = first2; return (segmented_copy)(first, last, result); }