[all-commits] [llvm/llvm-project] c25c22: [libcxx] moves `std::invoke` into `__functional_base`

Christopher Di Bella via All-commits all-commits at lists.llvm.org
Mon Apr 5 18:46:00 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: c25c22d5f9b7e56c0c350982b5ec41095c5a0a05
      https://github.com/llvm/llvm-project/commit/c25c22d5f9b7e56c0c350982b5ec41095c5a0a05
  Author: Christopher Di Bella <cjdb at google.com>
  Date:   2021-04-06 (Tue, 06 Apr 2021)

  Changed paths:
    M libcxx/include/__functional_base
    M libcxx/include/concepts
    M libcxx/include/functional

  Log Message:
  -----------
  [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




More information about the All-commits mailing list