[libcxx-commits] [PATCH] D99041: [libcxx] moves `std::invoke` into `__functional_base`

Arthur O'Dwyer via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Sun Mar 21 13:44:38 PDT 2021


Quuxplusone added a comment.

FWIW, I am willing to be one of the +1s on this patch; but I also think it doesn't go far enough, and have indeed been nerdsniped into making my own version. 😛 My version so far is trying to

- change `<concepts>` to use `__invoke` instead of `invoke`, so it can include `<__functional_base>` instead of `<functional>` (although this patch's solution also seems fine)
- 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>`
- move `__libcpp_erase_if_container` somewhere else (maybe `<iterator>`) and ADL-proof its callers (this will likely be severable)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D99041/new/

https://reviews.llvm.org/D99041



More information about the libcxx-commits mailing list