-
Notifications
You must be signed in to change notification settings - Fork 1.6k
<tuple>: Becomes a core header
#2730
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
Conversation
|
Oh... I've realized that this PR may violate the direction I proposed in LWG-3690. Perhaps |
strega-nil-ms
left a comment
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_arganduses_allocator. IIUC neitherallocator_argnoruses_allocatorneeds any non-core mechanism, so I'm moving them from<xutility>to<utility>, and making<tuple>a core header.In order to keep
applyandmake_from_tupleworking 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
subrangeand thegetoverloads, while avoiding separate the forward declaration ofiterator_traitsand its definition into different headers.Internal-only changes seem required as in #2518.