[libc++] Granularize <functional> includes
Reviewed By: Mordante, #libc
Spies: libcxx-commits, miyuki
Differential Revision: https://reviews.llvm.org/D123912
NOKEYCHECK=True
GitOrigin-RevId: faef447e72a5c63dfb12bb7b02d44c3c916d31cd
diff --git a/include/valarray b/include/valarray
index d79b0b2..fc044f4 100644
--- a/include/valarray
+++ b/include/valarray
@@ -350,9 +350,14 @@
#include <__algorithm/unwrap_iter.h>
#include <__assert> // all public C++ headers provide the assertion handler
#include <__config>
+#include <__functional/operations.h>
+#include <__memory/allocator.h>
+#include <__memory/uninitialized_algorithms.h>
+#include <__utility/move.h>
+#include <__utility/swap.h>
#include <cmath>
#include <cstddef>
-#include <functional>
+#include <functional> // TODO: Remove this include
#include <initializer_list>
#include <new>
#include <version>