Skip to content

Commit be86d0a

Browse files
committed
LWG4441 ranges::rotate do not handle sized-but-not-sized-sentinel ranges correctly
1 parent f669171 commit be86d0a

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

source/algorithms.tex

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8256,7 +8256,8 @@
82568256
\effects
82578257
Equivalent to:
82588258
\begin{codeblock}
8259-
return ranges::rotate(std::forward<Ep>(exec), ranges::begin(r), middle, ranges::end(r));
8259+
return ranges::rotate(std::forward<Ep>(exec), ranges::begin(r), middle,
8260+
ranges::begin(r) + ranges::distance(r));
82608261
\end{codeblock}
82618262
\end{itemdescr}
82628263

@@ -8381,8 +8382,10 @@
83818382
\effects
83828383
Equivalent to:
83838384
\begin{codeblock}
8384-
return ranges::rotate_copy(std::forward<Ep>(exec), ranges::begin(r), middle, ranges::end(r),
8385-
ranges::begin(result_r), ranges::end(result_r));
8385+
return ranges::rotate_copy(std::forward<Ep>(exec), ranges::begin(r), middle,
8386+
ranges::begin(r) + ranges::distance(r),
8387+
ranges::begin(result_r),
8388+
ranges::begin(result_r) + ranges::distance(result_r));
83868389
\end{codeblock}
83878390
\end{itemdescr}
83888391

@@ -9002,7 +9005,8 @@
90029005
Equivalent to:
90039006
\begin{codeblock}
90049007
return ranges::partial_sort(std::forward<Ep>(exec), ranges::begin(r), middle,
9005-
ranges::end(r), comp, proj);
9008+
ranges::begin(r) + ranges::distance(r),
9009+
comp, proj);
90069010
\end{codeblock}
90079011
\end{itemdescr}
90089012

@@ -9386,7 +9390,8 @@
93869390
\effects
93879391
Equivalent to:
93889392
\begin{codeblock}
9389-
return ranges::nth_element(std::forward<Ep>(exec), ranges::begin(r), nth, ranges::end(r),
9393+
return ranges::nth_element(std::forward<Ep>(exec), ranges::begin(r), nth,
9394+
ranges::begin(r) + ranges::distance(r),
93909395
comp, proj);
93919396
\end{codeblock}
93929397
\end{itemdescr}
@@ -10258,7 +10263,8 @@
1025810263
Equivalent to:
1025910264
\begin{codeblock}
1026010265
return ranges::inplace_merge(std::forward<Ep>(exec), ranges::begin(r), middle,
10261-
ranges::end(r), comp, proj);
10266+
ranges::begin(r) + ranges::distance(r),
10267+
comp, proj);
1026210268
\end{codeblock}
1026310269
\end{itemdescr}
1026410270

0 commit comments

Comments
 (0)