libstdc++: Shuffle header dependencies of <functional>

The <new> header is needed by std::function to use placement new, so
include it in <bits/std_function.h> instead of in <functional>.

libstdc++-v3/ChangeLog:

	* include/bits/std_function.h: Include <new> but do not include
	<bits/stl_function.h>.
	* include/std/functional: Do not include <new>.
This commit is contained in:
Jonathan Wakely 2022-10-06 14:34:49 +01:00
parent df78e15233
commit 93b3ab6c0c
2 changed files with 8 additions and 9 deletions

View file

@ -36,11 +36,11 @@
# include <bits/c++0x_warning.h>
#else
#include <typeinfo>
#include <bits/stl_function.h>
#include <bits/invoke.h>
#include <bits/refwrap.h>
#include <bits/functexcept.h>
#include <new> // placement new
#include <typeinfo> // typeid
#include <bits/invoke.h> // __invoke_r
#include <bits/refwrap.h> // ref wrapper, _Maybe_unary_or_binary_function
#include <bits/functexcept.h> // __throw_bad_function_call
namespace std _GLIBCXX_VISIBILITY(default)
{

View file

@ -46,11 +46,10 @@
#pragma GCC system_header
#include <bits/c++config.h>
#include <bits/stl_function.h>
#include <bits/stl_function.h> // std::equal_to, std::unary_function etc.
#if __cplusplus >= 201103L
#include <new>
#include <tuple>
#include <type_traits>
#include <bits/functional_hash.h>
@ -67,8 +66,8 @@
# endif
# include <bits/stl_algo.h> // std::search
#endif
#if __cplusplus > 201703L
# include <bits/ranges_cmp.h>
#if __cplusplus >= 202002L
# include <bits/ranges_cmp.h> // std::identity, ranges::equal_to etc.
# include <compare>
#endif
#if __cplusplus > 202002L && _GLIBCXX_HOSTED