diff --git a/libcxx/include/__functional/boyer_moore_searcher.h b/libcxx/include/__functional/boyer_moore_searcher.h index 7889232f4b919..88c6577f04dee 100644 --- a/libcxx/include/__functional/boyer_moore_searcher.h +++ b/libcxx/include/__functional/boyer_moore_searcher.h @@ -17,12 +17,10 @@ #include <__config> #include <__functional/hash.h> #include <__functional/operations.h> -#include <__iterator/distance.h> #include <__iterator/iterator_traits.h> #include <__memory/shared_ptr.h> #include <__type_traits/make_unsigned.h> #include <__utility/pair.h> -#include <__vector/vector.h> #include #include #include @@ -196,7 +194,7 @@ class boyer_moore_searcher { if (__count == 0) return; - vector __scratch(__count); + auto __scratch = std::make_unique(__count); __compute_bm_prefix(__first, __last, __pred, __scratch); for (size_t __i = 0; __i <= __count; ++__i) diff --git a/libcxx/include/functional b/libcxx/include/functional index b121a19d6bcb3..c72d0931e4b92 100644 --- a/libcxx/include/functional +++ b/libcxx/include/functional @@ -599,6 +599,10 @@ POLICY: For non-variadic implementations, the number of arguments is limited # include # include # endif + +# if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER == 23 +# include <__vector/vector.h> +# endif #endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) #endif // _LIBCPP_FUNCTIONAL