[libc++] Move __libcpp_erase_if_container into <iterator>, and ADL-proof it.
authorArthur O'Dwyer <arthur.j.odwyer@gmail.com>
Sun, 21 Mar 2021 20:53:09 +0000 (16:53 -0400)
committerArthur O'Dwyer <arthur.j.odwyer@gmail.com>
Mon, 22 Mar 2021 15:13:33 +0000 (11:13 -0400)
commit2ac6babcc007ccbe7f18d71cd6188c925cf25813
treebd5a76aebbfadf63cd6b64137c3aaef9990ec9c9
parent772851ca4e509982c333d9724b6f8d4456df42af
[libc++] Move __libcpp_erase_if_container into <iterator>, and ADL-proof it.

The container headers don't need to include <functional> for any other reason
(or at least, they wouldn't if we moved `less` and `equal_to` out of <functional>),
so let's put `__libcpp_erase_if_container` somewhere that's common to the
containers but outside of <functional>.

Also, calling `std::erase_if(c, pred)` should not trigger ADL.

Differential Revision: https://reviews.llvm.org/D99043
libcxx/include/functional
libcxx/include/iterator
libcxx/include/map
libcxx/include/set
libcxx/include/unordered_map
libcxx/include/unordered_set