-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Qualify _Ugly function names in standard algorithms #4004
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
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 |
StephanTLavavej
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.
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_iterand its friends ADL-proof.Unblocked libcxx tests:
std/utilities/memory/allocator.traits/allocator.traits.members/construct.pass.cppstd/utilities/memory/allocator.traits/allocator.traits.members/destroy.pass.cppstd/algorithms/robust_against_adl.compile.pass.cppPersonal decisions:
__stdmeowinternal functions (which are in the global namespace) sometimes need to be qualified. I've chosen::instead of_CSTDbecause_CSTD __stdmeowlooks very weird to me.vector<ptrdiff_t>), its name may be unqualified.Discovered compiler bugs:
WIP stuffs:
boyer_moore_searcherandboyer_moore_horspool_searcherinvolve 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.rangesalgorithms currently rely on structured bindings forpairandsubrangewhich 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::sortcalls.Thanks @miscco for the handling of raw pointers.