-
Notifications
You must be signed in to change notification settings - Fork 14.4k
[libc++] P2944R3: Constrained comparisions - tuple
#145677
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
[libc++] P2944R3: Constrained comparisions - tuple
#145677
Conversation
…rapper Implements `variant`: https://wg21.link/P2944R3 Closes llvm#136769
Implements P2944R3 partially, which adds constrained comparisons `std::tuple`. The missing overloads introduced in P2165R4 are not implemented. Relates to llvm#136765 # References [tuple.rel](https://eel.is/c++draft/tuple.rel)
libcxx/test/std/utilities/tuple/tuple.tuple/tuple.rel/size_incompatible_comparison.verify.cpp
Outdated
Show resolved
Hide resolved
Thank you! AFAIK the failed test are unrelated. Merging! |
@@ -59,7 +59,7 @@ | |||
"`P2248R8 <https://wg21.link/P2248R8>`__","Enabling list-initialization for algorithms","2024-03 (Tokyo)","","","" | |||
"`P2810R4 <https://wg21.link/P2810R4>`__","``is_debugger_present`` ``is_replaceable``","2024-03 (Tokyo)","","","" | |||
"`P1068R11 <https://wg21.link/P1068R11>`__","Vector API for random number generation","2024-03 (Tokyo)","","","" | |||
"`P2944R3 <https://wg21.link/P2944R3>`__","Comparisons for ``reference_wrapper``","2024-03 (Tokyo)","|Partial|","","The changes to ``optional`` and ``tuple`` are not yet implemented" | |||
"`P2944R3 <https://wg21.link/P2944R3>`__","Comparisons for ``reference_wrapper``","2024-03 (Tokyo)","|Partial|","","The changes to ``optional`` and ``tuple``'s equality overload from P2165R4 are not yet implemented" |
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.
Doesn't this PR implement the tuple
changes? 🤔
"`P2944R3 <https://wg21.link/P2944R3>`__","Comparisons for ``reference_wrapper``","2024-03 (Tokyo)","|Partial|","","The changes to ``optional`` and ``tuple``'s equality overload from P2165R4 are not yet implemented" | |
"`P2944R3 <https://wg21.link/P2944R3>`__","Comparisons for ``reference_wrapper``","2024-03 (Tokyo)","|Partial|","","The changes to ``optional``'s equality overload from P2165R4 are not yet implemented" |
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.
We are missing an overload which AFAIK is not trivial to add, so it will be done later.
Implements P2944R3 partially, which adds constrained comparisons `std::tuple`. The missing overloads introduced in [P2165R4](https://wg21.link/P2165R4) are not implemented. Uses [`__all`](https://github.com/llvm/llvm-project/blob/f7af33a9eb5b3876f219075023dc9c565d75849b/libcxx/include/__type_traits/conjunction.h#L45) instead of a fold expression, see comment: llvm#141396 (comment) Relates to llvm#136765 # References [tuple.rel](https://wg21.link//tuple.rel)
Implements P2944R3 partially, which adds constrained comparisons
std::tuple
.The missing overloads introduced in P2165R4 are not implemented.
Uses
__all
instead of a fold expression, see comment: #141396 (comment)Relates to #136765
References
tuple.rel