Hui Xie
c559964d85
[libc++][ranges] implement std::ranges::includes
...
implement `std::ranges::includes` and delegate to `std::includes`
Differential Revision: https://reviews.llvm.org/D130116
2022-07-22 10:27:48 +01:00
Hui Xie
0f6364b8a1
[libc++][ranges] implement std::ranges::equal_range
...
implement `std::ranges::equal_range` which delegates to
`std::equal_range`
Differential Revision: https://reviews.llvm.org/D129796
2022-07-22 10:24:08 +01:00
Konstantin Varlamov
065202f3ca
[libc++][ranges] Implement std::ranges::partition_{point,copy}
.
...
Reviewed By: #libc, huixie90, ldionne
Differential Revision: https://reviews.llvm.org/D130070
2022-07-20 11:39:07 -07:00
varconst
5dd19ada57
[libc++][ranges] Implement ranges::partial_sort
.
...
Differential Revision: https://reviews.llvm.org/D128744
2022-07-19 20:10:34 -07:00
Konstantin Varlamov
8ed702b83f
[libc++][ranges] Implement ranges::{,stable_}partition
.
...
Differential Revision: https://reviews.llvm.org/D129624
2022-07-18 21:06:17 -07:00
Nikolas Klauser
5492b71db3
[libc++] Update RangesAlgorithms.csv
2022-07-15 00:18:31 +02:00
Hui Xie
3151b95dad
[libc++][ranges] implement std::ranges::set_union
...
[libc++][ranges] implement `std::ranges::set_union`
Differential Revision: https://reviews.llvm.org/D129657
2022-07-14 21:05:30 +01:00
Hui Xie
a5c0638dec
[libc++][ranges] implement std::ranges::set_symmetric_difference
...
[libc++][ranges] implement `std::ranges::set_symmetric_difference`
Differential Revision: https://reviews.llvm.org/D129520
2022-07-13 21:24:32 +01:00
Nikolas Klauser
101d1e9b3c
[libc++] Implement ranges::find_end, ranges::search{, _n}
...
Reviewed By: var-const, #libc, huixie90
Spies: thakis, h-vetinari, huixie90, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D124079
2022-07-13 20:30:55 +02:00
Nikolas Klauser
1f04759316
Revert "[libc++] Implement ranges::find_end, ranges::search{, _n}"
...
This reverts commit 76a76518507ccc59ccdad5b83f44dc8c3d9593c7.
2022-07-13 13:41:25 +02:00
Nikolas Klauser
76a7651850
[libc++] Implement ranges::find_end, ranges::search{, _n}
...
Reviewed By: var-const, #libc, huixie90
Spies: h-vetinari, huixie90, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D124079
2022-07-13 13:11:26 +02:00
Konstantin Varlamov
d4c53202eb
[libc++][ranges][NFC] Consolidate some repetitive range algorithm tests:
...
- checking that the algorithm supports predicates returning
a non-boolean type that's implicitly convertible to `bool`;
- checking that predicates and/or projections are invoked using
`std::invoke`.
Differential Revision: https://reviews.llvm.org/D129414
2022-07-12 02:06:36 -07:00
Nikolas Klauser
7d426a392f
[libc++] Implement ranges::{reverse, rotate}_copy
...
Reviewed By: var-const, #libc
Spies: huixie90, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D127211
2022-07-11 21:13:08 +02:00
Hui Xie
96b674f23c
[libc++][ranges] implement std::ranges::set_intersection
...
implement `std::ranges::set_intersection` by reusing the classic `std::set_intersenction`
added unit tests
Differential Revision: https://reviews.llvm.org/D129233
2022-07-11 06:55:09 +01:00
Konstantin Varlamov
c945bd0da6
[libc++][ranges] Implement modifying heap algorithms:
...
- `ranges::make_heap`;
- `ranges::push_heap`;
- `ranges::pop_heap`;
- `ranges::sort_heap`.
Differential Revision: https://reviews.llvm.org/D128115
2022-07-08 13:48:41 -07:00
Konstantin Varlamov
23c7328bad
[libc++][ranges] Implement ranges::nth_element
.
...
Differential Revision: https://reviews.llvm.org/D128149
2022-07-08 11:26:02 -07:00
Hui Xie
1cdec6c96e
[libcxx][ranges] implement std::ranges::set_difference
...
implement `std::ranges::set_difference`
reused classic std::set_difference
added unit tests
Differential Revision: https://reviews.llvm.org/D128983
2022-07-08 13:26:23 +01:00
Nikolas Klauser
a3ac6891f8
[libc++] Fix a few things in RangesAlgorithms.csv
2022-07-07 01:57:20 +02:00
Nikolas Klauser
f8cbe3cdf0
[libc++] Implement ranges::remove{, _if}
...
Reviewed By: var-const, #libc
Spies: huixie90, sstefan1, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D128618
2022-07-06 18:47:13 +02:00
Hui Xie
25607d143d
[libc++] Implement std::ranges::merge
...
Implement `std::ranges::merge`. added unit tests
Differential Revision: https://reviews.llvm.org/D128611
2022-07-04 13:44:31 +01:00
Konstantin Varlamov
94c7b89fe5
[libc++][ranges] Implement ranges::stable_sort
.
...
Differential Revision: https://reviews.llvm.org/D127834
2022-07-01 16:34:26 -07:00
Konstantin Varlamov
d417710c3a
[libc++][ranges][NFC] Fix a format error on the ranges status page.
2022-06-18 02:22:26 -07:00
Konstantin Varlamov
ff3989e6ae
[libc++][ranges] Implement ranges::sort
.
...
Differential Revision: https://reviews.llvm.org/D127557
2022-06-16 15:21:06 -07:00
Nikolas Klauser
afd5a4f2dc
[libc++] Implement ranges::lexicographical_compare
...
Reviewed By: var-const, Mordante, #libc
Spies: H-G-Hristov, sstefan1, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D127130
2022-06-15 22:29:21 +02:00
Nikolas Klauser
ee397722cc
[libc++][NFC] Update ranges algorithms status page
2022-06-11 16:21:34 +02:00
Nikolas Klauser
ff6d5dee71
[libc++] Implement ranges::replace{, _if}
...
Reviewed By: var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D126283
2022-06-10 11:54:46 +02:00
Nikolas Klauser
b79b2b6772
[libc++] Implement ranges::find_first_of
...
Reviewed By: Mordante, var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D126529
2022-06-06 22:29:02 +02:00
Nikolas Klauser
8171586176
[libc++][ranges] Implement ranges::binary_search and ranges::{lower, upper}_bound
...
Reviewed By: Mordante, var-const, ldionne, #libc
Spies: sstefan1, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D121964
2022-06-06 13:33:18 +02:00
varconst
7c63cc198b
[libc++][ranges][NFC] Fix a patch link in ranges status.
2022-06-03 20:39:00 -07:00
varconst
faf43ad7ae
[libc++][ranges][NFC] Mark range algorithms that are in progress.
2022-06-03 20:02:46 -07:00
Nikolas Klauser
3606da5fba
[libc++] Enable ranges_robust_against* and niebloid tests for implemented ranges algorithms
...
Spies: libcxx-commits
Differential Revision: https://reviews.llvm.org/D126477
2022-05-27 10:40:01 +02:00
Nikolas Klauser
11e3ad299f
[libc++] Implement ranges::is_sorted{, _until}
...
Reviewed By: Mordante, var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D125608
2022-05-27 10:28:44 +02:00
Nikolas Klauser
0e3dc1a52f
[libc++] Implement ranges::{all, any, none}_of
...
Reviewed By: ldionne, var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D123016
2022-05-26 16:50:08 +02:00
Nikolas Klauser
569d663020
[libc++] Implement ranges::equal
...
Reviewed By: var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D123681
2022-05-26 10:46:54 +02:00
Nikolas Klauser
7af89a379c
[libc++] Implement ranges::fill{, _n}
...
Reviewed By: var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D123462
2022-05-25 10:27:13 +02:00
Nikolas Klauser
1d1a191edc
[libc++] Implement ranges::reverse
...
Reviewed By: var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D125752
2022-05-24 10:33:57 +02:00
Nikolas Klauser
37ba1b9d1a
[libc++] Implement ranges::is_partitioned
...
Reviewed By: var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D124440
2022-05-06 13:02:38 +02:00
Nikolas Klauser
80045e9afa
[libc++] Implement ranges::for_each{, _n}
...
Reviewed By: var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D124332
2022-05-04 20:28:01 +02:00
Nikolas Klauser
1d83750f63
[libc++] Implement ranges::copy{, _n, _if, _backward}
...
Reviewed By: Mordante, var-const, #libc
Spies: sstefan1, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D122982
2022-04-15 13:44:11 +02:00
Nikolas Klauser
58d9ab70ae
[libc++][ranges] Implement ranges::minmax and ranges::minmax_element
...
Reviewed By: var-const, #libc, ldionne
Spies: sstefan1, ldionne, BRevzin, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D120637
2022-04-14 15:37:22 +02:00
Nikolas Klauser
1306b1025c
[libc++][ranges] Implement ranges::count{, _if}
...
Reviewed By: var-const, Mordante, ldionne, #libc
Spies: tcanens, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D121523
2022-04-07 15:18:14 +02:00
Nikolas Klauser
3ba8548c8e
[libc++][ranges] Implement ranges::transform
...
Reviewed By: ldionne, var-const, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D122173
2022-04-05 11:06:28 +02:00
Nikolas Klauser
e476df5629
[libc++][ranges] Implement ranges::max
...
Reviewed By: Mordante, var-const, #libc
Spies: sstefan1, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D122002
2022-04-03 17:04:56 +02:00
Nikolas Klauser
f83d833e41
[libc++][ranges] Implement ranges::min
...
Reviewed By: var-const, Mordante, #libc
Spies: jwakely, ldionne, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D119589
2022-03-18 12:52:21 +01:00
Nikolas Klauser
ee0f8c4010
[libc++][ranges] Implement ranges::find{, _if, _if_not}
...
Reviewed By: var-const, #libc, ldionne
Spies: ldionne, tcanens, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D121248
2022-03-12 01:46:02 +01:00
Nikolas Klauser
c2cd15a665
[libc++][ranges] Implement ranges::mismatch
...
Implement `ranges::mismatch`
Reviewed By: Quuxplusone, ldionne, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D117817
2022-03-08 23:20:40 +01:00
Konstantin Varlamov
49ff418ed5
[libc++][ranges][NFC] Small formatting fixes to the Ranges algorithms' status.
2022-02-15 09:43:29 -08:00
Nikolas Klauser
3b470d1ce9
[libc++][ranges] Implement ranges::min_element
...
Implement ranges::min_element
Reviewed By: Quuxplusone, Mordante, #libc
Spies: miscco, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D117025
2022-02-11 17:20:27 +01:00
Nikolas Klauser
9d90531904
[libc++][ranges] Implement std::ranges::swap_ranges()
...
Implement `std::ranges::swap_ranges()`
Reviewed By: Quuxplusone, #libc, ldionne
Spies: ldionne, mgorny, jloser, libcxx-commits
Differential Revision: https://reviews.llvm.org/D116303
2022-02-10 16:01:45 +01:00
Konstantin Varlamov
b9bc3c107c
[libc++][ranges] Implement construct_at
and destroy{,_at}
.
...
Differential Revision: https://reviews.llvm.org/D116078
2022-01-12 16:01:04 -08:00