[libcxx-commits] [PATCH] D103734: [libcxx] moves <utility> content out of <type_traits> and into their own headers

Louis Dionne via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Jun 8 13:46:21 PDT 2021


ldionne added a comment.

Recording offline discussion with Chris about how to move this forward:

1. Use `static_cast<T&&>` instead of `std::forward` in `<type_traits>` (this should only impact the implementation of `__invoke`)
2. Forward declare `std::swap` in `<type_traits>` just to implement the `is_XXX_swappable_with` traits

Now, `<type_traits>` should not depend on `<utility>` anymore (to validate). So then:

3. Move things that should be in `<utility>` but that are defined in `<type_traits>` out of `<type_traits>`

This should allow us to not move anything that belongs into `<type_traits>` (according to the standard) outside of `<type_traits>`.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D103734



More information about the libcxx-commits mailing list