HomePhabricator

[libcxx] moves `std::invoke` into `__functional_base`

Authored by cjdb on Mar 21 2021, 11:48 AM.

Description

[libcxx] moves std::invoke into __functional_base

Including <concepts> in other standard library headers (such as
<iterator>) creates circular dependencies due to <functional>.
Since <concepts> only needs std::invoke from <functional>, the
easiest, fastest, and cleanest way to eliminate the circular dep is to
move std::invoke into __functional_base.

This has the added advantage of <concepts> not transitively importing
<functional>.

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

Details

Committed
cjdbApr 5 2021, 6:25 PM
Differential Revision
D99041: [libcxx] moves `std::invoke` into `__functional_base`
Parents
rGdc8d864e3a91: Address minor post commit feedback on 0e59dd
Branches
Unknown
Tags
Unknown