- Moves all of [alg.nonmodifying] into <__algorithm/${ALGO_NAME}.h>.
- Moves __search from <functional> into <__functional/__search.h> so we can stop including <functional> in <algorithm>.
Depends on D103329.
Paths
| Differential D103330
[libcxx][nfc] splices non-modifying algorithms into their own headers AbandonedPublic Authored by cjdb on May 28 2021, 10:59 AM.
Details
Diff Detail
Unit TestsFailed Event TimelineComment Actions LGTM, but can you please keep including <functional> in <algorithm> for now? Add a comment saying // TODO: Remove this include when we're sure it won't break people. You can then perform the removal immediately after, but in a separate commit. The reason is that I suspect it's going to break a lot of code (which does not include-what-they-use), and so having a separate commit just to toggle that include is going to be helpful for vendors. For example, I might have to temporarily revert that commit for shipping it on Apple platforms until some internal stuff has been fixed - I suspect other vendors will be in the same boat. This revision is now accepted and ready to land.May 31 2021, 8:09 AM Comment Actions As usual, I'll leave my for-the-record comment that I really don't like this direction. It makes tons of little headers for no benefit... and I smell the upcoming PR where you add a bunch of C++20 Ranges dependencies into all of these little headers, making compilation slower for C++17 programs and complexifying the dependency graph. Notice the failing Modules test; that's being discussed in the comments on D102781.
Revision Contents
Diff 349416 libcxx/include/CMakeLists.txt
libcxx/include/__algorithm/adjacent_find.h
libcxx/include/__algorithm/algorithm_functional.h
libcxx/include/__algorithm/all_of.h
libcxx/include/__algorithm/any_of.h
libcxx/include/__algorithm/count.h
libcxx/include/__algorithm/count_if.h
libcxx/include/__algorithm/equal.h
libcxx/include/__algorithm/find.h
libcxx/include/__algorithm/find_end.h
libcxx/include/__algorithm/find_first_of.h
libcxx/include/__algorithm/find_if.h
libcxx/include/__algorithm/find_if_not.h
libcxx/include/__algorithm/for_each.h
libcxx/include/__algorithm/for_each_n.h
libcxx/include/__algorithm/is_permutation.h
libcxx/include/__algorithm/mismatch.h
libcxx/include/__algorithm/none_of.h
libcxx/include/__algorithm/search.h
libcxx/include/__algorithm/search_n.h
libcxx/include/__functional/__search.h
libcxx/include/algorithm
libcxx/include/experimental/functional
libcxx/include/functional
libcxx/include/module.modulemap
libcxx/include/regex
libcxx/test/std/containers/sequences/array/compare.fail.cpp
|