diff --git a/libcxx/include/__bit_reference b/libcxx/include/__bit_reference --- a/libcxx/include/__bit_reference +++ b/libcxx/include/__bit_reference @@ -10,9 +10,13 @@ #ifndef _LIBCPP___BIT_REFERENCE #define _LIBCPP___BIT_REFERENCE +#include <__algorithm/min.h> +#include <__iterator/iterator_traits.h> +#include <__memory/pointer_traits.h> #include <__config> #include <__bits> -#include +#include +#include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) #pragma GCC system_header diff --git a/libcxx/include/__hash_table b/libcxx/include/__hash_table --- a/libcxx/include/__hash_table +++ b/libcxx/include/__hash_table @@ -10,6 +10,8 @@ #ifndef _LIBCPP__HASH_TABLE #define _LIBCPP__HASH_TABLE +#include <__algorithm/min.h> +#include <__algorithm/max.h> #include <__bits> // __libcpp_clz #include <__config> #include <__debug> @@ -17,7 +19,6 @@ #include <__utility/move.h> #include <__utility/pair.h> #include <__utility/swap.h> -#include #include #include #include diff --git a/libcxx/include/__split_buffer b/libcxx/include/__split_buffer --- a/libcxx/include/__split_buffer +++ b/libcxx/include/__split_buffer @@ -2,11 +2,17 @@ #ifndef _LIBCPP_SPLIT_BUFFER #define _LIBCPP_SPLIT_BUFFER +#include <__algorithm/max.h> +#include <__algorithm/move.h> +#include <__algorithm/move_backward.h> #include <__config> +#include <__memory/allocator_traits.h> +#include <__memory/compressed_pair.h> #include <__utility/move.h> #include <__utility/forward.h> #include <__utility/swap.h> -#include +#include // distance +#include // __swap_allocator #include #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) diff --git a/libcxx/include/__tree b/libcxx/include/__tree --- a/libcxx/include/__tree +++ b/libcxx/include/__tree @@ -10,12 +10,12 @@ #ifndef _LIBCPP___TREE #define _LIBCPP___TREE +#include <__algorithm/min.h> #include <__config> #include <__utility/forward.h> #include <__utility/move.h> #include <__utility/pair.h> #include <__utility/swap.h> -#include #include #include #include diff --git a/libcxx/include/array b/libcxx/include/array --- a/libcxx/include/array +++ b/libcxx/include/array @@ -108,12 +108,15 @@ */ +#include <__algorithm/equal.h> +#include <__algorithm/fill_n.h> +#include <__algorithm/lexicographical_compare.h> +#include <__algorithm/swap_ranges.h> #include <__config> #include <__debug> #include <__tuple> #include <__utility/integer_sequence.h> #include <__utility/move.h> -#include #include // for _LIBCPP_UNREACHABLE #include #include diff --git a/libcxx/include/bitset b/libcxx/include/bitset --- a/libcxx/include/bitset +++ b/libcxx/include/bitset @@ -114,6 +114,7 @@ #include <__config> #include <__bit_reference> +#include <__functional/unary_function.h> #include #include #include diff --git a/libcxx/include/deque b/libcxx/include/deque --- a/libcxx/include/deque +++ b/libcxx/include/deque @@ -160,13 +160,20 @@ */ +#include <__algorithm/copy.h> +#include <__algorithm/copy_backward.h> +#include <__algorithm/equal.h> +#include <__algorithm/fill_n.h> +#include <__algorithm/lexicographical_compare.h> +#include <__algorithm/min.h> +#include <__algorithm/remove.h> +#include <__algorithm/remove_if.h> #include <__config> #include <__debug> #include <__split_buffer> #include <__utility/forward.h> #include <__utility/move.h> #include <__utility/swap.h> -#include #include #include #include diff --git a/libcxx/include/ext/hash_map b/libcxx/include/ext/hash_map --- a/libcxx/include/ext/hash_map +++ b/libcxx/include/ext/hash_map @@ -201,6 +201,7 @@ */ +#include <__algorithm/is_permutation.h> #include <__config> #include <__functional/equal_to.h> #include <__hash_table> diff --git a/libcxx/include/ext/hash_set b/libcxx/include/ext/hash_set --- a/libcxx/include/ext/hash_set +++ b/libcxx/include/ext/hash_set @@ -192,6 +192,7 @@ */ +#include <__algorithm/is_permutation.h> #include <__config> #include <__functional/equal_to.h> #include <__hash_table> diff --git a/libcxx/include/forward_list b/libcxx/include/forward_list --- a/libcxx/include/forward_list +++ b/libcxx/include/forward_list @@ -179,11 +179,13 @@ */ +#include <__algorithm/comp.h> +#include <__algorithm/lexicographical_compare.h> +#include <__algorithm/min.h> #include <__config> #include <__utility/forward.h> #include <__utility/move.h> #include <__utility/swap.h> -#include #include #include #include diff --git a/libcxx/include/list b/libcxx/include/list --- a/libcxx/include/list +++ b/libcxx/include/list @@ -180,12 +180,15 @@ */ +#include <__algorithm/equal.h> +#include <__algorithm/comp.h> +#include <__algorithm/lexicographical_compare.h> +#include <__algorithm/min.h> #include <__config> #include <__debug> #include <__utility/forward.h> #include <__utility/move.h> #include <__utility/swap.h> -#include #include #include #include diff --git a/libcxx/include/locale b/libcxx/include/locale --- a/libcxx/include/locale +++ b/libcxx/include/locale @@ -187,11 +187,13 @@ */ +#include <__algorithm/equal.h> +#include <__algorithm/find.h> +#include <__algorithm/reverse.h> #include <__config> #include <__debug> #include <__locale> #include <__utility/move.h> -#include #ifndef __APPLE__ # include #endif @@ -488,7 +490,7 @@ } return 0; } - ptrdiff_t __f = find(__atoms, __atoms + 26, __ct) - __atoms; + ptrdiff_t __f = _VSTD::find(__atoms, __atoms + 26, __ct) - __atoms; if (__f >= 24) return -1; switch (__base) @@ -541,7 +543,7 @@ } return 0; } - ptrdiff_t __f = find(__atoms, __atoms + 32, __ct) - __atoms; + ptrdiff_t __f = _VSTD::find(__atoms, __atoms + 32, __ct) - __atoms; if (__f >= 32) return -1; char __x = __src[__f]; @@ -1163,7 +1165,7 @@ *__oe++ = __ct.widen(*__nf++); *__oe++ = __ct.widen(*__nf++); } - reverse(__nf, __ne); + _VSTD::reverse(__nf, __ne); _CharT __thousands_sep = __npt.thousands_sep(); unsigned __dc = 0; unsigned __dg = 0; @@ -1180,7 +1182,7 @@ *__oe++ = __ct.widen(*__p); ++__dc; } - reverse(__ob + (__nf - __nb), __oe); + _VSTD::reverse(__ob + (__nf - __nb), __oe); } if (__np == __ne) __op = __oe; @@ -1224,7 +1226,7 @@ } else { - reverse(__nf, __ns); + _VSTD::reverse(__nf, __ns); _CharT __thousands_sep = __npt.thousands_sep(); unsigned __dc = 0; unsigned __dg = 0; @@ -1240,7 +1242,7 @@ *__oe++ = __ct.widen(*__p); ++__dc; } - reverse(__ob + (__nf - __nb), __oe); + _VSTD::reverse(__ob + (__nf - __nb), __oe); } for (__nf = __ns; __nf < __ne; ++__nf) { @@ -3000,8 +3002,8 @@ ++__sym_space_end; const size_t __num_spaces = __sym_space_end - __sym.begin(); if (__num_spaces > __spaces.size() || - !equal(__spaces.end() - __num_spaces, __spaces.end(), - __sym.begin())) { + !_VSTD::equal(__spaces.end() - __num_spaces, __spaces.end(), + __sym.begin())) { // No match. Put __sym_space_end back at the // beginning of __sym, which will prevent a // match in the next loop. @@ -3137,7 +3139,7 @@ if (__neg) *__nc++ = '-'; for (const char_type* __w = __wb.get(); __w < __wn; ++__w, ++__nc) - *__nc = __src[find(__atoms, _VSTD::end(__atoms), *__w) - __atoms]; + *__nc = __src[_VSTD::find(__atoms, _VSTD::end(__atoms), *__w) - __atoms]; *__nc = char(); if (sscanf(__nbuf, "%Lf", &__v) != 1) __throw_runtime_error("money_get error"); @@ -3340,7 +3342,7 @@ } } // reverse it - reverse(__t, __me); + _VSTD::reverse(__t, __me); } break; } @@ -4298,7 +4300,7 @@ { if (this->gptr() != this->egptr()) { - reverse(this->gptr(), this->egptr()); + _VSTD::reverse(this->gptr(), this->egptr()); codecvt_base::result __r; const char_type* __e = this->gptr(); char* __extbe; diff --git a/libcxx/include/map b/libcxx/include/map --- a/libcxx/include/map +++ b/libcxx/include/map @@ -489,6 +489,8 @@ */ +#include <__algorithm/equal.h> +#include <__algorithm/lexicographical_compare.h> #include <__config> #include <__debug> #include <__functional/__is_transparent.h> diff --git a/libcxx/include/module.modulemap b/libcxx/include/module.modulemap --- a/libcxx/include/module.modulemap +++ b/libcxx/include/module.modulemap @@ -226,8 +226,14 @@ module clamp { header "__algorithm/clamp.h" } module comp { header "__algorithm/comp.h" } module comp_ref_type { header "__algorithm/comp_ref_type.h" } - module copy { header "__algorithm/copy.h" } - module copy_backward { header "__algorithm/copy_backward.h" } + module copy { + header "__algorithm/copy.h" + export unwrap_iter + } + module copy_backward { + header "__algorithm/copy_backward.h" + export unwrap_iter + } module copy_if { header "__algorithm/copy_if.h" } module copy_n { header "__algorithm/copy_n.h" } module count { header "__algorithm/count.h" } @@ -265,8 +271,14 @@ module minmax { header "__algorithm/minmax.h" } module minmax_element { header "__algorithm/minmax_element.h" } module mismatch { header "__algorithm/mismatch.h" } - module move { header "__algorithm/move.h" } - module move_backward { header "__algorithm/move_backward.h" } + module move { + header "__algorithm/move.h" + export unwrap_iter + } + module move_backward { + header "__algorithm/move_backward.h" + export unwrap_iter + } module next_permutation { header "__algorithm/next_permutation.h" } module none_of { header "__algorithm/none_of.h" } module nth_element { header "__algorithm/nth_element.h" } diff --git a/libcxx/include/queue b/libcxx/include/queue --- a/libcxx/include/queue +++ b/libcxx/include/queue @@ -178,6 +178,9 @@ */ +#include <__algorithm/make_heap.h> +#include <__algorithm/pop_heap.h> +#include <__algorithm/push_heap.h> #include <__config> #include <__functional/binary_function.h> #include <__functional/less.h> @@ -185,7 +188,6 @@ #include <__utility/forward.h> #include <__utility/move.h> #include <__utility/swap.h> -#include #include #include #include diff --git a/libcxx/include/random b/libcxx/include/random --- a/libcxx/include/random +++ b/libcxx/include/random @@ -1677,11 +1677,13 @@ } // std */ +#include <__algorithm/equal.h> +#include <__algorithm/fill.h> +#include <__algorithm/upper_bound.h> #include <__config> #include <__random/uniform_int_distribution.h> #include <__utility/move.h> #include <__utility/swap.h> -#include #include #include #include diff --git a/libcxx/include/regex b/libcxx/include/regex --- a/libcxx/include/regex +++ b/libcxx/include/regex @@ -762,6 +762,9 @@ } // std */ +#include <__algorithm/move.h> +#include <__algorithm/find.h> +#include <__algorithm/search.h> #include <__config> #include <__debug> #include <__functional/search.h> diff --git a/libcxx/include/set b/libcxx/include/set --- a/libcxx/include/set +++ b/libcxx/include/set @@ -433,6 +433,8 @@ */ +#include <__algorithm/equal.h> +#include <__algorithm/lexicographical_compare.h> #include <__config> #include <__debug> #include <__functional/__is_transparent.h> diff --git a/libcxx/include/string b/libcxx/include/string --- a/libcxx/include/string +++ b/libcxx/include/string @@ -513,10 +513,13 @@ */ +#include <__algorithm/min.h> +#include <__algorithm/max.h> +#include <__algorithm/remove.h> +#include <__algorithm/remove_if.h> #include <__config> #include <__debug> #include <__utility/move.h> -#include #include #include // EOF #include diff --git a/libcxx/include/string_view b/libcxx/include/string_view --- a/libcxx/include/string_view +++ b/libcxx/include/string_view @@ -184,12 +184,12 @@ */ +#include <__algorithm/min.h> #include <__config> #include <__debug> #include <__ranges/enable_borrowed_range.h> #include <__ranges/enable_view.h> #include <__string> -#include #include #include #include diff --git a/libcxx/include/unordered_map b/libcxx/include/unordered_map --- a/libcxx/include/unordered_map +++ b/libcxx/include/unordered_map @@ -431,6 +431,7 @@ */ +#include <__algorithm/is_permutation.h> #include <__config> #include <__debug> #include <__functional/__is_transparent.h> diff --git a/libcxx/include/unordered_set b/libcxx/include/unordered_set --- a/libcxx/include/unordered_set +++ b/libcxx/include/unordered_set @@ -386,6 +386,7 @@ */ +#include <__algorithm/is_permutation.h> #include <__config> #include <__debug> #include <__functional/__is_transparent.h> diff --git a/libcxx/include/valarray b/libcxx/include/valarray --- a/libcxx/include/valarray +++ b/libcxx/include/valarray @@ -339,6 +339,13 @@ */ +#include <__algorithm/copy.h> +#include <__algorithm/count.h> +#include <__algorithm/fill.h> +#include <__algorithm/fill_n.h> +#include <__algorithm/max_element.h> +#include <__algorithm/min.h> +#include <__algorithm/min_element.h> #include <__config> #include <__functional/bit_and.h> #include <__functional/bit_or.h> @@ -358,7 +365,10 @@ #include <__functional/negate.h> #include <__functional/not_equal_to.h> #include <__functional/plus.h> -#include +#include <__memory/allocator.h> +#include <__memory/uninitialized_algorithms.h> +#include <__utility/move.h> +#include <__utility/swap.h> #include #include #include @@ -1539,21 +1549,21 @@ gslice(size_t __start, const valarray& __size, valarray&& __stride) : __size_(__size), - __stride_(move(__stride)) + __stride_(_VSTD::move(__stride)) {__init(__start);} _LIBCPP_INLINE_VISIBILITY gslice(size_t __start, valarray&& __size, const valarray& __stride) - : __size_(move(__size)), + : __size_(_VSTD::move(__size)), __stride_(__stride) {__init(__start);} _LIBCPP_INLINE_VISIBILITY gslice(size_t __start, valarray&& __size, valarray&& __stride) - : __size_(move(__size)), - __stride_(move(__stride)) + : __size_(_VSTD::move(__size)), + __stride_(_VSTD::move(__stride)) {__init(__start);} #endif // _LIBCPP_CXX03_LANG @@ -1704,7 +1714,7 @@ #ifndef _LIBCPP_CXX03_LANG gslice_array(gslice&& __gs, const valarray& __v) : __vp_(const_cast(__v.__begin_)), - __1d_(move(__gs.__1d_)) + __1d_(_VSTD::move(__gs.__1d_)) {} #endif // _LIBCPP_CXX03_LANG @@ -2398,7 +2408,7 @@ _LIBCPP_INLINE_VISIBILITY indirect_array(valarray&& __ia, const valarray& __v) : __vp_(const_cast(__v.__begin_)), - __1d_(move(__ia)) + __1d_(_VSTD::move(__ia)) {} #endif // _LIBCPP_CXX03_LANG @@ -2617,7 +2627,7 @@ _LIBCPP_INLINE_VISIBILITY __indirect_expr(valarray&& __ia, const _RmExpr& __e) : __expr_(__e), - __1d_(move(__ia)) + __1d_(_VSTD::move(__ia)) {} #endif // _LIBCPP_CXX03_LANG @@ -3212,7 +3222,7 @@ __val_expr<__indirect_expr&> > valarray<_Tp>::operator[](gslice&& __gs) const { - return __val_expr<__indirect_expr >(__indirect_expr(move(__gs.__1d_), *this)); + return __val_expr<__indirect_expr >(__indirect_expr(_VSTD::move(__gs.__1d_), *this)); } template @@ -3220,7 +3230,7 @@ gslice_array<_Tp> valarray<_Tp>::operator[](gslice&& __gs) { - return gslice_array(move(__gs), *this); + return gslice_array(_VSTD::move(__gs), *this); } #endif // _LIBCPP_CXX03_LANG @@ -3248,7 +3258,7 @@ __val_expr<__mask_expr&> > valarray<_Tp>::operator[](valarray&& __vb) const { - return __val_expr<__mask_expr >(__mask_expr(move(__vb), *this)); + return __val_expr<__mask_expr >(__mask_expr(_VSTD::move(__vb), *this)); } template @@ -3256,7 +3266,7 @@ mask_array<_Tp> valarray<_Tp>::operator[](valarray&& __vb) { - return mask_array(move(__vb), *this); + return mask_array(_VSTD::move(__vb), *this); } #endif // _LIBCPP_CXX03_LANG @@ -3284,7 +3294,7 @@ __val_expr<__indirect_expr&> > valarray<_Tp>::operator[](valarray&& __vs) const { - return __val_expr<__indirect_expr >(__indirect_expr(move(__vs), *this)); + return __val_expr<__indirect_expr >(__indirect_expr(_VSTD::move(__vs), *this)); } template @@ -3292,7 +3302,7 @@ indirect_array<_Tp> valarray<_Tp>::operator[](valarray&& __vs) { - return indirect_array(move(__vs), *this); + return indirect_array(_VSTD::move(__vs), *this); } #endif // _LIBCPP_CXX03_LANG diff --git a/libcxx/include/variant b/libcxx/include/variant --- a/libcxx/include/variant +++ b/libcxx/include/variant @@ -204,6 +204,7 @@ #include <__functional/equal_to.h> #include <__functional/greater.h> #include <__functional/greater_equal.h> +#include <__functional/hash.h> #include <__functional/less.h> #include <__functional/less_equal.h> #include <__functional/not_equal_to.h> diff --git a/libcxx/include/vector b/libcxx/include/vector --- a/libcxx/include/vector +++ b/libcxx/include/vector @@ -271,13 +271,20 @@ */ +#include <__algorithm/copy.h> +#include <__algorithm/copy_backward.h> +#include <__algorithm/equal.h> +#include <__algorithm/fill_n.h> +#include <__algorithm/lexicographical_compare.h> +#include <__algorithm/remove.h> +#include <__algorithm/remove_if.h> +#include <__algorithm/rotate.h> #include <__config> #include <__bit_reference> #include <__debug> #include <__split_buffer> #include <__utility/forward.h> #include <__utility/move.h> -#include #include #include #include diff --git a/libcxx/test/std/containers/sequences/array/array.data/data.pass.cpp b/libcxx/test/std/containers/sequences/array/array.data/data.pass.cpp --- a/libcxx/test/std/containers/sequences/array/array.data/data.pass.cpp +++ b/libcxx/test/std/containers/sequences/array/array.data/data.pass.cpp @@ -13,6 +13,7 @@ #include #include #include // for std::max_align_t +#include // for std::uintptr_t #include "test_macros.h" diff --git a/libcxx/test/std/containers/sequences/array/array.data/data_const.pass.cpp b/libcxx/test/std/containers/sequences/array/array.data/data_const.pass.cpp --- a/libcxx/test/std/containers/sequences/array/array.data/data_const.pass.cpp +++ b/libcxx/test/std/containers/sequences/array/array.data/data_const.pass.cpp @@ -13,6 +13,7 @@ #include #include #include // for std::max_align_t +#include // for std::uintptr_t #include "test_macros.h" diff --git a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/deduct.pass.cpp b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/deduct.pass.cpp --- a/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/deduct.pass.cpp +++ b/libcxx/test/std/containers/sequences/forwardlist/forwardlist.cons/deduct.pass.cpp @@ -22,6 +22,7 @@ #include #include #include // INT_MAX +#include // equal #include "test_macros.h" #include "test_iterators.h" diff --git a/libcxx/test/std/containers/sequences/list/list.ops/sort.pass.cpp b/libcxx/test/std/containers/sequences/list/list.ops/sort.pass.cpp --- a/libcxx/test/std/containers/sequences/list/list.ops/sort.pass.cpp +++ b/libcxx/test/std/containers/sequences/list/list.ops/sort.pass.cpp @@ -11,9 +11,10 @@ // void sort(); #include +#include +#include #include #include -#include #include "test_macros.h" #include "min_allocator.h"