@@ -1794,15 +1794,11 @@ template <class BidirectionalIterator, class Compare>
1794
1794
*/
1795
1795
1796
1796
#include < __config>
1797
- #include < version>
1798
1797
1799
1798
#include < __algorithm/adjacent_find.h>
1800
1799
#include < __algorithm/all_of.h>
1801
1800
#include < __algorithm/any_of.h>
1802
1801
#include < __algorithm/binary_search.h>
1803
- #include < __algorithm/clamp.h>
1804
- #include < __algorithm/comp.h>
1805
- #include < __algorithm/comp_ref_type.h>
1806
1802
#include < __algorithm/copy.h>
1807
1803
#include < __algorithm/copy_backward.h>
1808
1804
#include < __algorithm/copy_if.h>
@@ -1818,18 +1814,9 @@ template <class BidirectionalIterator, class Compare>
1818
1814
#include < __algorithm/find_first_of.h>
1819
1815
#include < __algorithm/find_if.h>
1820
1816
#include < __algorithm/find_if_not.h>
1821
- #include < __algorithm/fold.h>
1822
1817
#include < __algorithm/for_each.h>
1823
- #include < __algorithm/for_each_n.h>
1824
1818
#include < __algorithm/generate.h>
1825
1819
#include < __algorithm/generate_n.h>
1826
- #include < __algorithm/half_positive.h>
1827
- #include < __algorithm/in_found_result.h>
1828
- #include < __algorithm/in_fun_result.h>
1829
- #include < __algorithm/in_in_out_result.h>
1830
- #include < __algorithm/in_in_result.h>
1831
- #include < __algorithm/in_out_out_result.h>
1832
- #include < __algorithm/in_out_result.h>
1833
1820
#include < __algorithm/includes.h>
1834
1821
#include < __algorithm/inplace_merge.h>
1835
1822
#include < __algorithm/is_heap.h>
@@ -1840,15 +1827,13 @@ template <class BidirectionalIterator, class Compare>
1840
1827
#include < __algorithm/is_sorted_until.h>
1841
1828
#include < __algorithm/iter_swap.h>
1842
1829
#include < __algorithm/lexicographical_compare.h>
1843
- #include < __algorithm/lexicographical_compare_three_way.h>
1844
1830
#include < __algorithm/lower_bound.h>
1845
1831
#include < __algorithm/make_heap.h>
1846
1832
#include < __algorithm/max.h>
1847
1833
#include < __algorithm/max_element.h>
1848
1834
#include < __algorithm/merge.h>
1849
1835
#include < __algorithm/min.h>
1850
1836
#include < __algorithm/min_element.h>
1851
- #include < __algorithm/min_max_result.h>
1852
1837
#include < __algorithm/minmax.h>
1853
1838
#include < __algorithm/minmax_element.h>
1854
1839
#include < __algorithm/mismatch.h>
@@ -1864,112 +1849,7 @@ template <class BidirectionalIterator, class Compare>
1864
1849
#include < __algorithm/partition_point.h>
1865
1850
#include < __algorithm/pop_heap.h>
1866
1851
#include < __algorithm/prev_permutation.h>
1867
- #include < __algorithm/pstl_any_all_none_of.h>
1868
- #include < __algorithm/pstl_copy.h>
1869
- #include < __algorithm/pstl_count.h>
1870
- #include < __algorithm/pstl_equal.h>
1871
- #include < __algorithm/pstl_fill.h>
1872
- #include < __algorithm/pstl_find.h>
1873
- #include < __algorithm/pstl_for_each.h>
1874
- #include < __algorithm/pstl_generate.h>
1875
- #include < __algorithm/pstl_is_partitioned.h>
1876
- #include < __algorithm/pstl_merge.h>
1877
- #include < __algorithm/pstl_move.h>
1878
- #include < __algorithm/pstl_replace.h>
1879
- #include < __algorithm/pstl_rotate_copy.h>
1880
- #include < __algorithm/pstl_sort.h>
1881
- #include < __algorithm/pstl_stable_sort.h>
1882
- #include < __algorithm/pstl_transform.h>
1883
1852
#include < __algorithm/push_heap.h>
1884
- #include < __algorithm/ranges_adjacent_find.h>
1885
- #include < __algorithm/ranges_all_of.h>
1886
- #include < __algorithm/ranges_any_of.h>
1887
- #include < __algorithm/ranges_binary_search.h>
1888
- #include < __algorithm/ranges_clamp.h>
1889
- #include < __algorithm/ranges_contains.h>
1890
- #include < __algorithm/ranges_contains_subrange.h>
1891
- #include < __algorithm/ranges_copy.h>
1892
- #include < __algorithm/ranges_copy_backward.h>
1893
- #include < __algorithm/ranges_copy_if.h>
1894
- #include < __algorithm/ranges_copy_n.h>
1895
- #include < __algorithm/ranges_count.h>
1896
- #include < __algorithm/ranges_count_if.h>
1897
- #include < __algorithm/ranges_ends_with.h>
1898
- #include < __algorithm/ranges_equal.h>
1899
- #include < __algorithm/ranges_equal_range.h>
1900
- #include < __algorithm/ranges_fill.h>
1901
- #include < __algorithm/ranges_fill_n.h>
1902
- #include < __algorithm/ranges_find.h>
1903
- #include < __algorithm/ranges_find_end.h>
1904
- #include < __algorithm/ranges_find_first_of.h>
1905
- #include < __algorithm/ranges_find_if.h>
1906
- #include < __algorithm/ranges_find_if_not.h>
1907
- #include < __algorithm/ranges_for_each.h>
1908
- #include < __algorithm/ranges_for_each_n.h>
1909
- #include < __algorithm/ranges_generate.h>
1910
- #include < __algorithm/ranges_generate_n.h>
1911
- #include < __algorithm/ranges_includes.h>
1912
- #include < __algorithm/ranges_inplace_merge.h>
1913
- #include < __algorithm/ranges_is_heap.h>
1914
- #include < __algorithm/ranges_is_heap_until.h>
1915
- #include < __algorithm/ranges_is_partitioned.h>
1916
- #include < __algorithm/ranges_is_permutation.h>
1917
- #include < __algorithm/ranges_is_sorted.h>
1918
- #include < __algorithm/ranges_is_sorted_until.h>
1919
- #include < __algorithm/ranges_lexicographical_compare.h>
1920
- #include < __algorithm/ranges_lower_bound.h>
1921
- #include < __algorithm/ranges_make_heap.h>
1922
- #include < __algorithm/ranges_max.h>
1923
- #include < __algorithm/ranges_max_element.h>
1924
- #include < __algorithm/ranges_merge.h>
1925
- #include < __algorithm/ranges_min.h>
1926
- #include < __algorithm/ranges_min_element.h>
1927
- #include < __algorithm/ranges_minmax.h>
1928
- #include < __algorithm/ranges_minmax_element.h>
1929
- #include < __algorithm/ranges_mismatch.h>
1930
- #include < __algorithm/ranges_move.h>
1931
- #include < __algorithm/ranges_move_backward.h>
1932
- #include < __algorithm/ranges_next_permutation.h>
1933
- #include < __algorithm/ranges_none_of.h>
1934
- #include < __algorithm/ranges_nth_element.h>
1935
- #include < __algorithm/ranges_partial_sort.h>
1936
- #include < __algorithm/ranges_partial_sort_copy.h>
1937
- #include < __algorithm/ranges_partition.h>
1938
- #include < __algorithm/ranges_partition_copy.h>
1939
- #include < __algorithm/ranges_partition_point.h>
1940
- #include < __algorithm/ranges_pop_heap.h>
1941
- #include < __algorithm/ranges_prev_permutation.h>
1942
- #include < __algorithm/ranges_push_heap.h>
1943
- #include < __algorithm/ranges_remove.h>
1944
- #include < __algorithm/ranges_remove_copy.h>
1945
- #include < __algorithm/ranges_remove_copy_if.h>
1946
- #include < __algorithm/ranges_remove_if.h>
1947
- #include < __algorithm/ranges_replace.h>
1948
- #include < __algorithm/ranges_replace_copy.h>
1949
- #include < __algorithm/ranges_replace_copy_if.h>
1950
- #include < __algorithm/ranges_replace_if.h>
1951
- #include < __algorithm/ranges_reverse.h>
1952
- #include < __algorithm/ranges_reverse_copy.h>
1953
- #include < __algorithm/ranges_rotate.h>
1954
- #include < __algorithm/ranges_rotate_copy.h>
1955
- #include < __algorithm/ranges_sample.h>
1956
- #include < __algorithm/ranges_search.h>
1957
- #include < __algorithm/ranges_search_n.h>
1958
- #include < __algorithm/ranges_set_difference.h>
1959
- #include < __algorithm/ranges_set_intersection.h>
1960
- #include < __algorithm/ranges_set_symmetric_difference.h>
1961
- #include < __algorithm/ranges_set_union.h>
1962
- #include < __algorithm/ranges_shuffle.h>
1963
- #include < __algorithm/ranges_sort.h>
1964
- #include < __algorithm/ranges_sort_heap.h>
1965
- #include < __algorithm/ranges_stable_partition.h>
1966
- #include < __algorithm/ranges_stable_sort.h>
1967
- #include < __algorithm/ranges_starts_with.h>
1968
- #include < __algorithm/ranges_swap_ranges.h>
1969
- #include < __algorithm/ranges_transform.h>
1970
- #include < __algorithm/ranges_unique.h>
1971
- #include < __algorithm/ranges_unique_copy.h>
1972
- #include < __algorithm/ranges_upper_bound.h>
1973
1853
#include < __algorithm/remove.h>
1974
1854
#include < __algorithm/remove_copy.h>
1975
1855
#include < __algorithm/remove_copy_if.h>
@@ -1982,17 +1862,13 @@ template <class BidirectionalIterator, class Compare>
1982
1862
#include < __algorithm/reverse_copy.h>
1983
1863
#include < __algorithm/rotate.h>
1984
1864
#include < __algorithm/rotate_copy.h>
1985
- #include < __algorithm/sample.h>
1986
1865
#include < __algorithm/search.h>
1987
1866
#include < __algorithm/search_n.h>
1988
1867
#include < __algorithm/set_difference.h>
1989
1868
#include < __algorithm/set_intersection.h>
1990
1869
#include < __algorithm/set_symmetric_difference.h>
1991
1870
#include < __algorithm/set_union.h>
1992
- #include < __algorithm/shift_left.h>
1993
- #include < __algorithm/shift_right.h>
1994
1871
#include < __algorithm/shuffle.h>
1995
- #include < __algorithm/sift_down.h>
1996
1872
#include < __algorithm/sort.h>
1997
1873
#include < __algorithm/sort_heap.h>
1998
1874
#include < __algorithm/stable_partition.h>
@@ -2001,9 +1877,138 @@ template <class BidirectionalIterator, class Compare>
2001
1877
#include < __algorithm/transform.h>
2002
1878
#include < __algorithm/unique.h>
2003
1879
#include < __algorithm/unique_copy.h>
2004
- #include < __algorithm/unwrap_iter.h>
2005
1880
#include < __algorithm/upper_bound.h>
2006
1881
1882
+ #if _LIBCPP_STD_VER >= 17
1883
+ # include < __algorithm/clamp.h>
1884
+ # include < __algorithm/for_each_n.h>
1885
+ # include < __algorithm/pstl_any_all_none_of.h>
1886
+ # include < __algorithm/pstl_copy.h>
1887
+ # include < __algorithm/pstl_count.h>
1888
+ # include < __algorithm/pstl_equal.h>
1889
+ # include < __algorithm/pstl_fill.h>
1890
+ # include < __algorithm/pstl_find.h>
1891
+ # include < __algorithm/pstl_for_each.h>
1892
+ # include < __algorithm/pstl_generate.h>
1893
+ # include < __algorithm/pstl_is_partitioned.h>
1894
+ # include < __algorithm/pstl_merge.h>
1895
+ # include < __algorithm/pstl_move.h>
1896
+ # include < __algorithm/pstl_replace.h>
1897
+ # include < __algorithm/pstl_rotate_copy.h>
1898
+ # include < __algorithm/pstl_sort.h>
1899
+ # include < __algorithm/pstl_stable_sort.h>
1900
+ # include < __algorithm/pstl_transform.h>
1901
+ # include < __algorithm/sample.h>
1902
+ #endif // _LIBCPP_STD_VER >= 17
1903
+
1904
+ #if _LIBCPP_STD_VER >= 20
1905
+ # include < __algorithm/in_found_result.h>
1906
+ # include < __algorithm/in_fun_result.h>
1907
+ # include < __algorithm/in_in_out_result.h>
1908
+ # include < __algorithm/in_in_result.h>
1909
+ # include < __algorithm/in_out_out_result.h>
1910
+ # include < __algorithm/in_out_result.h>
1911
+ # include < __algorithm/lexicographical_compare_three_way.h>
1912
+ # include < __algorithm/min_max_result.h>
1913
+ # include < __algorithm/ranges_adjacent_find.h>
1914
+ # include < __algorithm/ranges_all_of.h>
1915
+ # include < __algorithm/ranges_any_of.h>
1916
+ # include < __algorithm/ranges_binary_search.h>
1917
+ # include < __algorithm/ranges_clamp.h>
1918
+ # include < __algorithm/ranges_contains.h>
1919
+ # include < __algorithm/ranges_copy.h>
1920
+ # include < __algorithm/ranges_copy_backward.h>
1921
+ # include < __algorithm/ranges_copy_if.h>
1922
+ # include < __algorithm/ranges_copy_n.h>
1923
+ # include < __algorithm/ranges_count.h>
1924
+ # include < __algorithm/ranges_count_if.h>
1925
+ # include < __algorithm/ranges_equal.h>
1926
+ # include < __algorithm/ranges_equal_range.h>
1927
+ # include < __algorithm/ranges_fill.h>
1928
+ # include < __algorithm/ranges_fill_n.h>
1929
+ # include < __algorithm/ranges_find.h>
1930
+ # include < __algorithm/ranges_find_end.h>
1931
+ # include < __algorithm/ranges_find_first_of.h>
1932
+ # include < __algorithm/ranges_find_if.h>
1933
+ # include < __algorithm/ranges_find_if_not.h>
1934
+ # include < __algorithm/ranges_for_each.h>
1935
+ # include < __algorithm/ranges_for_each_n.h>
1936
+ # include < __algorithm/ranges_generate.h>
1937
+ # include < __algorithm/ranges_generate_n.h>
1938
+ # include < __algorithm/ranges_includes.h>
1939
+ # include < __algorithm/ranges_inplace_merge.h>
1940
+ # include < __algorithm/ranges_is_heap.h>
1941
+ # include < __algorithm/ranges_is_heap_until.h>
1942
+ # include < __algorithm/ranges_is_partitioned.h>
1943
+ # include < __algorithm/ranges_is_permutation.h>
1944
+ # include < __algorithm/ranges_is_sorted.h>
1945
+ # include < __algorithm/ranges_is_sorted_until.h>
1946
+ # include < __algorithm/ranges_lexicographical_compare.h>
1947
+ # include < __algorithm/ranges_lower_bound.h>
1948
+ # include < __algorithm/ranges_make_heap.h>
1949
+ # include < __algorithm/ranges_max.h>
1950
+ # include < __algorithm/ranges_max_element.h>
1951
+ # include < __algorithm/ranges_merge.h>
1952
+ # include < __algorithm/ranges_min.h>
1953
+ # include < __algorithm/ranges_min_element.h>
1954
+ # include < __algorithm/ranges_minmax.h>
1955
+ # include < __algorithm/ranges_minmax_element.h>
1956
+ # include < __algorithm/ranges_mismatch.h>
1957
+ # include < __algorithm/ranges_move.h>
1958
+ # include < __algorithm/ranges_move_backward.h>
1959
+ # include < __algorithm/ranges_next_permutation.h>
1960
+ # include < __algorithm/ranges_none_of.h>
1961
+ # include < __algorithm/ranges_nth_element.h>
1962
+ # include < __algorithm/ranges_partial_sort.h>
1963
+ # include < __algorithm/ranges_partial_sort_copy.h>
1964
+ # include < __algorithm/ranges_partition.h>
1965
+ # include < __algorithm/ranges_partition_copy.h>
1966
+ # include < __algorithm/ranges_partition_point.h>
1967
+ # include < __algorithm/ranges_pop_heap.h>
1968
+ # include < __algorithm/ranges_prev_permutation.h>
1969
+ # include < __algorithm/ranges_push_heap.h>
1970
+ # include < __algorithm/ranges_remove.h>
1971
+ # include < __algorithm/ranges_remove_copy.h>
1972
+ # include < __algorithm/ranges_remove_copy_if.h>
1973
+ # include < __algorithm/ranges_remove_if.h>
1974
+ # include < __algorithm/ranges_replace.h>
1975
+ # include < __algorithm/ranges_replace_copy.h>
1976
+ # include < __algorithm/ranges_replace_copy_if.h>
1977
+ # include < __algorithm/ranges_replace_if.h>
1978
+ # include < __algorithm/ranges_reverse.h>
1979
+ # include < __algorithm/ranges_reverse_copy.h>
1980
+ # include < __algorithm/ranges_rotate.h>
1981
+ # include < __algorithm/ranges_rotate_copy.h>
1982
+ # include < __algorithm/ranges_sample.h>
1983
+ # include < __algorithm/ranges_search.h>
1984
+ # include < __algorithm/ranges_search_n.h>
1985
+ # include < __algorithm/ranges_set_difference.h>
1986
+ # include < __algorithm/ranges_set_intersection.h>
1987
+ # include < __algorithm/ranges_set_symmetric_difference.h>
1988
+ # include < __algorithm/ranges_set_union.h>
1989
+ # include < __algorithm/ranges_shuffle.h>
1990
+ # include < __algorithm/ranges_sort.h>
1991
+ # include < __algorithm/ranges_sort_heap.h>
1992
+ # include < __algorithm/ranges_stable_partition.h>
1993
+ # include < __algorithm/ranges_stable_sort.h>
1994
+ # include < __algorithm/ranges_swap_ranges.h>
1995
+ # include < __algorithm/ranges_transform.h>
1996
+ # include < __algorithm/ranges_unique.h>
1997
+ # include < __algorithm/ranges_unique_copy.h>
1998
+ # include < __algorithm/ranges_upper_bound.h>
1999
+ # include < __algorithm/shift_left.h>
2000
+ # include < __algorithm/shift_right.h>
2001
+ #endif
2002
+
2003
+ #if _LIBCPP_STD_VER >= 23
2004
+ # include < __algorithm/fold.h>
2005
+ # include < __algorithm/ranges_contains_subrange.h>
2006
+ # include < __algorithm/ranges_ends_with.h>
2007
+ # include < __algorithm/ranges_starts_with.h>
2008
+ #endif // _LIBCPP_STD_VER >= 23
2009
+
2010
+ #include < version>
2011
+
2007
2012
// standard-mandated includes
2008
2013
2009
2014
// [algorithm.syn]
@@ -2013,6 +2018,10 @@ template <class BidirectionalIterator, class Compare>
2013
2018
# pragma GCC system_header
2014
2019
#endif
2015
2020
2021
+ #if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER == 14
2022
+ # include < execution>
2023
+ #endif
2024
+
2016
2025
#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20
2017
2026
# include < atomic>
2018
2027
# include < bit>
0 commit comments