-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
<tuple>
: Becomes a core header
#2730
Conversation
Oh... I've realized that this PR may violate the direction I proposed in LWG-3690. Perhaps |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks really good to me, personally, and I really like <tuple>
becoming a core header; however, I don't personally understand the whole core distinction yet, and what that might cause, so I'd prefer a more experienced person on the team reviews this as well.
We talked about this at the weekly maintainer meeting and we think that the benefits of making |
I have verified that, with the exception of the new declarations, this PR is only moving code around and not changing it. There's an observable header inclusion impact - previously,
|
I'm mirroring this to the MSVC-internal repo - please notify me if any further changes are pushed. |
Thanks for this usability improvement! 🎉 😸 🚀 |
May be related to #1405.
I've found that
<tuple>
is nearly a core header in MSVC STL now, except that it requiresallocator_arg
anduses_allocator
. IIUC neitherallocator_arg
noruses_allocator
needs any non-core mechanism, so I'm moving them from<xutility>
to<utility>
, and making<tuple>
a core header.In order to keep
apply
andmake_from_tuple
working withsubrange
, I decided to separate the needed parts of<xutility>
into a new internal header<__msvc_iter_core.hpp>
.The intent is providing forward declaration of
subrange
and theget
overloads, while avoiding separate the forward declaration ofiterator_traits
and its definition into different headers.Internal-only changes seem required as in #2518.