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
P2363 Extending associative containers with the remaining heterogeneous overloads #1037
Comments
P2363R1 Extending associative containers with the remaining heterogeneous overloads (Konstantin Boyarinov, Sergey Vinogradov, Ruslan Arutyunyan) |
This was reviewed in ML at 2021-09-27, summarizing the main topics: SummaryComment: A concern about turning ill-formed code into runtime exception: std::set<std::shared_ptr<int>, std::owner_less<>> s;
std::weak_ptr<int> w = /* ... */;
s.insert(w); This is currently ill-formed because weak_ptr's conversion to shared_ptr is explicit. Comment: Currently, for heterogeneous lookup, the unique-key associative containers do not require that there is at most one match (https://lists.isocpp.org/lib-ext/2019/05/11645.php) struct HalfIs { int pt; };
struct Cmp {
bool operator()(int x, int y) const noexcept { return x < y; }
bool operator()(int x, HalfIs p) const noexcept { return x / 2 < p.pt;
}
bool operator()(HalfIs p, int x) const noexcept { return p.pt < x / 2; }
using is_transparent = void;
};
std::set<int, Cmp> s{ 1, 2, 3, 4, 5, 6 };
s.find(HalfIs{2}); In this example, HalfIs{2} compares equivalent to both 4 and 5. OutcomePlease provide a new revision for the paper, which will capture the concerns brought up, and the authors' position. |
P2363R2 Extending associative containers with the remaining heterogeneous overloads (Konstantin Boyarinov, Sergey Vinogradov, Ruslan Arutyunyan) |
A Library Evolution motion was made to advance this paper directly to electronic polling on 2022-01-13. The motion passed with 7 +1s. |
2022-01 Library Evolution Electronic Poll OutcomesSend [P2363R3] (Extending Associative Containers With The Remaining Heterogeneous Overloads) to Library Working Group for C++23, classified as an addition ([P0592R4] bucket 3 item).
Consensus in favor |
Changing target to C++26 -- LWG is out of time for 23. |
@joaquintides and I are implementing P2363 for Boost.Unordered and we believe there's a missing constraint in the implementation of transparent unordered_set Under this proposal as-is, The wording should be updated to include extra verbiage, similar to
|
@cmazakas, please don't use this github repo to discuss issues with the design or wording of a paper. This repo is only intended to be used for tracking the status of a paper. Please use the WG21 mailing lists or other public resources or contact the paper authors for further discussion. |
P2363R4 Extending associative containers with the remaining heterogeneous overloads (Konstantin Boyarinov, Sergey Vinogradov, Ruslan Arutyunyan) |
https://wiki.edg.com/bin/view/Wg21issaquah2023/P2363R5-20230209 poll: include P2363R5 in C++26?
|
P2363R5 Extending associative containers with the remaining heterogeneous overloads (Konstantin Boyarinov, Sergey Vinogradov, Ruslan Arutyunyan) |
P2363R0 Extending associative containers with the remaining heterogeneous overloads (Konstantin Boyarinov, Sergey Vinogradov, Ruslan Arutyunyan)
The text was updated successfully, but these errors were encountered: