-
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
Qualify _Ugly function names in standard algorithms #4004
Qualify _Ugly function names in standard algorithms #4004
Conversation
Co-authored-by: Michael Schellenberger Costa <[email protected]>
Thanks! I've reduced this example and added it to DevCom-10456450. |
This comment was marked as resolved.
This comment was marked as resolved.
# Conflicts: # stl/inc/xutility
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
As I mentioned on Discord, the sheer magnitude of this PR makes it difficult to review. Could you refactor it either into separate PRs, or well-structured fine-grained commits (force-pushing is OK if you choose the latter)? I think I could review pure |
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.
There are real test failures after the merge. Additionally, please see my comment above - how can this PR be made more reviewable? Thanks!
Oh, I think I should close this PR and create new, smaller PRs. Although I'm a bit unwilling to close this before creating the first new PR... |
Closing as new PR created. |
Fixes #1596. Fixes #3842. Speculatively implements LWG-3969 to make
fold_left_first_with_iter
and its friends ADL-proof.Unblocked libcxx tests:
std/utilities/memory/allocator.traits/allocator.traits.members/construct.pass.cpp
std/utilities/memory/allocator.traits/allocator.traits.members/destroy.pass.cpp
std/algorithms/robust_against_adl.compile.pass.cpp
Personal decisions:
__std
meow
internal functions (which are in the global namespace) sometimes need to be qualified. I've chosen::
instead of_CSTD
because_CSTD __std
meow
looks very weird to me.vector<ptrdiff_t>
), its name may be unqualified.Discovered compiler bugs:
WIP stuffs:
boyer_moore_searcher
andboyer_moore_horspool_searcher
involve comparison of container iterators. I don't know how to fix them now._Hash_table_iterator_provider<Args>::_Iterator
(proof of concept example), which needs to break ABI.ranges
algorithms currently rely on structured bindings forpair
andsubrange
which depend on ADL-foundget
. I'm not sure whether we should invent new return types (likeranges::
meow
_result
) or just give up structured bindings.Investigate the bug of MSVC triggered byIt was not a bug, just my fault that missed qualification.ranges::sort
calls.Thanks @miscco for the handling of raw pointers.