forked from OctaForge/libostd
fix swap_ranges api to correctly handle differently sized ranges
parent
e9367246b5
commit
28828ff448
|
@ -366,12 +366,13 @@ namespace octa {
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename R1, typename R2>
|
template<typename R1, typename R2>
|
||||||
R2 swap_ranges(R1 range1, R2 range2) {
|
Pair<R1, R2> swap_ranges(R1 range1, R2 range2) {
|
||||||
for (; !range1.empty(); range1.pop_first()) {
|
while (!range1.empty() && !range2.empty()) {
|
||||||
swap(range1.first(), range2.first());
|
swap(range1.first(), range2.first());
|
||||||
|
range1.pop_first();
|
||||||
range2.pop_first();
|
range2.pop_first();
|
||||||
}
|
}
|
||||||
return range2;
|
return Pair<R1, R2>(range1, range2);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename R, typename T>
|
template<typename R, typename T>
|
||||||
|
|
Loading…
Reference in New Issue