[libcxx-commits] [PATCH] D99044: [libc++] Split out `<__functional_{ops, search}>` from `<functional>`

Arthur O'Dwyer via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Sun Mar 21 14:35:53 PDT 2021


Quuxplusone created this revision.
Quuxplusone added reviewers: ldionne, cjdb, libc++.
Quuxplusone added a project: libc++.
Herald added subscribers: lxfind, miyuki, mgorny.
Quuxplusone requested review of this revision.
Herald added a subscriber: libcxx-commits.
Herald added 1 blocking reviewer(s): libc++.

This comes out of my comments on D99041 <https://reviews.llvm.org/D99041>. The general strategy is:

- Change <concepts> to use `__invoke` instead of `invoke`, so it can include `<__functional_base>` instead of `<functional>`
- Split out `__search` into <__functional_search>, so `<algorithm>` can include `<__functional_search>` instead of `<functional>`
- Split out the lifted operators into `<__functional_ops>`, so many headers (notably `<valarray>`, `<numeric>`, and `<set>`) can include `<__functional_ops>` instead of `<functional>`

I claim that if this (notably the `<concepts>` change) has any noticeable effect on correctness, then either buildbot should catch it, or else we need some new regression tests.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D99044

Files:
  libcxx/include/CMakeLists.txt
  libcxx/include/__functional_base
  libcxx/include/__functional_ops
  libcxx/include/__functional_search
  libcxx/include/algorithm
  libcxx/include/concepts
  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/functional
  libcxx/include/iterator
  libcxx/include/map
  libcxx/include/memory
  libcxx/include/module.modulemap
  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
  libcxx/include/variant

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D99044.332179.patch
Type: text/x-patch
Size: 55181 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210321/36114c0c/attachment-0001.bin>


More information about the libcxx-commits mailing list