libstdc++: P0769R2 Add shift to <algorithm>
authorPatrick Palka <ppalka@redhat.com>
Fri, 21 Feb 2020 18:55:01 +0000 (13:55 -0500)
committerPatrick Palka <ppalka@redhat.com>
Mon, 24 Feb 2020 15:08:57 +0000 (10:08 -0500)
commitc5eab4ed45e9762dfb8a58d2b5672d358467ad89
treeed6aeb75a5597310ddc61c3da5fd070698b5ab8f
parent027a3f1c38727a1ea0969088b0680b2f6bb1e977
libstdc++: P0769R2 Add shift to <algorithm>

This patch adds std::shift_left and std::shift_right as per P0769R2.  Alhough
these are STL-style algos, this patch places them in <bits/ranges_algo.h>
because they make use of some functions in the ranges namespace that are more
easily reachable from <bits/ranges_algo.h> than from <bits/stl_algo.h>, namely
ranges::next.  In order to place these algos in <bits/stl_algo.h>, we would need
to include <bits/range_access.h> from <bits/stl_algo.h> which would undesirably
increase the size of <bits/stl_algo.h>.

libstdc++-v3/ChangeLog:

P0769R2 Add shift to <algorithm>
* include/bits/ranges_algo.h (shift_left, shift_right): New.
* testsuite/25_algorithms/shift_left/1.cc: New test.
* testsuite/25_algorithms/shift_right/1.cc: New test.
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/ranges_algo.h
libstdc++-v3/testsuite/25_algorithms/shift_left/1.cc [new file with mode: 0644]
libstdc++-v3/testsuite/25_algorithms/shift_right/1.cc [new file with mode: 0644]