Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								7ae66e5e95 
								
							 
						 
						
							
							
								
								[libc++] Granularize the rest of type_traits  
							
							 
							
							... 
							
							
							
							Reviewed By: ldionne, #libc
Spies: libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D130471  
							
						 
						
							2022-08-14 10:30:48 +02:00  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								80c7e93a2a 
								
							 
						 
						
							
							
								
								[libc++] Add a bunch of missing _LIBCPP_HIDE_FROM_ABI  
							
							 
							
							... 
							
							
							
							Reviewed By: ldionne, Mordante, var-const, huixie90, #libc
Spies: jloser, libcxx-commits, arichardson, miyuki
Differential Revision: https://reviews.llvm.org/D129968  
							
						 
						
							2022-08-13 22:41:22 +02:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								8ac015caf6 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Make sure all implemented algorithms are enabled in "robust" tests.  
							
							 
							
							... 
							
							
							
							Also fix `std::find_first_of` (which accidentally copied the predicate
in the implementation).
Differential Revision: https://reviews.llvm.org/D131235  
							
						 
						
							2022-08-05 14:02:12 -07:00  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								4038c859e5 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `ranges::is_permutation`  
							
							 
							
							... 
							
							
							
							Co-authored-by: Konstantin Varlamov <varconst@apple.com>
Differential Revision: https://reviews.llvm.org/D127194  
							
						 
						
							2022-08-04 10:54:37 -07:00  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								a203acb9dd 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `ranges::clamp`  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D126193  
							
						 
						
							2022-08-04 02:45:32 -07:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								36c746ca2d 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `ranges::rotate`.  
							
							 
							
							... 
							
							
							
							Also fix `ranges::stable_sort` and `ranges::inplace_merge` to support
proxy iterators now that their internal implementations can correctly
dispatch `rotate`.
Differential Revision: https://reviews.llvm.org/D130758  
							
						 
						
							2022-08-03 16:04:24 -07:00  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								68264b6494 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `ranges::{prev, next}_permutation`.  
							
							 
							
							... 
							
							
							
							Co-authored-by: Konstantin Varlamov <varconst@apple.com>
Differential Revision: https://reviews.llvm.org/D129859  
							
						 
						
							2022-08-02 22:46:15 -07:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								6bdb642234 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `ranges::sample`.  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D130865  
							
						 
						
							2022-08-02 22:34:23 -07:00  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								93172c1c2b 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `ranges::replace_copy{,_if}`.  
							
							 
							
							... 
							
							
							
							Co-authored-by: Konstantin Varlamov <varconst@apple.com>
Differential Revision: https://reviews.llvm.org/D129806  
							
						 
						
							2022-08-02 22:32:01 -07:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								f537a01d39 
								
							 
						 
						
							
							
								
								[libc++][ranges] Fix the return value of `{copy,move}_backward`.  
							
							 
							
							... 
							
							
							
							The return value for both of these algorithms is specified as
```
`{last, result - N}` for the overloads in namespace `ranges`.
```
But the current implementation instead returns `{first, result - N}`.
Also add both algorithms to the relevant "robust" tests.
Differential Revision: https://reviews.llvm.org/D130968  
							
						 
						
							2022-08-02 22:22:59 -07:00  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								760d2b462c 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `ranges::remove_copy{, _if}`.  
							
							 
							
							... 
							
							
							
							Co-authored-by: Hui Xie <hui.xie1990@gmail.com>
Differential Revision: https://reviews.llvm.org/D130599  
							
						 
						
							2022-08-02 22:19:13 -07:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								db7d795978 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `std::ranges::partial_sort_copy`.  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D130532  
							
						 
						
							2022-07-30 02:42:18 -07:00  
						
					 
				
					
						
							
							
								 
								Hui Xie
							
						 
						
							 
							
							
							
							
								
							
							
								72f57e3a30 
								
							 
						 
						
							
							
								
								[libc++][ranges] implement `std::ranges::unique{_copy}`  
							
							 
							
							... 
							
							
							
							implement `std::ranges::unique` and `std::ranges::unique_copy`
Differential Revision: https://reviews.llvm.org/D130404  
							
						 
						
							2022-07-29 08:28:17 +01:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								b3afea1ce0 
								
							 
						 
						
							
							
								
								[libc++] Make `_IterOps::__iter_move` more similar to `std::ranges::iter_move`.  
							
							 
							
							... 
							
							
							
							Avoid relying on `iterator_traits` and instead deduce the return type of
dereferencing the iterator. Additionally, add a static check to reject
iterators with incorrect `iterator_traits` at compile time.
Differential Revision: https://reviews.llvm.org/D130538  
							
						 
						
							2022-07-28 02:06:57 -07:00  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								e01b4fe956 
								
							 
						 
						
							
							
								
								[libc++] Fix unwrapping ranges with different iterators and sentinels  
							
							 
							
							... 
							
							
							
							Reviewed By: ldionne, huixie90, #libc
Spies: arichardson, sstefan1, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D129040  
							
						 
						
							2022-07-28 10:22:41 +02:00  
						
					 
				
					
						
							
							
								 
								Hui Xie
							
						 
						
							 
							
							
							
							
								
							
							
								8a61749f76 
								
							 
						 
						
							
							
								
								[libc++][ranges] implement `std::ranges::inplace_merge`  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D130627  
							
						 
						
							2022-07-28 08:37:48 +01:00  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								98d3d5b5da 
								
							 
						 
						
							
							
								
								[libc++] Implement P1004R2 (constexpr std::vector)  
							
							 
							
							... 
							
							
							
							Reviewed By: #libc, ldionne
Spies: mgorny, var-const, ormris, philnik, miscco, hiraditya, steven_wu, jkorous, ldionne, christof, libcxx-commits
Differential Revision: https://reviews.llvm.org/D68365  
							
						 
						
							2022-07-27 20:26:44 +02:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								d406c6493e 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `ranges::is_heap{,_until}`.  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D130547  
							
						 
						
							2022-07-26 16:11:24 -07:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								964aeb713e 
								
							 
						 
						
							
							
								
								[libc++][ranges] Make sure all range algorithms support differing projection types:  
							
							 
							
							... 
							
							
							
							- for all algorithms taking more than one range, add a `robust` test to
  check the case where the ranges have different value types and the
  given projections are different, with each projection applying to
  a different value type;
- fix `ranges::include` to apply the correct projection to each range.
Differential Revision: https://reviews.llvm.org/D130515  
							
						 
						
							2022-07-26 15:51:49 -07:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								ead7302bbb 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `ranges::generate{,_n}`.  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D130552  
							
						 
						
							2022-07-26 15:50:32 -07:00  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								f4fb72e6d4 
								
							 
						 
						
							
							
								
								[libc++] Use uninitialized algorithms for vector  
							
							 
							
							... 
							
							
							
							Reviewed By: ldionne, #libc
Spies: huixie90, eaeltsin, joanahalili, bgraur, alexfh, hans, avogelsgesang, augusto2112, libcxx-commits, mgorny
Differential Revision: https://reviews.llvm.org/D128146  
							
						 
						
							2022-07-26 17:44:31 +02:00  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								20a11cb550 
								
							 
						 
						
							
							
								
								[libc++] Fix algorithms which use reverse_iterator  
							
							 
							
							... 
							
							
							
							This adds a C++20-version of `reverse_iterator` which doesn't SFINAE away the operators for use inside the classic STL algorithms. Pre-C++20 `_AlgRevIter` is just an alias for `reverse_iterator`.
Reviewed By: var-const, #libc
Spies: huixie90, libcxx-commits
Differential Revision: https://reviews.llvm.org/D128864  
							
						 
						
							2022-07-25 18:35:20 +02:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								14cf74d65d 
								
							 
						 
						
							
							
								
								[libc++][ranges] Implement `ranges::shuffle`.  
							
							 
							
							... 
							
							
							
							Differential Revision: https://reviews.llvm.org/D130321  
							
						 
						
							2022-07-22 09:59:13 -07:00  
						
					 
				
					
						
							
							
								 
								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  
						
					 
				
					
						
							
							
								 
								Hui Xie
							
						 
						
							 
							
							
							
							
								
							
							
								7abbd6224b 
								
							 
						 
						
							
							
								
								[libc++] Fix proxy iterator issues that trigger an assertion in Chromium.  
							
							 
							
							... 
							
							
							
							Crash report:
https://bugs.chromium.org/p/chromium/issues/detail?id=1346012 
The triggered assertion is related sorting with `v8::internal::AtomicSlot`.
`AtomicSlot` is a proxy iterator with a proxy type `AtomicSlot::Reference`
(see 9bcb5eb590/src/objects/slots-atomic-inl.h ).
https://reviews.llvm.org/D130197  correctly spotted the issue in
`__iter_move` but doesn't actually fix the issue. The reason is that
`AtomicSlot::operator*` returns a prvalue `Reference`. After the fix in
D130197, the return type of `__iter_move` is `Reference&&`. But the
rvalue reference is bound to the temporary value returned by
`operator*`, which will be dangling after `__iter_move` returns.
The idea of the fix in this change is borrowed from C++17's move_iterator
https://timsong-cpp.github.io/cppwp/n4659/move.iterators#move.iterator-1 
When the underlying reference is a prvalue, we just return it by value.
Differential Revision: https://reviews.llvm.org/D130212  
							
						 
						
							2022-07-20 18:05:49 -07:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								bc4d2e7051 
								
							 
						 
						
							
							
								
								[libc++] Fix `_IterOps::__iter_move` to support proxy iterators.  
							
							 
							
							... 
							
							
							
							The return type was specified incorrectly for proxy iterators that
define `reference` to be a class that implicitly converts to
`value_type`. `__iter_move` would end up returning an object of type
`reference` which would then implicitly convert to `value_type`; thus,
the function will return a `value_type&&` rvalue reference to the local
temporary.
Differential Revision: https://reviews.llvm.org/D130197  
							
						 
						
							2022-07-20 13:19:00 -07: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  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								25aa29f38a 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Consolidate range algorithm checks for returning `dangling`.  
							
							 
							
							... 
							
							
							
							Also simplify the `robust` test files for non-boolean predicates and
omitting `std::invoke`.
Differential Revision: https://reviews.llvm.org/D129741  
							
						 
						
							2022-07-19 20:46:22 -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  
						
					 
				
					
						
							
							
								 
								Hui Xie
							
						 
						
							 
							
							
							
							
								
							
							
								9c0564a3a7 
								
							 
						 
						
							
							
								
								[libc++][ranges] fix `std::search_n` incorrect `static_assert`  
							
							 
							
							... 
							
							
							
							[libc++][ranges] fix `std::search_n` incorrect `static_assert`
see more detail in https://reviews.llvm.org/D124079?#3661721 
Differential Revision: https://reviews.llvm.org/D130124  
							
						 
						
							2022-07-19 17:24:47 -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  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								a7c3379cf9 
								
							 
						 
						
							
							
								
								[libc++][ranges] Make range algorithms support proxy iterators  
							
							 
							
							... 
							
							
							
							Also test all the range algorithms to verify the support.
Differential Revision: https://reviews.llvm.org/D129823  
							
						 
						
							2022-07-17 18:12:06 -07: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  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								0a92e0728c 
								
							 
						 
						
							
							
								
								[libc++] Use __unwrap_iter_impl for both unwrapping and rewrapping  
							
							 
							
							... 
							
							
							
							Reviewed By: ldionne, #libc
Spies: arichardson, sstefan1, libcxx-commits
Differential Revision: https://reviews.llvm.org/D129039  
							
						 
						
							2022-07-14 20:01:19 +02: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 76a7651850 . 
							
						 
						
							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
							
						 
						
							 
							
							
							
							
								
							
							
								295b951ebc 
								
							 
						 
						
							
							
								
								[lib++][ranges][NFC] Refactor `iterator_operations.h` to use tags.  
							
							 
							
							... 
							
							
							
							Change the mechanism in `iterator_operations.h` to pass around a generic
policy tag indicating whether an internal function is being invoked from
a "classic" STL algorithm or a ranges algorithm. `IterOps` is now
a template class specialized on the policy tag.
The advantage is that this mechanism is more generic and allows defining
arbitrary conditions in a clean manner.
Also add a few more iterator functions to `IterOps`.
Differential Revision: https://reviews.llvm.org/D129390  
							
						 
						
							2022-07-12 17:53:58 -07:00  
						
					 
				
					
						
							
							
								 
								Konstantin Varlamov
							
						 
						
							 
							
							
							
							
								
							
							
								73ebcabff2 
								
							 
						 
						
							
							
								
								[libc++][ranges][NFC] Implement the repetitive parts of the remaining range algorithms:  
							
							 
							
							... 
							
							
							
							- create the headers (but not include them from `<algorithm>`);
- define the niebloid and its member functions with the right signatures
  (as no-ops);
- make sure all the right headers are included that are required by each
  algorithm's signature;
- update `CMakeLists.txt` and the module map;
- create the test files with the appropriate synopses.
The synopsis in `<algorithm>` is deliberately not updated because that
could be taken as a readiness signal. The new headers aren't included
from `<algorithm>` for the same reason.
Differential Revision: https://reviews.llvm.org/D129549  
							
						 
						
							2022-07-12 02:48:31 -07:00  
						
					 
				
					
						
							
							
								 
								Hui Xie
							
						 
						
							 
							
							
							
							
								
							
							
								e90e7e70ef 
								
							 
						 
						
							
							
								
								[libc++] Rename variables to use the snake case instead of camel case  
							
							 
							
							... 
							
							
							
							For some reason the pre-commit CI of https://reviews.llvm.org/D129233  was all green so I didn't spot this
https://reviews.llvm.org/B174525 
Reviewed By: #libc, philnik, Mordante
Differential Revision: https://reviews.llvm.org/D129503  
							
						 
						
							2022-07-11 21:56:57 +02: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  
						
					 
				
					
						
							
							
								 
								Nikolas Klauser
							
						 
						
							 
							
							
							
							
								
							
							
								b48c5010a4 
								
							 
						 
						
							
							
								
								[libc++] Make parameter names consistent and enforce the naming style using readability-identifier-naming  
							
							 
							
							... 
							
							
							
							Ensure that parameter names have the style `__lower_case`
Reviewed By: ldionne, #libc
Spies: aheejin, sstefan1, libcxx-commits, miyuki
Differential Revision: https://reviews.llvm.org/D129051  
							
						 
						
							2022-07-08 18:17:47 +02: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
							
						 
						
							 
							
							
							
							
								
							
							
								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