[libcxx-commits] [libcxx] a83f4b9 - [libc++] Remove <functional> includes

Nikolas Klauser via libcxx-commits libcxx-commits at lists.llvm.org
Mon Apr 25 23:54:43 PDT 2022


Author: Nikolas Klauser
Date: 2022-04-26T08:54:37+02:00
New Revision: a83f4b9cda57c5b3d414ec3bcf9ac891b2ec27e1

URL: https://github.com/llvm/llvm-project/commit/a83f4b9cda57c5b3d414ec3bcf9ac891b2ec27e1
DIFF: https://github.com/llvm/llvm-project/commit/a83f4b9cda57c5b3d414ec3bcf9ac891b2ec27e1.diff

LOG: [libc++] Remove <functional> includes

Reviewed By: var-const, #libc, ldionne

Spies: #libc_vendors, ldionne, libcxx-commits, miyuki

Differential Revision: https://reviews.llvm.org/D124123

Added: 
    

Modified: 
    libcxx/docs/ReleaseNotes.rst
    libcxx/include/algorithm
    libcxx/include/experimental/coroutine
    libcxx/include/experimental/propagate_const
    libcxx/include/experimental/simd
    libcxx/include/ext/hash_map
    libcxx/include/ext/hash_set
    libcxx/include/map
    libcxx/include/mutex
    libcxx/include/numeric
    libcxx/include/optional
    libcxx/include/queue
    libcxx/include/set
    libcxx/include/thread
    libcxx/include/unordered_map
    libcxx/include/unordered_set
    libcxx/include/valarray

Removed: 
    


################################################################################
diff  --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst
index 0445b7bcfb9ab..79ec4f5f65f3d 100644
--- a/libcxx/docs/ReleaseNotes.rst
+++ b/libcxx/docs/ReleaseNotes.rst
@@ -67,10 +67,15 @@ API Changes
   ``<filesystem>`` header. The associated macro
   ``_LIBCPP_DEPRECATED_EXPERIMENTAL_FILESYSTEM`` has also been removed.
 
-- Some libc++ headers no longer transitively include all of ``<algorithm>``, ``<chrono>`` and ``<utility>``.
-  If, after updating libc++, you see compiler errors related to missing declarations in
-  namespace ``std``, it might be because one of your source files now needs to
-  ``#include <algorithm>``, ``#include <chrono>`` and/or ``#include <utility>``.
+- Some libc++ headers no longer transitively include all of:
+    - ``<algorithm>``
+    - ``<chrono>``
+    - ``<functional>``
+    - ``<utility>``
+
+  If, after updating libc++, you see compiler errors related to missing declarations
+  in namespace ``std``, it might be because one of your source files now needs to
+  include one or more of the headers listed above.
 
 - The integer distributions ``binomial_distribution``, ``discrete_distribution``,
   ``geometric_distribution``, ``negative_binomial_distribution``, ``poisson_distribution``,

diff  --git a/libcxx/include/algorithm b/libcxx/include/algorithm
index ff2a54ef33827..2c1474ed45d72 100644
--- a/libcxx/include/algorithm
+++ b/libcxx/include/algorithm
@@ -881,7 +881,6 @@ template <class BidirectionalIterator, class Compare>
 #include <__debug>
 #include <cstddef>
 #include <cstring>
-#include <functional> // TODO: Remove this include
 #include <initializer_list>
 #include <iterator>
 #include <memory>

diff  --git a/libcxx/include/experimental/coroutine b/libcxx/include/experimental/coroutine
index 50c7fcf613d85..9fc9d19276fdd 100644
--- a/libcxx/include/experimental/coroutine
+++ b/libcxx/include/experimental/coroutine
@@ -49,7 +49,6 @@ template <class P> struct hash<coroutine_handle<P>>;
 #include <__functional/hash.h>
 #include <cstddef>
 #include <experimental/__config>
-#include <functional> // TODO: Remove this include
 #include <memory> // for hash<T*>
 #include <new>
 #include <type_traits>

diff  --git a/libcxx/include/experimental/propagate_const b/libcxx/include/experimental/propagate_const
index 2ed17c7613012..432635668e4e7 100644
--- a/libcxx/include/experimental/propagate_const
+++ b/libcxx/include/experimental/propagate_const
@@ -113,7 +113,6 @@
 #include <__utility/move.h>
 #include <__utility/swap.h>
 #include <experimental/__config>
-#include <functional> // TODO: Remove this include
 #include <type_traits>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/experimental/simd b/libcxx/include/experimental/simd
index cf255b8a37f8c..02a7a490a160c 100644
--- a/libcxx/include/experimental/simd
+++ b/libcxx/include/experimental/simd
@@ -654,7 +654,6 @@ public:
 #include <array>
 #include <cstddef>
 #include <experimental/__config>
-#include <functional> // TODO: Remove this include
 #include <tuple>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)

diff  --git a/libcxx/include/ext/hash_map b/libcxx/include/ext/hash_map
index 79198784a8ec4..ccc82ca8e3364 100644
--- a/libcxx/include/ext/hash_map
+++ b/libcxx/include/ext/hash_map
@@ -206,7 +206,6 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
 #include <__hash_table>
 #include <algorithm>
 #include <ext/__hash>
-#include <functional> // TODO: Remove this include
 #include <stdexcept>
 #include <type_traits>
 

diff  --git a/libcxx/include/ext/hash_set b/libcxx/include/ext/hash_set
index 76631daddddcb..a4aff6ece60ed 100644
--- a/libcxx/include/ext/hash_set
+++ b/libcxx/include/ext/hash_set
@@ -197,7 +197,6 @@ template <class Value, class Hash, class Pred, class Alloc>
 #include <__hash_table>
 #include <algorithm>
 #include <ext/__hash>
-#include <functional> // TODO: Remove this include
 
 #if defined(__DEPRECATED) && __DEPRECATED
 #if defined(_LIBCPP_WARNING)

diff  --git a/libcxx/include/map b/libcxx/include/map
index 346fa89a19f18..c6c8e8c09c4f3 100644
--- a/libcxx/include/map
+++ b/libcxx/include/map
@@ -539,7 +539,6 @@ erase_if(multimap<Key, T, Compare, Allocator>& c, Predicate pred);  // C++20
 #include <__utility/forward.h>
 #include <__utility/swap.h>
 #include <compare>
-#include <functional> // TODO: Remove this include
 #include <initializer_list>
 #include <iterator> // __libcpp_erase_if_container
 #include <memory>

diff  --git a/libcxx/include/mutex b/libcxx/include/mutex
index 7368887b43211..ded33514f79db 100644
--- a/libcxx/include/mutex
+++ b/libcxx/include/mutex
@@ -192,7 +192,6 @@ template<class Callable, class ...Args>
 #include <__threading_support>
 #include <__utility/forward.h>
 #include <cstdint>
-#include <functional> // TODO: Remove this include
 #include <memory>
 #ifndef _LIBCPP_CXX03_LANG
 # include <tuple>

diff  --git a/libcxx/include/numeric b/libcxx/include/numeric
index d9265da429d6c..0a5843f108380 100644
--- a/libcxx/include/numeric
+++ b/libcxx/include/numeric
@@ -147,7 +147,6 @@ template<class T>
 #include <__assert> // all public C++ headers provide the assertion handler
 #include <__config>
 #include <cmath> // for isnormal
-#include <functional> // TODO: Remove this include
 #include <iterator>
 #include <version>
 

diff  --git a/libcxx/include/optional b/libcxx/include/optional
index 48a1a5f94fecb..3b716e2e5c118 100644
--- a/libcxx/include/optional
+++ b/libcxx/include/optional
@@ -172,7 +172,6 @@ template<class T>
 #include <__utility/move.h>
 #include <__utility/swap.h>
 #include <compare>
-#include <functional> // TODO: Remove this include
 #include <initializer_list>
 #include <new>
 #include <stdexcept>

diff  --git a/libcxx/include/queue b/libcxx/include/queue
index 4074460e8e2d9..bd3a39f49436b 100644
--- a/libcxx/include/queue
+++ b/libcxx/include/queue
@@ -227,7 +227,6 @@ template <class T, class Container, class Compare>
 #include <__utility/forward.h>
 #include <compare>
 #include <deque>
-#include <functional> // TODO: Remove this include
 #include <type_traits>
 #include <vector>
 #include <version>

diff  --git a/libcxx/include/set b/libcxx/include/set
index baad39616ae33..6aeddc862b147 100644
--- a/libcxx/include/set
+++ b/libcxx/include/set
@@ -481,7 +481,6 @@ erase_if(multiset<Key, Compare, Allocator>& c, Predicate pred);  // C++20
 #include <__tree>
 #include <__utility/forward.h>
 #include <compare>
-#include <functional> // TODO: Remove this include
 #include <initializer_list>
 #include <iterator> // __libcpp_erase_if_container
 #include <version>

diff  --git a/libcxx/include/thread b/libcxx/include/thread
index 55e6fba8e68ff..837ee4a9972e7 100644
--- a/libcxx/include/thread
+++ b/libcxx/include/thread
@@ -90,7 +90,6 @@ void sleep_for(const chrono::duration<Rep, Period>& rel_time);
 #include <__threading_support>
 #include <__utility/forward.h>
 #include <cstddef>
-#include <functional> // TODO: Remove this include
 #include <iosfwd>
 #include <memory>
 #include <system_error>

diff  --git a/libcxx/include/unordered_map b/libcxx/include/unordered_map
index 9b58995687704..a31c2c6ddea0d 100644
--- a/libcxx/include/unordered_map
+++ b/libcxx/include/unordered_map
@@ -525,7 +525,6 @@ template <class Key, class T, class Hash, class Pred, class Alloc>
 #include <__node_handle>
 #include <__utility/forward.h>
 #include <compare>
-#include <functional> // TODO: Remove this include
 #include <iterator> // __libcpp_erase_if_container
 #include <stdexcept>
 #include <tuple>

diff  --git a/libcxx/include/unordered_set b/libcxx/include/unordered_set
index c3955bad0a29f..f23de20456859 100644
--- a/libcxx/include/unordered_set
+++ b/libcxx/include/unordered_set
@@ -469,7 +469,6 @@ template <class Value, class Hash, class Pred, class Alloc>
 #include <__node_handle>
 #include <__utility/forward.h>
 #include <compare>
-#include <functional> // TODO: Remove this include
 #include <iterator> // __libcpp_erase_if_container
 #include <version>
 

diff  --git a/libcxx/include/valarray b/libcxx/include/valarray
index fc044f48d2a39..05ba8cba37848 100644
--- a/libcxx/include/valarray
+++ b/libcxx/include/valarray
@@ -357,7 +357,6 @@ template <class T> unspecified2 end(const valarray<T>& v);
 #include <__utility/swap.h>
 #include <cmath>
 #include <cstddef>
-#include <functional> // TODO: Remove this include
 #include <initializer_list>
 #include <new>
 #include <version>


        


More information about the libcxx-commits mailing list