mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-31 17:52:27 +00:00
Release Cosmopolitan v3.6.0
This release is an atomic upgrade to GCC 14.1.0 with C23 and C++23
This commit is contained in:
parent
62ace3623a
commit
5660ec4741
1585 changed files with 117353 additions and 271644 deletions
326
third_party/libcxx/algorithm
vendored
326
third_party/libcxx/algorithm
vendored
|
@ -42,6 +42,9 @@ namespace ranges {
|
|||
template <class I>
|
||||
struct in_found_result; // since C++20
|
||||
|
||||
template <class I, class T>
|
||||
struct in_value_result; // since C++23
|
||||
|
||||
template<forward_iterator I, sentinel_for<I> S, class Proj = identity,
|
||||
indirect_strict_weak_order<projected<I, Proj>> Comp = ranges::less> // since C++20
|
||||
constexpr I min_element(I first, S last, Comp comp = {}, Proj proj = {});
|
||||
|
@ -99,6 +102,31 @@ namespace ranges {
|
|||
constexpr borrowed_iterator_t<R>
|
||||
find_if_not(R&& r, Pred pred, Proj proj = {}); // since C++20
|
||||
|
||||
template<forward_iterator I, sentinel_for<I> S, class T, class Proj = identity>
|
||||
requires indirect_binary_predicate<ranges::equal_to, projected<I, Proj>, const T*>
|
||||
constexpr subrange<I> find_last(I first, S last, const T& value, Proj proj = {}); // since C++23
|
||||
|
||||
template<forward_range R, class T, class Proj = identity>
|
||||
requires
|
||||
indirect_binary_predicate<ranges::equal_to, projected<iterator_t<R>, Proj>, const T*>
|
||||
constexpr borrowed_subrange_t<R> find_last(R&& r, const T& value, Proj proj = {}); // since C++23
|
||||
|
||||
template<forward_iterator I, sentinel_for<I> S, class Proj = identity,
|
||||
indirect_unary_predicate<projected<I, Proj>> Pred>
|
||||
constexpr subrange<I> find_last_if(I first, S last, Pred pred, Proj proj = {}); // since C++23
|
||||
|
||||
template<forward_range R, class Proj = identity,
|
||||
indirect_unary_predicate<projected<iterator_t<R>, Proj>> Pred>
|
||||
constexpr borrowed_subrange_t<R> find_last_if(R&& r, Pred pred, Proj proj = {}); // since C++23
|
||||
|
||||
template<forward_iterator I, sentinel_for<I> S, class Proj = identity,
|
||||
indirect_unary_predicate<projected<I, Proj>> Pred>
|
||||
constexpr subrange<I> find_last_if_not(I first, S last, Pred pred, Proj proj = {}); // since C++23
|
||||
|
||||
template<forward_range R, class Proj = identity,
|
||||
indirect_unary_predicate<projected<iterator_t<R>, Proj>> Pred>
|
||||
constexpr borrowed_subrange_t<R> find_last_if_not(R&& r, Pred pred, Proj proj = {}); // since C++23
|
||||
|
||||
template<class T, class Proj = identity,
|
||||
indirect_strict_weak_order<projected<const T*, Proj>> Comp = ranges::less>
|
||||
constexpr const T& min(const T& a, const T& b, Comp comp = {}, Proj proj = {}); // since C++20
|
||||
|
@ -214,6 +242,19 @@ namespace ranges {
|
|||
constexpr ranges::minmax_element_result<borrowed_iterator_t<R>>
|
||||
minmax_element(R&& r, Comp comp = {}, Proj proj = {}); // since C++20
|
||||
|
||||
template<forward_iterator I1, sentinel_for<I1> S1,
|
||||
forward_iterator I2, sentinel_for<I2> S2,
|
||||
class Pred = ranges::equal_to, class Proj1 = identity, class Proj2 = identity>
|
||||
requires indirectly_comparable<I1, I2, Pred, Proj1, Proj2>
|
||||
constexpr bool contains_subrange(I1 first1, S1 last1, I2 first2, S2 last2,
|
||||
Pred pred = {}, Proj1 proj1 = {}, Proj2 proj2 = {}); // since C++23
|
||||
|
||||
template<forward_range R1, forward_range R2,
|
||||
class Pred = ranges::equal_to, class Proj1 = identity, class Proj2 = identity>
|
||||
requires indirectly_comparable<iterator_t<R1>, iterator_t<R2>, Pred, Proj1, Proj2>
|
||||
constexpr bool contains_subrange(R1&& r1, R2&& r2, Pred pred = {},
|
||||
Proj1 proj1 = {}, Proj2 proj2 = {}); // since C++23
|
||||
|
||||
template<class I, class O>
|
||||
using copy_result = in_out_result<I, O>; // since C++20
|
||||
|
||||
|
@ -226,6 +267,14 @@ namespace ranges {
|
|||
template<class I1, class I2>
|
||||
using copy_backward_result = in_out_result<I1, I2>; // since C++20
|
||||
|
||||
template<input_iterator I, sentinel_for<I> S, class T, class Proj = identity>
|
||||
requires indirect_binary_predicate<ranges::equal_to, projected<I, Proj>, const T*>
|
||||
constexpr bool ranges::contains(I first, S last, const T& value, Proj proj = {}); // since C++23
|
||||
|
||||
template<input_range R, class T, class Proj = identity>
|
||||
requires indirect_binary_predicate<ranges::equal_to, projected<iterator_t<R>, Proj>, const T*>
|
||||
constexpr bool ranges::contains(R&& r, const T& value, Proj proj = {}); // since C++23
|
||||
|
||||
template<input_iterator I, sentinel_for<I> S, weakly_incrementable O>
|
||||
requires indirectly_copyable<I, O>
|
||||
constexpr ranges::copy_result<I, O> ranges::copy(I first, S last, O result); // since C++20
|
||||
|
@ -401,6 +450,11 @@ namespace ranges {
|
|||
requires invocable<F&> && indirectly_writable<O, invoke_result_t<F&>>
|
||||
constexpr O generate(O first, S last, F gen); // since C++20
|
||||
|
||||
template<class ExecutionPolicy, class ForwardIterator, class Generator>
|
||||
void generate(ExecutionPolicy&& exec,
|
||||
ForwardIterator first, ForwardIterator last,
|
||||
Generator gen); // since C++17
|
||||
|
||||
template<class R, copy_constructible F>
|
||||
requires invocable<F&> && output_range<R, invoke_result_t<F&>>
|
||||
constexpr borrowed_iterator_t<R> generate(R&& r, F gen); // since C++20
|
||||
|
@ -409,6 +463,10 @@ namespace ranges {
|
|||
requires invocable<F&> && indirectly_writable<O, invoke_result_t<F&>>
|
||||
constexpr O generate_n(O first, iter_difference_t<O> n, F gen); // since C++20
|
||||
|
||||
template<class ExecutionPolicy, class ForwardIterator, class Size, class Generator>
|
||||
ForwardIterator generate_n(ExecutionPolicy&& exec,
|
||||
ForwardIterator first, Size n, Generator gen); // since C++17
|
||||
|
||||
template<input_iterator I1, sentinel_for<I1> S1, input_iterator I2, sentinel_for<I2> S2,
|
||||
class Pred = ranges::equal_to, class Proj1 = identity, class Proj2 = identity>
|
||||
requires indirectly_comparable<I1, I2, Pred, Proj1, Proj2>
|
||||
|
@ -438,6 +496,22 @@ namespace ranges {
|
|||
indirect_unary_predicate<projected<iterator_t<R>, Proj>> Pred>
|
||||
constexpr bool ranges::any_of(R&& r, Pred pred, Proj proj = {}); // since C++20
|
||||
|
||||
template<input_iterator I1, sentinel_for<I1> S1, input_iterator I2, sentinel_for<I2> S2,
|
||||
class Pred = ranges::equal_to, class Proj1 = identity, class Proj2 = identity>
|
||||
requires (forward_iterator<I1> || sized_sentinel_for<S1, I1>) &&
|
||||
(forward_iterator<I2> || sized_sentinel_for<S2, I2>) &&
|
||||
indirectly_comparable<I1, I2, Pred, Proj1, Proj2>
|
||||
constexpr bool ranges::ends_with(I1 first1, S1 last1, I2 first2, S2 last2, Pred pred = {},
|
||||
Proj1 proj1 = {}, Proj2 proj2 = {}); // since C++23
|
||||
|
||||
template<input_range R1, input_range R2, class Pred = ranges::equal_to, class Proj1 = identity,
|
||||
class Proj2 = identity>
|
||||
requires (forward_range<R1> || sized_range<R1>) &&
|
||||
(forward_range<R2> || sized_range<R2>) &&
|
||||
indirectly_comparable<iterator_t<R1>, iterator_t<R2>, Pred, Proj1, Proj2>
|
||||
constexpr bool ranges::ends_with(R1&& r1, R2&& r2, Pred pred = {},
|
||||
Proj1 proj1 = {}, Proj2 proj2 = {}); // since C++23
|
||||
|
||||
template<input_iterator I, sentinel_for<I> S, class Proj = identity,
|
||||
indirect_unary_predicate<projected<I, Proj>> Pred>
|
||||
constexpr bool ranges::none_of(I first, S last, Pred pred, Proj proj = {}); // since C++20
|
||||
|
@ -848,6 +922,23 @@ namespace ranges {
|
|||
ranges::search_n(R&& r, range_difference_t<R> count,
|
||||
const T& value, Pred pred = {}, Proj proj = {}); // since C++20
|
||||
|
||||
template<input_iterator I, sentinel_for<I> S, class T,
|
||||
indirectly-binary-left-foldable<T, I> F>
|
||||
constexpr auto ranges::fold_left(I first, S last, T init, F f); // since C++23
|
||||
|
||||
template<input_range R, class T, indirectly-binary-left-foldable<T, iterator_t<R>> F>
|
||||
constexpr auto fold_left(R&& r, T init, F f); // since C++23
|
||||
|
||||
template<class I, class T>
|
||||
using fold_left_with_iter_result = in_value_result<I, T>; // since C++23
|
||||
|
||||
template<input_iterator I, sentinel_for<I> S, class T,
|
||||
indirectly-binary-left-foldable<T, I> F>
|
||||
constexpr see below fold_left_with_iter(I first, S last, T init, F f); // since C++23
|
||||
|
||||
template<input_range R, class T, indirectly-binary-left-foldable<T, iterator_t<R>> F>
|
||||
constexpr see below fold_left_with_iter(R&& r, T init, F f); // since C++23
|
||||
|
||||
template<forward_iterator I1, sentinel_for<I1> S1, forward_iterator I2, sentinel_for<I2> S2,
|
||||
class Pred = ranges::equal_to, class Proj1 = identity, class Proj2 = identity>
|
||||
requires indirectly_comparable<I1, I2, Pred, Proj1, Proj2>
|
||||
|
@ -1727,19 +1818,12 @@ template <class BidirectionalIterator, class Compare>
|
|||
|
||||
*/
|
||||
|
||||
#include <__assert> // all public C++ headers provide the assertion handler
|
||||
#include <__config>
|
||||
#include <__debug>
|
||||
#include <cstddef>
|
||||
#include <version>
|
||||
|
||||
#include <__algorithm/adjacent_find.h>
|
||||
#include <__algorithm/all_of.h>
|
||||
#include <__algorithm/any_of.h>
|
||||
#include <__algorithm/binary_search.h>
|
||||
#include <__algorithm/clamp.h>
|
||||
#include <__algorithm/comp.h>
|
||||
#include <__algorithm/comp_ref_type.h>
|
||||
#include <__algorithm/copy.h>
|
||||
#include <__algorithm/copy_backward.h>
|
||||
#include <__algorithm/copy_if.h>
|
||||
|
@ -1756,16 +1840,8 @@ template <class BidirectionalIterator, class Compare>
|
|||
#include <__algorithm/find_if.h>
|
||||
#include <__algorithm/find_if_not.h>
|
||||
#include <__algorithm/for_each.h>
|
||||
#include <__algorithm/for_each_n.h>
|
||||
#include <__algorithm/generate.h>
|
||||
#include <__algorithm/generate_n.h>
|
||||
#include <__algorithm/half_positive.h>
|
||||
#include <__algorithm/in_found_result.h>
|
||||
#include <__algorithm/in_fun_result.h>
|
||||
#include <__algorithm/in_in_out_result.h>
|
||||
#include <__algorithm/in_in_result.h>
|
||||
#include <__algorithm/in_out_out_result.h>
|
||||
#include <__algorithm/in_out_result.h>
|
||||
#include <__algorithm/includes.h>
|
||||
#include <__algorithm/inplace_merge.h>
|
||||
#include <__algorithm/is_heap.h>
|
||||
|
@ -1776,7 +1852,6 @@ template <class BidirectionalIterator, class Compare>
|
|||
#include <__algorithm/is_sorted_until.h>
|
||||
#include <__algorithm/iter_swap.h>
|
||||
#include <__algorithm/lexicographical_compare.h>
|
||||
#include <__algorithm/lexicographical_compare_three_way.h>
|
||||
#include <__algorithm/lower_bound.h>
|
||||
#include <__algorithm/make_heap.h>
|
||||
#include <__algorithm/max.h>
|
||||
|
@ -1784,7 +1859,6 @@ template <class BidirectionalIterator, class Compare>
|
|||
#include <__algorithm/merge.h>
|
||||
#include <__algorithm/min.h>
|
||||
#include <__algorithm/min_element.h>
|
||||
#include <__algorithm/min_max_result.h>
|
||||
#include <__algorithm/minmax.h>
|
||||
#include <__algorithm/minmax_element.h>
|
||||
#include <__algorithm/mismatch.h>
|
||||
|
@ -1800,100 +1874,7 @@ template <class BidirectionalIterator, class Compare>
|
|||
#include <__algorithm/partition_point.h>
|
||||
#include <__algorithm/pop_heap.h>
|
||||
#include <__algorithm/prev_permutation.h>
|
||||
#include <__algorithm/pstl_any_all_none_of.h>
|
||||
#include <__algorithm/pstl_copy.h>
|
||||
#include <__algorithm/pstl_fill.h>
|
||||
#include <__algorithm/pstl_find.h>
|
||||
#include <__algorithm/pstl_for_each.h>
|
||||
#include <__algorithm/pstl_merge.h>
|
||||
#include <__algorithm/pstl_transform.h>
|
||||
#include <__algorithm/push_heap.h>
|
||||
#include <__algorithm/ranges_adjacent_find.h>
|
||||
#include <__algorithm/ranges_all_of.h>
|
||||
#include <__algorithm/ranges_any_of.h>
|
||||
#include <__algorithm/ranges_binary_search.h>
|
||||
#include <__algorithm/ranges_clamp.h>
|
||||
#include <__algorithm/ranges_copy.h>
|
||||
#include <__algorithm/ranges_copy_backward.h>
|
||||
#include <__algorithm/ranges_copy_if.h>
|
||||
#include <__algorithm/ranges_copy_n.h>
|
||||
#include <__algorithm/ranges_count.h>
|
||||
#include <__algorithm/ranges_count_if.h>
|
||||
#include <__algorithm/ranges_equal.h>
|
||||
#include <__algorithm/ranges_equal_range.h>
|
||||
#include <__algorithm/ranges_fill.h>
|
||||
#include <__algorithm/ranges_fill_n.h>
|
||||
#include <__algorithm/ranges_find.h>
|
||||
#include <__algorithm/ranges_find_end.h>
|
||||
#include <__algorithm/ranges_find_first_of.h>
|
||||
#include <__algorithm/ranges_find_if.h>
|
||||
#include <__algorithm/ranges_find_if_not.h>
|
||||
#include <__algorithm/ranges_for_each.h>
|
||||
#include <__algorithm/ranges_for_each_n.h>
|
||||
#include <__algorithm/ranges_generate.h>
|
||||
#include <__algorithm/ranges_generate_n.h>
|
||||
#include <__algorithm/ranges_includes.h>
|
||||
#include <__algorithm/ranges_inplace_merge.h>
|
||||
#include <__algorithm/ranges_is_heap.h>
|
||||
#include <__algorithm/ranges_is_heap_until.h>
|
||||
#include <__algorithm/ranges_is_partitioned.h>
|
||||
#include <__algorithm/ranges_is_permutation.h>
|
||||
#include <__algorithm/ranges_is_sorted.h>
|
||||
#include <__algorithm/ranges_is_sorted_until.h>
|
||||
#include <__algorithm/ranges_lexicographical_compare.h>
|
||||
#include <__algorithm/ranges_lower_bound.h>
|
||||
#include <__algorithm/ranges_make_heap.h>
|
||||
#include <__algorithm/ranges_max.h>
|
||||
#include <__algorithm/ranges_max_element.h>
|
||||
#include <__algorithm/ranges_merge.h>
|
||||
#include <__algorithm/ranges_min.h>
|
||||
#include <__algorithm/ranges_min_element.h>
|
||||
#include <__algorithm/ranges_minmax.h>
|
||||
#include <__algorithm/ranges_minmax_element.h>
|
||||
#include <__algorithm/ranges_mismatch.h>
|
||||
#include <__algorithm/ranges_move.h>
|
||||
#include <__algorithm/ranges_move_backward.h>
|
||||
#include <__algorithm/ranges_next_permutation.h>
|
||||
#include <__algorithm/ranges_none_of.h>
|
||||
#include <__algorithm/ranges_nth_element.h>
|
||||
#include <__algorithm/ranges_partial_sort.h>
|
||||
#include <__algorithm/ranges_partial_sort_copy.h>
|
||||
#include <__algorithm/ranges_partition.h>
|
||||
#include <__algorithm/ranges_partition_copy.h>
|
||||
#include <__algorithm/ranges_partition_point.h>
|
||||
#include <__algorithm/ranges_pop_heap.h>
|
||||
#include <__algorithm/ranges_prev_permutation.h>
|
||||
#include <__algorithm/ranges_push_heap.h>
|
||||
#include <__algorithm/ranges_remove.h>
|
||||
#include <__algorithm/ranges_remove_copy.h>
|
||||
#include <__algorithm/ranges_remove_copy_if.h>
|
||||
#include <__algorithm/ranges_remove_if.h>
|
||||
#include <__algorithm/ranges_replace.h>
|
||||
#include <__algorithm/ranges_replace_copy.h>
|
||||
#include <__algorithm/ranges_replace_copy_if.h>
|
||||
#include <__algorithm/ranges_replace_if.h>
|
||||
#include <__algorithm/ranges_reverse.h>
|
||||
#include <__algorithm/ranges_reverse_copy.h>
|
||||
#include <__algorithm/ranges_rotate.h>
|
||||
#include <__algorithm/ranges_rotate_copy.h>
|
||||
#include <__algorithm/ranges_sample.h>
|
||||
#include <__algorithm/ranges_search.h>
|
||||
#include <__algorithm/ranges_search_n.h>
|
||||
#include <__algorithm/ranges_set_difference.h>
|
||||
#include <__algorithm/ranges_set_intersection.h>
|
||||
#include <__algorithm/ranges_set_symmetric_difference.h>
|
||||
#include <__algorithm/ranges_set_union.h>
|
||||
#include <__algorithm/ranges_shuffle.h>
|
||||
#include <__algorithm/ranges_sort.h>
|
||||
#include <__algorithm/ranges_sort_heap.h>
|
||||
#include <__algorithm/ranges_stable_partition.h>
|
||||
#include <__algorithm/ranges_stable_sort.h>
|
||||
#include <__algorithm/ranges_starts_with.h>
|
||||
#include <__algorithm/ranges_swap_ranges.h>
|
||||
#include <__algorithm/ranges_transform.h>
|
||||
#include <__algorithm/ranges_unique.h>
|
||||
#include <__algorithm/ranges_unique_copy.h>
|
||||
#include <__algorithm/ranges_upper_bound.h>
|
||||
#include <__algorithm/remove.h>
|
||||
#include <__algorithm/remove_copy.h>
|
||||
#include <__algorithm/remove_copy_if.h>
|
||||
|
@ -1906,17 +1887,13 @@ template <class BidirectionalIterator, class Compare>
|
|||
#include <__algorithm/reverse_copy.h>
|
||||
#include <__algorithm/rotate.h>
|
||||
#include <__algorithm/rotate_copy.h>
|
||||
#include <__algorithm/sample.h>
|
||||
#include <__algorithm/search.h>
|
||||
#include <__algorithm/search_n.h>
|
||||
#include <__algorithm/set_difference.h>
|
||||
#include <__algorithm/set_intersection.h>
|
||||
#include <__algorithm/set_symmetric_difference.h>
|
||||
#include <__algorithm/set_union.h>
|
||||
#include <__algorithm/shift_left.h>
|
||||
#include <__algorithm/shift_right.h>
|
||||
#include <__algorithm/shuffle.h>
|
||||
#include <__algorithm/sift_down.h>
|
||||
#include <__algorithm/sort.h>
|
||||
#include <__algorithm/sort_heap.h>
|
||||
#include <__algorithm/stable_partition.h>
|
||||
|
@ -1925,9 +1902,124 @@ template <class BidirectionalIterator, class Compare>
|
|||
#include <__algorithm/transform.h>
|
||||
#include <__algorithm/unique.h>
|
||||
#include <__algorithm/unique_copy.h>
|
||||
#include <__algorithm/unwrap_iter.h>
|
||||
#include <__algorithm/upper_bound.h>
|
||||
|
||||
#if _LIBCPP_STD_VER >= 17
|
||||
# include <__algorithm/clamp.h>
|
||||
# include <__algorithm/for_each_n.h>
|
||||
# include <__algorithm/pstl.h>
|
||||
# include <__algorithm/sample.h>
|
||||
#endif // _LIBCPP_STD_VER >= 17
|
||||
|
||||
#if _LIBCPP_STD_VER >= 20
|
||||
# include <__algorithm/in_found_result.h>
|
||||
# include <__algorithm/in_fun_result.h>
|
||||
# include <__algorithm/in_in_out_result.h>
|
||||
# include <__algorithm/in_in_result.h>
|
||||
# include <__algorithm/in_out_out_result.h>
|
||||
# include <__algorithm/in_out_result.h>
|
||||
# include <__algorithm/lexicographical_compare_three_way.h>
|
||||
# include <__algorithm/min_max_result.h>
|
||||
# include <__algorithm/ranges_adjacent_find.h>
|
||||
# include <__algorithm/ranges_all_of.h>
|
||||
# include <__algorithm/ranges_any_of.h>
|
||||
# include <__algorithm/ranges_binary_search.h>
|
||||
# include <__algorithm/ranges_clamp.h>
|
||||
# include <__algorithm/ranges_contains.h>
|
||||
# include <__algorithm/ranges_copy.h>
|
||||
# include <__algorithm/ranges_copy_backward.h>
|
||||
# include <__algorithm/ranges_copy_if.h>
|
||||
# include <__algorithm/ranges_copy_n.h>
|
||||
# include <__algorithm/ranges_count.h>
|
||||
# include <__algorithm/ranges_count_if.h>
|
||||
# include <__algorithm/ranges_equal.h>
|
||||
# include <__algorithm/ranges_equal_range.h>
|
||||
# include <__algorithm/ranges_fill.h>
|
||||
# include <__algorithm/ranges_fill_n.h>
|
||||
# include <__algorithm/ranges_find.h>
|
||||
# include <__algorithm/ranges_find_end.h>
|
||||
# include <__algorithm/ranges_find_first_of.h>
|
||||
# include <__algorithm/ranges_find_if.h>
|
||||
# include <__algorithm/ranges_find_if_not.h>
|
||||
# include <__algorithm/ranges_for_each.h>
|
||||
# include <__algorithm/ranges_for_each_n.h>
|
||||
# include <__algorithm/ranges_generate.h>
|
||||
# include <__algorithm/ranges_generate_n.h>
|
||||
# include <__algorithm/ranges_includes.h>
|
||||
# include <__algorithm/ranges_inplace_merge.h>
|
||||
# include <__algorithm/ranges_is_heap.h>
|
||||
# include <__algorithm/ranges_is_heap_until.h>
|
||||
# include <__algorithm/ranges_is_partitioned.h>
|
||||
# include <__algorithm/ranges_is_permutation.h>
|
||||
# include <__algorithm/ranges_is_sorted.h>
|
||||
# include <__algorithm/ranges_is_sorted_until.h>
|
||||
# include <__algorithm/ranges_lexicographical_compare.h>
|
||||
# include <__algorithm/ranges_lower_bound.h>
|
||||
# include <__algorithm/ranges_make_heap.h>
|
||||
# include <__algorithm/ranges_max.h>
|
||||
# include <__algorithm/ranges_max_element.h>
|
||||
# include <__algorithm/ranges_merge.h>
|
||||
# include <__algorithm/ranges_min.h>
|
||||
# include <__algorithm/ranges_min_element.h>
|
||||
# include <__algorithm/ranges_minmax.h>
|
||||
# include <__algorithm/ranges_minmax_element.h>
|
||||
# include <__algorithm/ranges_mismatch.h>
|
||||
# include <__algorithm/ranges_move.h>
|
||||
# include <__algorithm/ranges_move_backward.h>
|
||||
# include <__algorithm/ranges_next_permutation.h>
|
||||
# include <__algorithm/ranges_none_of.h>
|
||||
# include <__algorithm/ranges_nth_element.h>
|
||||
# include <__algorithm/ranges_partial_sort.h>
|
||||
# include <__algorithm/ranges_partial_sort_copy.h>
|
||||
# include <__algorithm/ranges_partition.h>
|
||||
# include <__algorithm/ranges_partition_copy.h>
|
||||
# include <__algorithm/ranges_partition_point.h>
|
||||
# include <__algorithm/ranges_pop_heap.h>
|
||||
# include <__algorithm/ranges_prev_permutation.h>
|
||||
# include <__algorithm/ranges_push_heap.h>
|
||||
# include <__algorithm/ranges_remove.h>
|
||||
# include <__algorithm/ranges_remove_copy.h>
|
||||
# include <__algorithm/ranges_remove_copy_if.h>
|
||||
# include <__algorithm/ranges_remove_if.h>
|
||||
# include <__algorithm/ranges_replace.h>
|
||||
# include <__algorithm/ranges_replace_copy.h>
|
||||
# include <__algorithm/ranges_replace_copy_if.h>
|
||||
# include <__algorithm/ranges_replace_if.h>
|
||||
# include <__algorithm/ranges_reverse.h>
|
||||
# include <__algorithm/ranges_reverse_copy.h>
|
||||
# include <__algorithm/ranges_rotate.h>
|
||||
# include <__algorithm/ranges_rotate_copy.h>
|
||||
# include <__algorithm/ranges_sample.h>
|
||||
# include <__algorithm/ranges_search.h>
|
||||
# include <__algorithm/ranges_search_n.h>
|
||||
# include <__algorithm/ranges_set_difference.h>
|
||||
# include <__algorithm/ranges_set_intersection.h>
|
||||
# include <__algorithm/ranges_set_symmetric_difference.h>
|
||||
# include <__algorithm/ranges_set_union.h>
|
||||
# include <__algorithm/ranges_shuffle.h>
|
||||
# include <__algorithm/ranges_sort.h>
|
||||
# include <__algorithm/ranges_sort_heap.h>
|
||||
# include <__algorithm/ranges_stable_partition.h>
|
||||
# include <__algorithm/ranges_stable_sort.h>
|
||||
# include <__algorithm/ranges_swap_ranges.h>
|
||||
# include <__algorithm/ranges_transform.h>
|
||||
# include <__algorithm/ranges_unique.h>
|
||||
# include <__algorithm/ranges_unique_copy.h>
|
||||
# include <__algorithm/ranges_upper_bound.h>
|
||||
# include <__algorithm/shift_left.h>
|
||||
# include <__algorithm/shift_right.h>
|
||||
#endif
|
||||
|
||||
#if _LIBCPP_STD_VER >= 23
|
||||
# include <__algorithm/fold.h>
|
||||
# include <__algorithm/ranges_contains_subrange.h>
|
||||
# include <__algorithm/ranges_ends_with.h>
|
||||
# include <__algorithm/ranges_find_last.h>
|
||||
# include <__algorithm/ranges_starts_with.h>
|
||||
#endif // _LIBCPP_STD_VER >= 23
|
||||
|
||||
#include <version>
|
||||
|
||||
// standard-mandated includes
|
||||
|
||||
// [algorithm.syn]
|
||||
|
@ -1937,6 +2029,10 @@ template <class BidirectionalIterator, class Compare>
|
|||
# pragma GCC system_header
|
||||
#endif
|
||||
|
||||
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER == 14
|
||||
# include <execution>
|
||||
#endif
|
||||
|
||||
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
|
||||
# include <atomic>
|
||||
# include <bit>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue