[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 12:57:37 PDT 2021


ldionne requested changes to this revision.
ldionne added a comment.
This revision now requires changes to proceed.

> <utility> needs to be broken down first, in order to achieve that.

Why? Can't you split `<functional>` without tackling down `<utility>`?

Note: Generally speaking, I'm very happy to split up headers into smaller headers that make sense (I've been fighting hard for that since the beginning). But I'm struggling to see the structure in this patch. It just looks to me as though random bits are being split into headers, and also I'm not sure about the granularity. In particular, splitting up type traits this way (one trait per header, but not always) does not appear like an improvement to me.

If you're trying to split up `<functional>`, is it possible to do it without touching other headers? If not, let's figure out a way forward. Also, do you really have to touch anything in `<type_traits>` except stuff that would clearly belong elsewhere (like `iter_swap` and `swap_ranges`, which are great examples of libc++'s failure to sanely split things with monolithic headers)?


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