[libc++] Granularize <utility> includes

Reviewed By: ldionne, #libc

Spies: EricWF, libcxx-commits, arphaman

Differential Revision: https://reviews.llvm.org/D120466
This commit is contained in:
Nikolas Klauser 2022-03-05 19:17:07 +01:00
parent 14af99d375
commit 52915d78f4
41 changed files with 98 additions and 30 deletions

View File

@ -16,6 +16,7 @@
#include <__iterator/iterator_traits.h>
#include <__iterator/next.h>
#include <__iterator/prev.h>
#include <__utility/move.h>
#include <__utility/swap.h>
#include <iterator>

View File

@ -20,6 +20,7 @@
#include <__format/format_fwd.h>
#include <__format/format_string.h>
#include <__format/parser_std_format_spec.h>
#include <__utility/move.h>
#include <__utility/unreachable.h>
#include <string_view>

View File

@ -22,6 +22,7 @@
#include <__memory/shared_ptr.h>
#include <__utility/forward.h>
#include <__utility/move.h>
#include <__utility/swap.h>
#include <exception>
#include <memory> // TODO: replace with <__memory/__builtin_new_allocator.h>
#include <type_traits>

View File

@ -17,12 +17,14 @@
#include <__config>
#include <__debug>
#include <__functional/hash.h>
#include <__utility/swap.h>
#include <cmath>
#include <initializer_list>
#include <iterator>
#include <memory>
#include <type_traits>
#include <utility>
#include <utility> // TODO: Remove this
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header

View File

@ -18,7 +18,8 @@
#include <memory>
#include <mutex>
#include <string>
#include <utility>
#include <utility> // TODO: Remove this
#if defined(_LIBCPP_MSVCRT_LIKE)
# include <__support/win32/locale_win32.h>

View File

@ -24,6 +24,7 @@
#include <__memory/unique_ptr.h>
#include <__utility/forward.h>
#include <__utility/move.h>
#include <__utility/swap.h>
#include <cstddef>
#include <cstdlib> // abort
#include <iosfwd>

View File

@ -13,6 +13,7 @@
#include <__algorithm/min.h>
#include <__config>
#include <__utility/forward.h>
#include <__utility/swap.h>
#include <iterator>
#include <limits>
#include <memory>

View File

@ -692,9 +692,10 @@ template <class BidirectionalIterator, class Compare>
#include <iterator>
#include <memory>
#include <type_traits>
#include <utility>
#include <version>
#include <utility> // TODO: Remove this
#include <__algorithm/adjacent_find.h>
#include <__algorithm/all_of.h>
#include <__algorithm/any_of.h>

View File

@ -83,6 +83,8 @@ namespace std {
#include <__availability>
#include <__config>
#include <__utility/forward.h>
#include <__utility/in_place.h>
#include <__utility/move.h>
#include <cstdlib>
#include <memory>
#include <type_traits>

View File

@ -115,13 +115,16 @@ template <size_t I, class T, size_t N> const T&& get(const array<T, N>&&) noexce
#include <__assert>
#include <__config>
#include <__tuple>
#include <__utility/integer_sequence.h>
#include <__utility/move.h>
#include <__utility/unreachable.h>
#include <iterator>
#include <stdexcept>
#include <type_traits>
#include <utility>
#include <version>
#include <utility> // TODO: Remove this
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -174,6 +174,8 @@ template <class T, class Allocator, class Predicate>
#include <__iterator/iterator_traits.h>
#include <__split_buffer>
#include <__utility/forward.h>
#include <__utility/move.h>
#include <__utility/swap.h>
#include <compare>
#include <initializer_list>
#include <iterator>

View File

@ -66,6 +66,7 @@ namespace pmr {
#include <__assert>
#include <__tuple>
#include <__utility/move.h>
#include <cstddef>
#include <cstdlib>
#include <experimental/__config>
@ -75,7 +76,8 @@ namespace pmr {
#include <new>
#include <stdexcept>
#include <type_traits>
#include <utility>
#include <utility> // TODO: Remove this
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header

View File

@ -106,10 +106,13 @@
*/
#include <__utility/move.h>
#include <__utility/swap.h>
#include <experimental/__config>
#include <functional>
#include <type_traits>
#include <utility>
#include <utility> // TODO: Remove this
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header

View File

@ -184,9 +184,12 @@ typedef basic_fstream<wchar_t> wfstream;
#include <__availability>
#include <__config>
#include <__locale>
#include <__utility/move.h>
#include <__utility/swap.h>
#include <__utility/unreachable.h>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <istream>
#include <ostream>
#include <version>

View File

@ -525,9 +525,10 @@ POLICY: For non-variadic implementations, the number of arguments is limited
#include <tuple>
#include <type_traits>
#include <typeinfo>
#include <utility>
#include <version>
#include <utility> // TODO: Remove this
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -370,6 +370,7 @@ template <class R, class Alloc> struct uses_allocator<packaged_task<R>, Alloc>;
#include <__memory/uses_allocator.h>
#include <__utility/auto_cast.h>
#include <__utility/forward.h>
#include <__utility/move.h>
#include <exception>
#include <memory>
#include <mutex>

View File

@ -213,6 +213,7 @@ storage-class-specifier const error_category& iostream_category() noexcept;
#include <__config>
#include <__ios/fpos.h>
#include <__locale>
#include <__utility/swap.h>
#include <iosfwd>
#include <system_error>
#include <version>

View File

@ -654,9 +654,10 @@ template <class E> constexpr const E* data(initializer_list<E> il) noexcept;
#include <cstddef>
#include <initializer_list>
#include <type_traits>
#include <utility>
#include <version>
#include <utility> // TODO: Remove this
// TODO: remove these headers
#include <__functional/binary_function.h>
#include <__functional/invoke.h>

View File

@ -188,6 +188,8 @@ template <class T, class Allocator, class Predicate>
#include <__config>
#include <__debug>
#include <__utility/forward.h>
#include <__utility/move.h>
#include <__utility/swap.h>
#include <initializer_list>
#include <iterator>
#include <limits>

View File

@ -537,15 +537,17 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred); // C++20
#include <__node_handle>
#include <__tree>
#include <__utility/forward.h>
#include <__utility/swap.h>
#include <compare>
#include <functional>
#include <initializer_list>
#include <iterator> // __libcpp_erase_if_container
#include <memory>
#include <type_traits>
#include <utility>
#include <version>
#include <utility> // TODO: Remove this
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -833,9 +833,10 @@ void* align(size_t alignment, size_t size, void*& ptr, size_t& space);
#include <tuple>
#include <type_traits>
#include <typeinfo>
#include <utility>
#include <version>
#include <utility> // TODO: Remove this
// TODO: remove these headers
#include <__functional/binary_function.h>
#include <__functional/invoke.h>

View File

@ -162,15 +162,18 @@ template<class T>
#include <__availability>
#include <__concepts/invocable.h>
#include <__config>
#include <__utility/in_place.h>
#include <__utility/swap.h>
#include <compare>
#include <functional>
#include <initializer_list>
#include <new>
#include <stdexcept>
#include <type_traits>
#include <utility>
#include <version>
#include <utility> // TODO: Remove this
// TODO: remove these headers
#include <__memory/allocator_arg_t.h>
#include <__memory/uses_allocator.h>

View File

@ -767,6 +767,8 @@ typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;
#include <__config>
#include <__iterator/wrap_iter.h>
#include <__locale>
#include <__utility/move.h>
#include <__utility/swap.h>
#include <compare>
#include <deque>
#include <initializer_list>
@ -774,10 +776,11 @@ typedef regex_token_iterator<wstring::const_iterator> wsregex_token_iterator;
#include <memory>
#include <stdexcept>
#include <string>
#include <utility>
#include <vector>
#include <version>
#include <utility> // TODO: Remove this
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header
#endif

View File

@ -181,6 +181,7 @@ typedef basic_stringstream<wchar_t> wstringstream;
*/
#include <__config>
#include <__utility/swap.h>
#include <istream>
#include <ostream>
#include <string>

View File

@ -527,6 +527,9 @@ basic_string<char32_t> operator "" s( const char32_t *str, size_t len ); // C++1
#include <__debug>
#include <__ios/fpos.h>
#include <__iterator/wrap_iter.h>
#include <__utility/auto_cast.h>
#include <__utility/move.h>
#include <__utility/swap.h>
#include <compare>
#include <cstdio> // EOF
#include <cstdlib>
@ -538,9 +541,10 @@ basic_string<char32_t> operator "" s( const char32_t *str, size_t len ); // C++1
#include <stdexcept>
#include <string_view>
#include <type_traits>
#include <utility>
#include <version>
#include <utility> // TODO: Remove this
// TODO: remove these headers
#include <__functional/binary_function.h>
#include <__functional/invoke.h>

View File

@ -175,12 +175,16 @@ template <class... Types>
#include <__utility/forward.h>
#include <__utility/integer_sequence.h>
#include <__utility/move.h>
#include <__utility/pair.h>
#include <__utility/piecewise_construct.h>
#include <__utility/swap.h>
#include <compare>
#include <cstddef>
#include <type_traits>
#include <utility>
#include <version>
#include <utility> // TODO: Remove this
// TODO: remove these headers
#include <__functional/binary_function.h>
#include <__functional/invoke.h>

View File

@ -50,6 +50,8 @@ struct hash<type_index>
#include <typeinfo>
#include <version>
#include <utility> // TODO: Remove this
// TODO: remove these headers
#include <__functional/binary_function.h>
#include <__functional/invoke.h>
@ -59,7 +61,6 @@ struct hash<type_index>
#include <__memory/allocator_arg_t.h>
#include <__memory/uses_allocator.h>
#include <new>
#include <utility>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header

View File

@ -206,6 +206,9 @@ namespace std {
#include <__functional/unary_function.h>
#include <__tuple>
#include <__utility/forward.h>
#include <__utility/in_place.h>
#include <__utility/move.h>
#include <__utility/swap.h>
#include <__variant/monostate.h>
#include <compare>
#include <exception>
@ -214,9 +217,10 @@ namespace std {
#include <new>
#include <tuple>
#include <type_traits>
#include <utility>
#include <version>
#include <utility> // TODO: Remove this
// TODO: remove these headers
#include <__functional/binary_function.h>
#include <__functional/invoke.h>

View File

@ -288,6 +288,8 @@ erase_if(vector<T, Allocator>& c, Predicate pred); // C++20
#include <__iterator/wrap_iter.h>
#include <__split_buffer>
#include <__utility/forward.h>
#include <__utility/move.h>
#include <__utility/swap.h>
#include <climits>
#include <compare>
#include <cstdlib>
@ -300,6 +302,8 @@ erase_if(vector<T, Allocator>& c, Predicate pred); // C++20
#include <type_traits>
#include <version>
#include <utility> // TODO: Remove this
// TODO: remove these headers
#include <__functional/binary_function.h>
#include <__functional/invoke.h>
@ -308,7 +312,6 @@ erase_if(vector<T, Allocator>& c, Predicate pred); // C++20
#include <__functional/unary_function.h>
#include <__functional/weak_result_type.h>
#include <typeinfo>
#include <utility>
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
# pragma GCC system_header

View File

@ -12,9 +12,10 @@
// Test the libc++-specific behavior that we handle the IFNDR case for ranges::end
// by being SFINAE-friendly.
#include <ranges>
#include <cassert>
#include <ranges>
#include <type_traits>
#include <utility>
struct Incomplete;

View File

@ -13,9 +13,10 @@
// template<class R>
// drop_view(R&&, range_difference_t<R>) -> drop_view<views::all_t<R>>;
#include <ranges>
#include <cassert>
#include <concepts>
#include <ranges>
#include <utility>
struct View : std::ranges::view_base {
int *begin() const;

View File

@ -14,6 +14,7 @@
// explicit join_view(R&&) -> join_view<views::all_t<R>>;
#include <ranges>
#include <utility>
struct Child {
int *begin() const;

View File

@ -13,9 +13,10 @@
// template<class R>
// take_view(R&&, range_difference_t<R>) -> take_view<views::all_t<R>>;
#include <ranges>
#include <cassert>
#include <concepts>
#include <ranges>
#include <utility>
struct View : std::ranges::view_base {
int *begin() const;

View File

@ -13,9 +13,10 @@
// template<class R, class F>
// transform_view(R&&, F) -> transform_view<views::all_t<R>, F>;
#include <ranges>
#include <cassert>
#include <concepts>
#include <ranges>
#include <utility>
struct PlusOne {
int operator()(int x) const;

View File

@ -12,8 +12,9 @@
// constexpr iterator begin() const;
#include <ranges>
#include <cassert>
#include <ranges>
#include <utility>
#include "test_macros.h"
#include "types.h"

View File

@ -21,8 +21,9 @@
// constexpr auto end() const;
// constexpr iterator end() const requires same_as<W, Bound>;
#include <ranges>
#include <cassert>
#include <ranges>
#include <utility>
#include "types.h"

View File

@ -13,8 +13,9 @@
// Tests that <value_> is a <copyable-box>.
#include <ranges>
#include <cassert>
#include <ranges>
#include <utility>
#include "test_macros.h"

View File

@ -14,8 +14,9 @@
// requires constructible_from<T, Args...>
// constexpr explicit single_view(in_place_t, Args&&... args);
#include <ranges>
#include <cassert>
#include <ranges>
#include <utility>
#include "test_macros.h"

View File

@ -13,8 +13,9 @@
// constexpr explicit single_view(const T& t);
// constexpr explicit single_view(T&& t);
#include <ranges>
#include <cassert>
#include <ranges>
#include <utility>
#include "test_macros.h"

View File

@ -12,9 +12,10 @@
// class std::ranges::subrange;
#include <ranges>
#include <cassert>
#include <ranges>
#include <utility>
#include "test_macros.h"
constexpr void test_sized_subrange()

View File

@ -12,10 +12,11 @@
// template <class U>
// optional(optional<U>&& rhs);
#include <cassert>
#include <memory>
#include <optional>
#include <type_traits>
#include <memory>
#include <cassert>
#include <utility>
#include "test_macros.h"