[committed] libstdc++: Shuffle header dependencies of <functional>
Commit Message
Tested x86_64-linux, Pushed to trunk.
-- >8 --
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>.
---
libstdc++-v3/include/bits/std_function.h | 10 +++++-----
libstdc++-v3/include/std/functional | 7 +++----
2 files changed, 8 insertions(+), 9 deletions(-)
@@ -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)
{
@@ -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