![]() Implement the changes in all language modes. LWG3506 "Missing allocator-extended constructors for priority_queue" makes the following changes: - New allocator-extended constructors for priority_queue. - New deduction guides targeting those constructors. LWG3522: "Missing requirement on InputIterator template parameter for priority_queue constructors". The iterator parameter should be constrained to actually be an iterator type. `priority_queue{1,2}` should be SFINAE-friendly ill-formed. Also, do a drive-by fix in the allocator-extended move constructor: there's no need to do a `make_heap` after moving from `__q.c` into our own `c`, because that container was already heapified when it was part of `__q`. [priqueue.cons.alloc] actually specifies the behavior and does *not* mention calling `make_heap`. I think this was just a copy-paste thinko. It dates back to the initial import of libc++. Differential Revision: https://reviews.llvm.org/D106824 Differential Revision: https://reviews.llvm.org/D106827 |
||
---|---|---|
.. | ||
priority.queue | ||
queue | ||
stack |