Index: libcxx/docs/Status/Cxx2bIssues.csv =================================================================== --- libcxx/docs/Status/Cxx2bIssues.csv +++ libcxx/docs/Status/Cxx2bIssues.csv @@ -1,10 +1,10 @@ "Issue #","Issue Name","Meeting","Status","First released version","Labels" -"`2839 `__","Self-move-assignment of library types, again","November 2020","","" +"`2839 `__","Self-move-assignment of library types, again","November 2020","|Nothing To Do|","" "`3117 `__","Missing ``packaged_task`` deduction guides","November 2020","","" "`3143 `__","``monotonic_buffer_resource`` growth policy is unclear","November 2020","","" -"`3195 `__","What is the stored pointer value of an empty ``weak_ptr``?","November 2020","","" +"`3195 `__","What is the stored pointer value of an empty ``weak_ptr``?","November 2020","|Nothing To Do|","" "`3211 `__","``std::tuple<>`` should be trivially constructible","November 2020","|Complete|","9.0" -"`3236 `__","Random access iterator requirements lack limiting relational operators domain to comparing those from the same range","November 2020","","","|ranges|" +"`3236 `__","Random access iterator requirements lack limiting relational operators domain to comparing those from the same range","November 2020","|Nothing To Do|","","|ranges|" "`3265 `__","``move_iterator``'s conversions are more broken after P1207","November 2020","Fixed by `LWG3435 `__","" "`3435 `__","``three_way_comparable_with, reverse_iterator>``","November 2020","|Complete|","13.0" "`3432 `__","Missing requirement for ``comparison_category``","November 2020","","","|spaceship|" @@ -12,73 +12,73 @@ "`3450 `__","The const overloads of ``take_while_view::begin/end`` are underconstrained","November 2020","","","|ranges|" "`3464 `__","``istream::gcount()`` can overflow","November 2020","","" "`2731 `__","Existence of ``lock_guard::mutex_type`` typedef unclear","November 2020","|Complete|","5.0" -"`2743 `__","P0083R3 ``node_handle`` private members missing ""exposition only"" comment","November 2020","","" -"`2820 `__","Clarify ```` macros","November 2020","","" +"`2743 `__","P0083R3 ``node_handle`` private members missing ""exposition only"" comment","November 2020","|Nothing To Do|","" +"`2820 `__","Clarify ```` macros","November 2020","|Nothing To Do|","" "`3120 `__","Unclear behavior of ``monotonic_buffer_resource::release()``","November 2020","","" "`3170 `__","``is_always_equal`` added to ``std::allocator`` makes the standard library treat derived types as always equal","November 2020","","" "`3036 `__","``polymorphic_allocator::destroy`` is extraneous","November 2020","","" "`3171 `__","LWG2989 breaks ``directory_entry`` stream insertion","November 2020","|Complete|","14.0" -"`3306 `__","``ranges::advance`` violates its preconditions","November 2020","","","|ranges|" +"`3306 `__","``ranges::advance`` violates its preconditions","November 2020","|Complete|","14.0","|ranges|" "`3403 `__","Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)``","November 2020","","","|ranges|" "`3404 `__","Finish removing subrange's conversions from pair-like","November 2020","","","|ranges|" -"`3405 `__","``common_view``'s converting constructor is bad, too","November 2020","","","|ranges|" +"`3405 `__","``common_view``'s converting constructor is bad, too","November 2020","|Complete|","14.0","|ranges|" "`3406 `__","``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraints","November 2020","","","|ranges|" -"`3419 `__","[algorithms.requirements]/15 doesn't reserve as many rights as it intends to","November 2020","","" +"`3419 `__","[algorithms.requirements]/15 doesn't reserve as many rights as it intends to","November 2020","|Nothing To Do|","" "`3420 `__","cpp17-iterator should check that the type looks like an iterator first","November 2020","|Complete|","14.0","|ranges|" -"`3421 `__","Imperfect ADL emulation for boolean-testable","November 2020","","","|ranges|" -"`3425 `__","``condition_variable_any`` fails to constrain its Lock parameters","November 2020","","" +"`3421 `__","Imperfect ADL emulation for boolean-testable","November 2020","|Nothing To Do|","","|ranges|" +"`3425 `__","``condition_variable_any`` fails to constrain its Lock parameters","November 2020","|Nothing To Do|","" "`3426 `__","``operator<=>(const unique_ptr&, nullptr_t)`` can't get no satisfaction","November 2020","","","|spaceship|" "`3427 `__","``operator<=>(const shared_ptr&, nullptr_t)`` definition ill-formed","November 2020","","","|spaceship|" -"`3428 `__","``single_view``'s in place constructor should be explicit","November 2020","","","|ranges|" -"`3434 `__","``ios_base`` never reclaims memory for iarray and parray","November 2020","","" +"`3428 `__","``single_view``'s in place constructor should be explicit","November 2020","|Complete|","14.0","|ranges|" +"`3434 `__","``ios_base`` never reclaims memory for iarray and parray","November 2020","|Nothing To Do|","" "`3437 `__","``__cpp_lib_polymorphic_allocator`` is in the wrong header","November 2020","","" -"`3446 `__","``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type``","November 2020","","","|ranges|" +"`3446 `__","``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type``","November 2020","|Complete|","14.0","|ranges|" "`3448 `__","``transform_view``'s ``sentinel`` not comparable with ``iterator``","November 2020","","","|ranges|" "`3449 `__","``take_view`` and ``take_while_view``'s ``sentinel`` not comparable with their ``const iterator``","November 2020","","","|ranges|" -"`3453 `__","Generic code cannot call ``ranges::advance(i, s)``","November 2020","","","|ranges|" +"`3453 `__","Generic code cannot call ``ranges::advance(i, s)``","November 2020","|Nothing To Do|","","|ranges|" "`3455 `__","Incorrect Postconditions on ``unique_ptr`` move assignment","November 2020","|Nothing To Do|","" "`3460 `__","Unimplementable ``noop_coroutine_handle`` guarantees","November 2020","|Complete|","14.0" -"`3461 `__","``convertible_to``'s description mishandles cv-qualified ``void``","November 2020","","" +"`3461 `__","``convertible_to``'s description mishandles cv-qualified ``void``","November 2020","|Nothing To Do|","" "`3465 `__","``compare_partial_order_fallback`` requires ``F < E``","November 2020","","","|spaceship|" -"`3466 `__","Specify the requirements for ``promise``/``future``/``shared_future`` consistently","November 2020","","" -"`3467 `__","``bool`` can't be an integer-like type","November 2020","","" -"`3472 `__","``counted_iterator`` is missing preconditions","November 2020","","","|ranges|" -"`3473 `__","Normative encouragement in non-normative note","November 2020","","","|format|" +"`3466 `__","Specify the requirements for ``promise``/``future``/``shared_future`` consistently","November 2020","|Nothing To Do|","" +"`3467 `__","``bool`` can't be an integer-like type","November 2020","|Complete|","14.0" +"`3472 `__","``counted_iterator`` is missing preconditions","November 2020","|Complete|","14.0","|ranges|" +"`3473 `__","Normative encouragement in non-normative note","November 2020","|Nothing To Do|","","|format|" "`3474 `__","Nesting ``join_views`` is broken because of CTAD","November 2020","","","|ranges|" "`3476 `__","``thread`` and ``jthread`` constructors require that the parameters be move-constructible but never move construct the parameters","November 2020","","" "`3477 `__","Simplify constraints for ``semiregular-box``","November 2020","","","|ranges|" -"`3482 `__","``drop_view``'s const begin should additionally require ``sized_range``","November 2020","","","|ranges|" -"`3483 `__","``transform_view::iterator``'s difference is overconstrained","November 2020","","","|ranges|" +"`3482 `__","``drop_view``'s const begin should additionally require ``sized_range``","November 2020","|Complete|","14.0","|ranges|" +"`3483 `__","``transform_view::iterator``'s difference is overconstrained","November 2020","|Complete|","14.0","|ranges|" "","","","","" "`3391 `__","Problems with ``counted_iterator``/``move_iterator::base() const &``","February 2021","","","|ranges|" -"`3433 `__","``subrange::advance(n)`` has UB when ``n < 0``","February 2021","","","|ranges|" -"`3490 `__","``ranges::drop_while_view::begin()`` is missing a precondition","February 2021","","","|ranges|" +"`3433 `__","``subrange::advance(n)`` has UB when ``n < 0``","February 2021","|Complete|","14.0","|ranges|" +"`3490 `__","``ranges::drop_while_view::begin()`` is missing a precondition","February 2021","|Nothing To Do|","","|ranges|" "`3492 `__","Minimal improvements to ``elements_view::iterator``","February 2021","","","|ranges|" "`3494 `__","Allow ranges to be conditionally borrowed","February 2021","Superseded by `P2017R1 `__","","|ranges|" -"`3495 `__","``constexpr launder`` makes pointers to inactive members of unions usable","February 2021","","" +"`3495 `__","``constexpr launder`` makes pointers to inactive members of unions usable","February 2021","|Nothing To Do|","" "`3500 `__","``join_view::iterator::operator->()`` is bogus","February 2021","","","|ranges|" "`3502 `__","``elements_view`` should not be allowed to return dangling reference","February 2021","","","|ranges|" "`3505 `__","``split_view::outer-iterator::operator++`` misspecified","February 2021","","","|ranges|" "","","","","" `2774 `__,"``std::function`` construction vs assignment","June 2021","","" -`2818 `__,"``::std::`` everywhere rule needs tweaking","June 2021","","" +`2818 `__,"``::std::`` everywhere rule needs tweaking","June 2021","|Nothing To Do|","" `2997 `__,"LWG 491 and the specification of ``{forward_,}list::unique``","June 2021","","" `3410 `__,"``lexicographical_compare_three_way`` is overspecified","June 2021","","","|spaceship|" `3430 `__,"``std::fstream`` & co. should be constructible from string_view","June 2021","","" `3462 `__,"§[formatter.requirements]: Formatter requirements forbid use of ``fc.arg()``","June 2021","","","|format|" -`3481 `__,"``viewable_range`` mishandles lvalue move-only views","June 2021","","","|ranges|" +`3481 `__,"``viewable_range`` mishandles lvalue move-only views","June 2021","Superseded by `P2415R2 `__","","|ranges|" `3506 `__,"Missing allocator-extended constructors for ``priority_queue``","June 2021","|Complete|","14.0" `3517 `__,"``join_view::iterator``'s ``iter_swap`` is underconstrained","June 2021","","","|ranges|" -`3518 `__,"Exception requirements on char trait operations unclear","June 2021","","" +`3518 `__,"Exception requirements on char trait operations unclear","June 2021","|Nothing To Do|","" `3519 `__,"Incomplete synopses for ```` classes","June 2021","","" -`3520 `__,"``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator``","June 2021","","","|ranges|" -`3521 `__,"Overly strict requirements on ``qsort`` and ``bsearch``","June 2021","","" +`3520 `__,"``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator``","June 2021","|Complete|","14.0","|ranges|" +`3521 `__,"Overly strict requirements on ``qsort`` and ``bsearch``","June 2021","|Nothing To Do|","" `3522 `__,"Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructors","June 2021","|Complete|","14.0","|ranges|" `3523 `__,"``iota_view::sentinel`` is not always ``iota_view``'s sentinel","June 2021","","","|ranges|" `3526 `__,"Return types of ``uses_allocator_construction_args`` unspecified","June 2021","","" `3527 `__,"``uses_allocator_construction_args`` handles rvalue pairs of rvalue references incorrectly","June 2021","","" `3528 `__,"``make_from_tuple`` can perform (the equivalent of) a C-style cast","June 2021","","" -`3529 `__,"``priority_queue(first, last)`` should construct ``c`` with ``(first, last)``","June 2021","","" +`3529 `__,"``priority_queue(first, last)`` should construct ``c`` with ``(first, last)``","June 2021","|Complete|","14.0" `3530 `__,"``BUILTIN-PTR-MEOW`` should not opt the type out of syntactic checks","June 2021","","" `3532 `__,"``split_view::inner-iterator::operator++(int)`` should depend on ``Base``","June 2021","","","|ranges|" `3533 `__,"Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators``","June 2021","","","|ranges|" @@ -87,17 +87,17 @@ `3540 `__,"§[format.arg] There should be no const in ``basic_format_arg(const T* p)``","June 2021","","","|format|" `3541 `__,"``indirectly_readable_traits`` should be SFINAE-friendly for all types","June 2021","","","|ranges|" `3542 `__,"``basic_format_arg`` mishandles ``basic_string_view`` with custom traits","June 2021","|Complete|","14.0","|format|" -`3543 `__,"Definition of when ``counted_iterators`` refer to the same sequence isn't quite right","June 2021","","","|ranges|" -`3544 `__,"``format-arg-store::args`` is unintentionally not exposition-only","June 2021","","","|format|" +`3543 `__,"Definition of when ``counted_iterators`` refer to the same sequence isn't quite right","June 2021","|Nothing To Do|","","|ranges|" +`3544 `__,"``format-arg-store::args`` is unintentionally not exposition-only","June 2021","|Complete|","14.0","|format|" `3546 `__,"``common_iterator``'s postfix-proxy is not quite right","June 2021","","","|ranges|" `3548 `__,"``shared_ptr`` construction from ``unique_ptr`` should move (not copy) the deleter","June 2021","","" `3549 `__,"``view_interface`` is overspecified to derive from ``view_base``","June 2021","","","|ranges|" -`3551 `__,"``borrowed_{iterator,subrange}_t`` are overspecified","June 2021","","","|ranges|" +`3551 `__,"``borrowed_{iterator,subrange}_t`` are overspecified","June 2021","|Nothing To Do|","","|ranges|" `3552 `__,"Parallel specialized memory algorithms should require forward iterators","June 2021","","" `3553 `__,"Useless constraint in ``split_view::outer-iterator::value_type::begin()``","June 2021","","","|ranges|" `3555 `__,"``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying range","June 2021","","","|ranges|" "","","","","" -`2191 `__,"Incorrect specification of ``match_results(match_results&&)``","October 2021","","" +`2191 `__,"Incorrect specification of ``match_results(match_results&&)``","October 2021","|Nothing To Do|","" `2381 `__,"Inconsistency in parsing floating point numbers","October 2021","","" `2762 `__,"``unique_ptr operator*()`` should be ``noexcept``","October 2021","","" `3121 `__,"``tuple`` constructor constraints for ``UTypes&&...`` overloads","October 2021","","" @@ -105,7 +105,7 @@ `3146 `__,"Excessive unwrapping in ``std::ref/cref``","October 2021","","" `3152 `__,"``common_type`` and ``common_reference`` have flaws in common","October 2021","","" `3293 `__,"``move_iterator operator+()`` has incorrect constraints","October 2021","","","|ranges|" -`3361 `__,"``safe_range`` case","October 2021","","","|ranges|" +`3361 `__,"``safe_range`` case","October 2021","|Nothing To Do|","","|ranges|" `3392 `__,"``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinel","October 2021","","","|ranges|" `3407 `__,"Some problems with the wording changes of P1739R4","October 2021","","","|ranges|" `3422 `__,"Issues of ``seed_seq``'s constructors","October 2021","","" @@ -115,7 +115,7 @@ `3535 `__,"``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie","October 2021","","","|ranges|" `3554 `__,"``chrono::parse`` needs ``const charT*`` and ``basic_string_view`` overloads","October 2021","","","|chrono|" `3557 `__,"The ``static_cast`` expression in ``convertible_to`` has the wrong operand","October 2021","","" -`3559 `__,"Semantic requirements of ``sized_range`` is circular","October 2021","","","|ranges|" +`3559 `__,"Semantic requirements of ``sized_range`` is circular","October 2021","|Nothing To Do|","","|ranges|" `3560 `__,"``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges``","October 2021","","","|ranges|" `3561 `__,"Issue with internal counter in ``discard_block_engine``","October 2021","","" `3563 `__,"``keys_view`` example is broken","October 2021","","","|ranges|" @@ -124,11 +124,11 @@ `3568 `__,"``basic_istream_view`` needs to initialize ``value_``","October 2021","","","|ranges|" `3570 `__,"``basic_osyncstream::emit`` should be an unformatted output function","October 2021","","" `3571 `__,"``flush_emit`` should set ``badbit`` if the ``emit`` call fails","October 2021","","" -`3572 `__,"``copyable-box`` should be fully ``constexpr``","October 2021","","","|ranges|" +`3572 `__,"``copyable-box`` should be fully ``constexpr``","October 2021","|Complete|","14.0","|ranges|" `3573 `__,"Missing Throws element for ``basic_string_view(It begin, End end)``","October 2021","|Complete|","14.0" `3574 `__,"``common_iterator`` should be completely ``constexpr``-able","October 2021","","","|ranges|" -`3580 `__,"``iota_view``'s ``iterator``'s binary ``operator+`` should be improved","October 2021","","","|ranges|" -`3581 `__,"The range constructor makes ``basic_string_view`` not trivially move constructible","October 2021","","","|ranges|" +`3580 `__,"``iota_view``'s ``iterator``'s binary ``operator+`` should be improved","October 2021","|Complete|","14.0","|ranges|" +`3581 `__,"The range constructor makes ``basic_string_view`` not trivially move constructible","October 2021","|Complete|","14.0","|ranges|" `3585 `__,"``variant`` converting assignment with immovable alternative","October 2021","","" `3589 `__,"The ``const`` lvalue reference overload of ``get`` for ``subrange`` does not constrain ``I`` to be ``copyable`` when ``N == 0``","October 2021","","","|ranges|" `3590 `__,"``split_view::base() const &`` is overconstrained","October 2021","","","|ranges|" @@ -138,4 +138,4 @@ `3595 `__,"Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr``","October 2021","","","|ranges|" "","","","","" `3645 `__,"``resize_and_overwrite`` is overspecified to call its callback with lvalues", "Not voted in","|Complete|","14.0","" -"","","","","" \ No newline at end of file +"","","","","" Index: libcxx/include/__ranges/transform_view.h =================================================================== --- libcxx/include/__ranges/transform_view.h +++ libcxx/include/__ranges/transform_view.h @@ -20,7 +20,6 @@ #include <__functional/bind_back.h> #include <__functional/invoke.h> #include <__iterator/concepts.h> -#include <__iterator/iter_swap.h> #include <__iterator/iterator_traits.h> #include <__memory/addressof.h> #include <__ranges/access.h>