[libcxx-commits] [PATCH] D127953: [libc++] Mark standard-mandated includes as such
Mark de Wever via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Jun 26 02:27:21 PDT 2022
Mordante added a comment.
In D127953#3610485 <https://reviews.llvm.org/D127953#3610485>, @JamesNagurne wrote:
> In D127953#3610109 <https://reviews.llvm.org/D127953#3610109>, @Mordante wrote:
>
>>
>
> I'm not precisely sure what you mean by 'which tool', but here's a reproduction using a cut-down reproduction of the standard test using clang trunk with libc++
>
> https://godbolt.org/z/jYs7Pz8qj
The example you provided is rightly rejected. You use `std::pair`, which is provided by `<utility>`. The standard doesn't require `<array>` to include `<utility>`. The example also fails without using `std::tuple_size`:
https://godbolt.org/z/Excc13Gs6
Using the required header instead works:
https://godbolt.org/z/7xYb645Ys
Alternatively if you intended to get the `std::tuple_size` of `std::array` that works when only using `<array>`:
https://godbolt.org/z/ror9n16vG
> Note that the proposal, adds the following clause to tuple.helper
>
> I can see why the standards body received this request. Since array, pair, etc. also have tuple_size specializations, it's very similar in reasoning to including iterator helpers for STL containers that support iterators.
I'm not saying the LWG issue isn't valid. I've glossed over it and it seems sensible.
I just explained what the normal libc++ procedure is.
> As an aside, I apologize for being vague about the actual suite. I'm not entirely sure what our license says about providing that information to external parties.
I can understand that. But not being able to provide that information makes it harder for me to understand what the real issue is.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D127953/new/
https://reviews.llvm.org/D127953
More information about the libcxx-commits
mailing list