llvm-project/libcxx/test/std/algorithms/alg.modifying.operations
Arthur O'Dwyer 85167fb7c2 [libc++] Further improve the contiguous-iterator story, and fix some bugs.
- Quality-of-implementation: Avoid calling __unwrap_iter in constexpr contexts.
    The user might conceivably write a contiguous iterator where normal iterator
    arithmetic is constexpr-friendly but `std::to_address(it)` isn't.

- Bugfix: When you pass contiguous iterators to `std::copy`, you should get
    back your contiguous iterator type, not a raw pointer. That means that
    libc++ can't `__unwrap_iter` unless it also does `__rewrap_iter`.
    Fortunately, this is implementable.

- Improve test coverage of the new `contiguous_iterator` test iterator.
    This catches the bug described above.

- Tests: Stop testing that we can `std::copy` //into// an `input_iterator`.
    Our test iterators may currently support that, but it seems nonsensical to me.

Differential Revision: https://reviews.llvm.org/D95983
2021-02-05 15:18:04 -05:00
..
alg.copy [libc++] Further improve the contiguous-iterator story, and fix some bugs. 2021-02-05 15:18:04 -05:00
alg.fill libcxx: Rename .hpp files in libcxx/test/support to .h 2019-08-21 00:14:12 +00:00
alg.generate libcxx: Rename .hpp files in libcxx/test/support to .h 2019-08-21 00:14:12 +00:00
alg.move [libc++] Further improve the contiguous-iterator story, and fix some bugs. 2021-02-05 15:18:04 -05:00
alg.partitions [libc++] [P0879] constexpr std::reverse, partition, *_permutation. 2021-01-25 13:09:30 -05:00
alg.random.sample [libc++] Mark some tests as unsupported on GCC 5 2020-07-08 12:02:36 -04:00
alg.random.shuffle [libc++] Remove the c++98 Lit feature from the test suite 2020-06-03 09:37:22 -04:00
alg.remove [libcxx] [test] Add casts to avoid signed/unsigned mismatch warnings on MSVC++ 2020-01-14 01:11:10 -08:00
alg.replace
alg.reverse [libc++] [P0879] constexpr std::reverse, partition, *_permutation. 2021-01-25 13:09:30 -05:00
alg.rotate [libc++][test] Spell "TEST_CONSTEXPR_CXX17" correctly 2020-10-19 17:11:26 -07:00
alg.shift [libc++] Implement [P0769] "Add shift to algorithm" (shift_left, shift_right) 2021-01-25 12:57:04 -05:00
alg.swap This patch makes swap functions constexpr. Both swap overloads, swap_ranges and iter_swap are updated (with tests). 2019-07-05 20:13:34 +00:00
alg.transform
alg.unique