diff --git a/libcxx/docs/Status/Cxx20Issues.csv b/libcxx/docs/Status/Cxx20Issues.csv --- a/libcxx/docs/Status/Cxx20Issues.csv +++ b/libcxx/docs/Status/Cxx20Issues.csv @@ -182,7 +182,7 @@ "`3070 `__","``path::lexically_relative``\ causes surprising results if a filename can also be a *root-name*","Belfast","","" "`3266 `__","``to_chars(bool)``\ should be deleted","Belfast","|Complete|","14.0" "`3272 `__","``%I%p``\ should parse/format ``duration``\ since midnight","Belfast","","","|chrono| |format|" -"`3259 `__","The definition of *constexpr iterators* should be adjusted","Belfast","|Nothing To Do|","","|ranges|" +"`3259 `__","The definition of *constexpr iterators* should be adjusted","Belfast","|Nothing To Do|","" "`3103 `__","Errors in taking subview of ``span``\ should be ill-formed where possible","Belfast","","" "`3274 `__","Missing feature test macro for ````\ ","Belfast","|Complete|","11.0" "`3276 `__","Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ ","Belfast","|Complete|","15.0","|ranges|" @@ -194,7 +194,7 @@ "`3018 `__","``shared_ptr``\ of function type","Prague","","" "`3050 `__","Conversion specification problem in ``chrono::duration``\ constructor","Prague","","","|chrono|" "`3141 `__","``CopyConstructible``\ doesn't preserve source values","Prague","|Nothing to do|","" -"`3150 `__","``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ ","Prague","|Complete|","13.0" +"`3150 `__","``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ ","Prague","|Complete|","13.0","|ranges|" "`3175 `__","The ``CommonReference``\ requirement of concept ``SwappableWith``\ is not satisfied in the example","Prague","|Complete|","13.0" "`3194 `__","``ConvertibleTo``\ prose does not match code","Prague","|Complete|","13.0" "`3200 `__","``midpoint``\ should not constrain ``T``\ is complete","Prague","|Nothing To Do|","" @@ -298,4 +298,4 @@ "`3396 `__","Clarify point of reference for ``source_location::current()``\ (DE 169)","Prague","","" "`3397 `__","``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ ","Prague","|Complete|","16.0","|ranges|" "`3398 `__","``tuple_element_t``\ is also wrong for ``const subrange``\ ","Prague","|Complete|","14.0","|ranges|" -"`3446 `__","``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ ","November virtual meeting","|Complete|","13.0" +"`3446 `__","``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ ","November virtual meeting","|Complete|","13.0","|ranges|" diff --git a/libcxx/docs/Status/Cxx20Papers.csv b/libcxx/docs/Status/Cxx20Papers.csv --- a/libcxx/docs/Status/Cxx20Papers.csv +++ b/libcxx/docs/Status/Cxx20Papers.csv @@ -1,4 +1,4 @@ -"Paper #","Group","Paper Name","Meeting","Status","First released version" +"Paper #","Group","Paper Name","Meeting","Status","First released version","Labels" "`P0463R1 `__","LWG","Endian just Endian","Toronto","|Complete|","7.0" "`P0674R1 `__","LWG","Extending make_shared to Support Arrays","Toronto","|Complete|","15.0" "","","","","","" @@ -61,7 +61,7 @@ "`P0608R3 `__","LWG","A sane variant converting constructor","San Diego","|Complete|","9.0" "`P0655R1 `__","LWG","visit: Explicit Return Type for visit","San Diego","|Complete|","12.0" "`P0771R1 `__","LWG","std::function move constructor should be noexcept","San Diego","|Complete|","6.0" -"`P0896R4 `__","LWG","The One Ranges Proposal","San Diego","|Complete|","15.0" +"`P0896R4 `__","LWG","The One Ranges Proposal","San Diego","|Complete|","15.0","|ranges|" "`P0899R1 `__","LWG","P0899R1 - LWG 3016 is not a defect","San Diego","|Nothing To Do|","" "`P0919R3 `__","LWG","Heterogeneous lookup for unordered containers","San Diego","|Complete|","12.0" "`P0972R0 `__","LWG"," ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept","San Diego","|Complete|","8.0" @@ -89,7 +89,7 @@ "`P1024R3 `__","LWG","Usability Enhancements for std::span","Kona","|Complete|","9.0" "`P1164R1 `__","LWG","Make create_directory() Intuitive","Kona","|Complete|","12.0" "`P1227R2 `__","LWG","Signed ssize() functions, unsigned size() functions","Kona","|Complete|","9.0" -"`P1252R2 `__","LWG","Ranges Design Cleanup","Kona","|Complete|","15.0" +"`P1252R2 `__","LWG","Ranges Design Cleanup","Kona","|Complete|","15.0","|ranges|" "`P1286R2 `__","CWG","Contra CWG DR1778","Kona","","" "`P1357R1 `__","LWG","Traits for [Un]bounded Arrays","Kona","|Complete|","9.0" "`P1458R1 `__","LWG","Mandating the Standard Library: Clause 16 - Language support library","Kona","|Complete|","9.0" @@ -108,40 +108,40 @@ "`P0784R7 `__","CWG","More constexpr containers","Cologne","|Complete|","12.0" "`P0980R1 `__","LWG","Making std::string constexpr","Cologne","|Complete|","15.0" "`P1004R2 `__","LWG","Making std::vector constexpr","Cologne","|Complete|","15.0" -"`P1035R7 `__","LWG","Input Range Adaptors, Todo: elements_view","Cologne","|In Progress|","" +"`P1035R7 `__","LWG","Input Range Adaptors (mostly implemented, TODO: elements_view)","Cologne","|In Progress|","","|ranges|" "`P1065R2 `__","LWG","Constexpr INVOKE","Cologne","|Complete|","12.0" "`P1135R6 `__","LWG","The C++20 Synchronization Library","Cologne","|Complete|","11.0" -"`P1207R4 `__","LWG","Movability of Single-pass Iterators","Cologne","|Complete|","15.0" +"`P1207R4 `__","LWG","Movability of Single-pass Iterators","Cologne","|Complete|","15.0","|ranges|" "`P1208R6 `__","LWG","Adopt source_location for C++20","Cologne","","" "`P1355R2 `__","LWG","Exposing a narrow contract for ceil2","Cologne","|Complete|","9.0" "`P1361R2 `__","LWG","Integration of chrono with text formatting","Cologne","|In Progress|","" "`P1423R3 `__","LWG","char8_t backward compatibility remediation","Cologne","|Complete|","15.0" "`P1424R1 `__","LWG","'constexpr' feature macro concerns","Cologne","Superseded by `P1902 `__","" "`P1466R3 `__","LWG","Miscellaneous minor fixes for chrono","Cologne","","" -"`P1474R1 `__","LWG","Helpful pointers for ContiguousIterator","Cologne","|Complete|","15.0" +"`P1474R1 `__","LWG","Helpful pointers for ContiguousIterator","Cologne","|Complete|","15.0","|ranges|" "`P1502R1 `__","LWG","Standard library header units for C++20","Cologne","","" -"`P1522R1 `__","LWG","Iterator Difference Type and Integer Overflow","Cologne","|Complete|","15.0" -"`P1523R1 `__","LWG","Views and Size Types","Cologne","|Complete|","15.0" +"`P1522R1 `__","LWG","Iterator Difference Type and Integer Overflow","Cologne","|Complete|","15.0","|ranges|" +"`P1523R1 `__","LWG","Views and Size Types","Cologne","|Complete|","15.0","|ranges|" "`P1612R1 `__","LWG","Relocate Endian's Specification","Cologne","|Complete|","10.0" "`P1614R2 `__","LWG","The Mothership has Landed","Cologne","|In Progress|","" -"`P1638R1 `__","LWG","basic_istream_view::iterator should not be copyable","Cologne","|Complete|","16.0" +"`P1638R1 `__","LWG","basic_istream_view::iterator should not be copyable","Cologne","|Complete|","16.0","|ranges|" "`P1643R1 `__","LWG","Add wait/notify to atomic_ref","Cologne","","" "`P1644R0 `__","LWG","Add wait/notify to atomic","Cologne","","" "`P1650R0 `__","LWG","Output std::chrono::days with 'd' suffix","Cologne","|Complete|","16.0" "`P1651R0 `__","LWG","bind_front should not unwrap reference_wrapper","Cologne","|Complete|","13.0" "`P1652R1 `__","LWG","Printf corner cases in std::format","Cologne","|Complete|","14.0" "`P1661R1 `__","LWG","Remove dedicated precalculated hash lookup interface","Cologne","|Nothing To Do|","" -"`P1754R1 `__","LWG","Rename concepts to standard_case for C++20, while we still can","Cologne","|In Progress|","" +"`P1754R1 `__","LWG","Rename concepts to standard_case for C++20, while we still can","Cologne","|In Progress|","","|ranges|" "","","","","","" "`P0883R2 `__","LWG","Fixing Atomic Initialization","Belfast","|Complete| [#note-P0883.1]_ [#note-P0883.2]_","14.0" -"`P1391R4 `__","LWG","Range constructor for std::string_view","Belfast","|Complete|","14.0" -"`P1394R4 `__","LWG","Range constructor for std::span","Belfast","|Complete|","14.0" -"`P1456R1 `__","LWG","Move-only views","Belfast","|Complete|","15.0" +"`P1391R4 `__","LWG","Range constructor for std::string_view","Belfast","|Complete|","14.0","|ranges|" +"`P1394R4 `__","LWG","Range constructor for std::span","Belfast","|Complete|","14.0","|ranges|" +"`P1456R1 `__","LWG","Move-only views","Belfast","|Complete|","15.0","|ranges|" "`P1622R3 `__","LWG","Mandating the Standard Library: Clause 32 - Thread support library","Belfast","* *","" "`P1645R1 `__","LWG","constexpr for numeric algorithms","Belfast","|Complete|","12.0" "`P1686R2 `__","LWG","Mandating the Standard Library: Clause 27 - Time library","Belfast","* *","" "`P1690R1 `__","LWG","Refinement Proposal for P0919 Heterogeneous lookup for unordered containers","Belfast","|Complete|","12.0" -"`P1716R3 `__","LWG","ranges compare algorithm are over-constrained","Belfast","|Complete|","15.0" +"`P1716R3 `__","LWG","ranges compare algorithm are over-constrained","Belfast","|Complete|","15.0","|ranges|" "`P1718R2 `__","LWG","Mandating the Standard Library: Clause 25 - Algorithms library","Belfast","* *","" "`P1719R2 `__","LWG","Mandating the Standard Library: Clause 26 - Numerics library","Belfast","* *","" "`P1720R2 `__","LWG","Mandating the Standard Library: Clause 28 - Localization library","Belfast","* *","" @@ -149,13 +149,13 @@ "`P1722R2 `__","LWG","Mandating the Standard Library: Clause 30 - Regular Expression library","Belfast","* *","" "`P1723R2 `__","LWG","Mandating the Standard Library: Clause 31 - Atomics library","Belfast","* *","" "`P1855R0 `__","LWG","Make ````\ freestanding","Belfast","* *","" -"`P1862R1 `__","LWG","Ranges adaptors for non-copyable iterators","Belfast","* *","" +"`P1862R1 `__","LWG","Ranges adaptors for non-copyable iterators","Belfast","* *","","|ranges|" "`P1865R1 `__","LWG","Add max() to latch and barrier","Belfast","|Complete|","11.0" "`P1869R1 `__","LWG","Rename 'condition_variable_any' interruptible wait methods","Belfast","* *","" -"`P1870R1 `__","LWG","forwarding-range is too subtle","Belfast","|Complete|","15.0" -"`P1871R1 `__","LWG","Concept traits should be named after concepts","Belfast","|Complete|","14.0" +"`P1870R1 `__","LWG","forwarding-range is too subtle","Belfast","|Complete|","15.0","|ranges|" +"`P1871R1 `__","LWG","Concept traits should be named after concepts","Belfast","|Complete|","14.0","|ranges|" "`P1872R0 `__","LWG","span should have size_type, not index_type","Belfast","|Complete|","10.0" -"`P1878R1 `__","LWG","Constraining Readable Types","Belfast","|Complete|","15.0" +"`P1878R1 `__","LWG","Constraining Readable Types","Belfast","|Complete|","15.0","|ranges|" "`P1892R1 `__","LWG","Extended locale-specific presentation specifiers for std::format","Belfast","|Complete|","14.0" "`P1902R1 `__","LWG","Missing feature-test macros 2018-2019","Belfast","* *","" "`P1959R0 `__","LWG","Remove std::weak_equality and std::strong_equality","Belfast","|Nothing To Do|","" @@ -166,41 +166,41 @@ "`P0586R2 `__","LWG","Safe integral comparisons","Prague","|Complete|","13.0" "`P0593R6 `__","CWG","Implicit creation of objects for low-level object manipulation","Prague","* *","" "`P1115R3 `__","LWG","Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if","Prague","|Complete|","11.0" -"`P1243R4 `__","LWG","Rangify New Algorithms","Prague","|Complete|","15.0" +"`P1243R4 `__","LWG","Rangify New Algorithms","Prague","|Complete|","15.0","|ranges|" "`P1460R1 `__","LWG","Mandating the Standard Library: Clause 20 - Utilities library","Prague","* *","" -"`P1739R4 `__","LWG","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","Prague","|Complete|","15.0" +"`P1739R4 `__","LWG","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","Prague","|Complete|","15.0","|ranges|" "`P1831R1 `__","LWG","Deprecating volatile: library","Prague","* *","" "`P1868R2 `__","LWG","width: clarifying units of width and precision in std::format","Prague","|Complete|","14.0" "`P1937R2 `__","CWG","Fixing inconsistencies between constexpr and consteval functions","Prague","* *","" "`P1956R1 `__","LWG","On the names of low-level bit manipulation functions","Prague","|Complete|","12.0" "`P1957R2 `__","CWG","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","Prague","* *","" -"`P1963R0 `__","LWG","Fixing US 313","Prague","* *","" +"`P1963R0 `__","LWG","Fixing US 313","Prague","* *","","|ranges|" "`P1964R2 `__","LWG","Wording for boolean-testable","Prague","|Complete|","13.0" -"`P1970R2 `__","LWG","Consistency for size() functions: Add ranges::ssize","Prague","|Complete|","15.0" +"`P1970R2 `__","LWG","Consistency for size() functions: Add ranges::ssize","Prague","|Complete|","15.0","|ranges|" "`P1973R1 `__","LWG","Rename ""_default_init"" Functions, Rev1","Prague","* *","" -"`P1976R2 `__","LWG","Fixed-size span construction from dynamic range","Prague","|Complete|","11.0" +"`P1976R2 `__","LWG","Fixed-size span construction from dynamic range","Prague","|Complete|","11.0","|ranges|" "`P1981R0 `__","LWG","Rename leap to leap_second","Prague","* *","" "`P1982R0 `__","LWG","Rename link to time_zone_link","Prague","* *","" -"`P1983R0 `__","LWG","Wording for GB301, US296, US292, US291, and US283","Prague","|Complete|","15.0" -"`P1994R1 `__","LWG","elements_view needs its own sentinel","Prague","* *","" +"`P1983R0 `__","LWG","Wording for GB301, US296, US292, US291, and US283","Prague","|Complete|","15.0","|ranges|" +"`P1994R1 `__","LWG","elements_view needs its own sentinel","Prague","* *","","|ranges|" "`P2002R1 `__","CWG","Defaulted comparison specification cleanups","Prague","* *","" "`P2045R1 `__","LWG","Missing Mandates for the standard library","Prague","* *","" "`P2085R0 `__","CWG","Consistent defaulted comparisons","Prague","* *","" -"`P2091R0 `__","LWG","Issues with range access CPOs","Prague","|Complete|","15.0" +"`P2091R0 `__","LWG","Issues with range access CPOs","Prague","|Complete|","15.0","|ranges|" "`P2101R0 `__","LWG","'Models' subsumes 'satisfies' (Wording for US298 and US300)","Prague","* *","" "`P2102R0 `__","LWG","Make 'implicit expression variations' more explicit (Wording for US185)","Prague","* *","" -"`P2106R0 `__","LWG","Alternative wording for GB315 and GB316","Prague","|Complete|","15.0" +"`P2106R0 `__","LWG","Alternative wording for GB315 and GB316","Prague","|Complete|","15.0","|ranges|" "`P2116R0 `__","LWG","Remove tuple-like protocol support from fixed-extent span","Prague","|Complete|","11.0" "","","","","","" "`P2231R1 `__","LWG","Missing constexpr in std::optional and std::variant","June 2021","|Partial| [#note-P2231]_","13.0" -"`P2325R3 `__","LWG","Views should not be required to be default constructible","June 2021","|In progress|","" -"`P2210R2 `__","LWG",Superior String Splitting,"June 2021","","" +"`P2325R3 `__","LWG","Views should not be required to be default constructible","June 2021","|In progress|","","|ranges|" +"`P2210R2 `__","LWG",Superior String Splitting,"June 2021","|In progress|","","|ranges|" "`P2216R3 `__","LWG",std::format improvements,"June 2021","|Complete|","15.0" -"`P2281R1 `__","LWG",Clarifying range adaptor objects,"June 2021","|Complete|","14.0" -"`P2328R1 `__","LWG",join_view should join all views of ranges,"June 2021","","" -"`P2367R0 `__","LWG",Remove misuses of list-initialization from Clause 24,"June 2021","","" +"`P2281R1 `__","LWG",Clarifying range adaptor objects,"June 2021","|Complete|","14.0","|ranges|" +"`P2328R1 `__","LWG",join_view should join all views of ranges,"June 2021","","","|ranges|" +"`P2367R0 `__","LWG",Remove misuses of list-initialization from Clause 24,"June 2021","","","|ranges|" "","","","","","" "`P2372R3 `__","LWG","Fixing locale handling in chrono formatters","October 2021","|In Progress|","" -"`P2415R2 `__","LWG","What is a ``view``","October 2021","|Complete|","14.0" +"`P2415R2 `__","LWG","What is a ``view``","October 2021","|Complete|","14.0","|ranges|" "`P2418R2 `__","LWG","Add support for ``std::generator``-like types to ``std::format``","October 2021","|Complete|","15.0" -"`P2432R1 `__","LWG","Fix ``istream_view``","October 2021","|Complete|","16.0" +"`P2432R1 `__","LWG","Fix ``istream_view``","October 2021","|Complete|","16.0","|ranges|" diff --git a/libcxx/docs/Status/Cxx2bIssues.csv b/libcxx/docs/Status/Cxx2bIssues.csv --- a/libcxx/docs/Status/Cxx2bIssues.csv +++ b/libcxx/docs/Status/Cxx2bIssues.csv @@ -4,11 +4,11 @@ "`3143 `__","``monotonic_buffer_resource`` growth policy is unclear","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","|Nothing To Do|","","|ranges|" +"`3236 `__","Random access iterator requirements lack limiting relational operators domain to comparing those from the same range","November 2020","|Nothing To Do|","" "`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","|Complete|","16.0","|spaceship|" -"`3447 `__","Deduction guides for ``take_view`` and ``drop_view`` have different constraints","November 2020","|Complete|","14.0" +"`3447 `__","Deduction guides for ``take_view`` and ``drop_view`` have different constraints","November 2020","|Complete|","14.0","|ranges|" "`3450 `__","The const overloads of ``take_while_view::begin/end`` are underconstrained","November 2020","|Complete|","16.0","|ranges|" "`3464 `__","``istream::gcount()`` can overflow","November 2020","","" "`2731 `__","Existence of ``lock_guard::mutex_type`` typedef unclear","November 2020","|Complete|","5.0" @@ -34,14 +34,14 @@ "`3437 `__","``__cpp_lib_polymorphic_allocator`` is in the wrong header","November 2020","|Complete|","14.0" "`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","Complete","16.0","|ranges|" +"`3449 `__","``take_view`` and ``take_while_view``'s ``sentinel`` not comparable with their ``const iterator``","November 2020","|Complete|","16.0","|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","|Nothing To Do|","" "`3465 `__","``compare_partial_order_fallback`` requires ``F < E``","November 2020","|Complete|","14.0","|spaceship|" "`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" +"`3467 `__","``bool`` can't be an integer-like type","November 2020","|Complete|","14.0","|ranges|" "`3472 `__","``counted_iterator`` is missing preconditions","November 2020","|Complete|","14.0","|ranges|" "`3473 `__","Normative encouragement in non-normative note","November 2020","|Complete|","15.0","|format|" "`3474 `__","Nesting ``join_views`` is broken because of CTAD","November 2020","|Complete|","15.0","|ranges|" @@ -73,7 +73,7 @@ `3519 `__,"Incomplete synopses for ```` classes","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|" +`3522 `__,"Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructors","June 2021","|Complete|","14.0" `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","","" @@ -104,7 +104,7 @@ `3123 `__,"``duration`` constructor from representation shouldn't be effectively non-throwing","October 2021","","","|chrono|" `3146 `__,"Excessive unwrapping in ``std::ref/cref``","October 2021","|Complete|","14.0" `3152 `__,"``common_type`` and ``common_reference`` have flaws in common","October 2021","","" -`3293 `__,"``move_iterator operator+()`` has incorrect constraints","October 2021","|Complete|","15.0","|ranges|" +`3293 `__,"``move_iterator operator+()`` has incorrect constraints","October 2021","|Complete|","15.0" `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","|Complete|","14.0","|ranges|" `3407 `__,"Some problems with the wording changes of P1739R4","October 2021","|Complete|","15.0","|ranges|" @@ -120,7 +120,7 @@ `3561 `__,"Issue with internal counter in ``discard_block_engine``","October 2021","","" `3563 `__,"``keys_view`` example is broken","October 2021","","","|ranges|" `3566 `__,"Constraint recursion for ``operator<=>(optional, U)``","October 2021","","","|spaceship|" -`3567 `__,"Formatting move-only iterators take two","October 2021","|Complete|","16.0","|format|" +`3567 `__,"Formatting move-only iterators take two","October 2021","|Complete|","16.0","|format| |ranges|" `3568 `__,"``basic_istream_view`` needs to initialize ``value_``","October 2021","|Complete|","16.0","|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","","" @@ -150,13 +150,13 @@ "`3619 `__","Specification of ``vformat_to`` contains ill-formed ``formatted_size`` calls","February 2022","|Nothing to do|","","|format|" "`3621 `__","Remove feature-test macro ``__cpp_lib_monadic_optional`` ","February 2022","|Complete|","15.0" "`3632 `__","``unique_ptr`` ""Mandates: This constructor is not selected by class template argument deduction""","February 2022","|Nothing to do|","" -"`3643 `__","Missing ``constexpr`` in ``std::counted_iterator`` ","February 2022","","" +"`3643 `__","Missing ``constexpr`` in ``std::counted_iterator`` ","February 2022","","","|ranges|" "`3648 `__","``format`` should not print ``bool`` with ``'c'`` ","February 2022","|Complete|","15.0","|format|" "`3649 `__","[fund.ts.v2] Reinstate and bump ``__cpp_lib_experimental_memory_resource`` feature test macro","February 2022","","" "`3650 `__","Are ``std::basic_string`` 's ``iterator`` and ``const_iterator`` constexpr iterators?","February 2022","|Nothing to do|","" "`3654 `__","``basic_format_context::arg(size_t)`` should be ``noexcept`` ","February 2022","|Complete|","15.0","|format|" "`3657 `__","``std::hash`` is not enabled","February 2022","","" -"`3660 `__","``iterator_traits::pointer`` should conform to §[iterator.traits]","February 2022","|Complete|","14.0" +"`3660 `__","``iterator_traits::pointer`` should conform to §[iterator.traits]","February 2022","|Complete|","14.0","|ranges|" "`3661 `__","``constinit atomic> a(nullptr);`` should work","February 2022","","" "","","","","" "`3564 `__","``transform_view::iterator::value_type`` and ``iterator_category`` should use ``const F&``","July 2022","","","|ranges|" @@ -168,21 +168,21 @@ "`3672 `__","``common_iterator::operator->()`` should return by value","July 2022","","","|ranges|" "`3683 `__","``operator==`` for ``polymorphic_allocator`` cannot deduce template argument in common cases","July 2022","","" "`3687 `__","``expected`` move constructor should move","July 2022","","" -"`3692 `__","``zip_view::iterator``'s ``operator<=>`` is overconstrained","July 2022","","","|spaceship|" +"`3692 `__","``zip_view::iterator``'s ``operator<=>`` is overconstrained","July 2022","","","|ranges| |spaceship|" "`3701 `__","Make ``formatter, charT>`` requirement explicit","July 2022","","","|format|" -"`3702 `__","Should ``zip_transform_view::iterator`` remove ``operator<``","July 2022","","" +"`3702 `__","Should ``zip_transform_view::iterator`` remove ``operator<``","July 2022","","","|ranges| |spaceship|" "`3703 `__","Missing requirements for ``expected`` requires ``is_void``","July 2022","","" "`3704 `__","LWG 2059 added overloads that might be ill-formed for sets","July 2022","","" "`3705 `__","Hashability shouldn't depend on basic_string's allocator","July 2022","|Complete|","16.0" "`3707 `__","chunk_view::outer-iterator::value_type::size should return unsigned type","July 2022","","","|ranges|" -"`3708 `__","``take_while_view::sentinel``'s conversion constructor should move","July 2022","Complete","16.0","|ranges|" +"`3708 `__","``take_while_view::sentinel``'s conversion constructor should move","July 2022","|Complete|","16.0","|ranges|" "`3709 `__","LWG-3703 was underly ambitious","July 2022","","" "`3710 `__","The ``end`` of ``chunk_view`` for input ranges can be ``const``","July 2022","","","|ranges|" "`3711 `__","Missing preconditions for slide_view constructor","July 2022","","","|ranges|" "`3712 `__","``chunk_view`` and ``slide_view`` should not be ``default_initializable``","July 2022","","","|ranges|" "`3713 `__","Sorted with respect to comparator (only)","July 2022","","" -"`3715 `__","``view_interface::empty`` is overconstrained","July 2022","","" -"`3719 `__","Directory iterators should be usable with default sentinel","July 2022","","" +"`3715 `__","``view_interface::empty`` is overconstrained","July 2022","","","|ranges|" +"`3719 `__","Directory iterators should be usable with default sentinel","July 2022","","","|ranges|" "`3721 `__","Allow an ``arg-id`` with a value of zero for ``width`` in ``std-format-spec``","July 2022","|Complete|","16.0","|format|" "`3724 `__","``decay-copy`` should be constrained","July 2022","|Complete|","14.0" "","","","","" diff --git a/libcxx/docs/Status/Cxx2bPapers.csv b/libcxx/docs/Status/Cxx2bPapers.csv --- a/libcxx/docs/Status/Cxx2bPapers.csv +++ b/libcxx/docs/Status/Cxx2bPapers.csv @@ -1,25 +1,25 @@ -"Paper #","Group","Paper Name","Meeting","Status","First released version" +"Paper #","Group","Paper Name","Meeting","Status","First released version","Labels" "`P0881R7 `__","LWG","A Proposal to add stacktrace library","Autumn 2020","","" "`P0943R6 `__","LWG","Support C atomics in C++","Autumn 2020","|Complete|","15.0" "`P1048R1 `__","LWG","A proposal for a type trait to detect scoped enumerations","Autumn 2020","|Complete|","12.0" "`P1679R3 `__","LWG","string contains function","Autumn 2020","|Complete|","12.0" "","","","","","" "`P1682R3 `__","LWG","std::to_underlying for enumerations","February 2021","|Complete|","13.0" -"`P2017R1 `__","LWG","Conditionally borrowed ranges","February 2021","","" +"`P2017R1 `__","LWG","Conditionally borrowed ranges","February 2021","","","|ranges|" "`P2160R1 `__","LWG","Locks lock lockables","February 2021","","" "`P2162R2 `__","LWG","Inheriting from std::variant","February 2021","|Complete|","13.0" "`P2212R2 `__","LWG","Relax Requirements for time_point::clock","February 2021","","" -"`P2259R1 `__","LWG","Repairing input range adaptors and counted_iterator","February 2021","","" +"`P2259R1 `__","LWG","Repairing input range adaptors and counted_iterator","February 2021","","","|ranges|" "","","","","","" "`P0401R6 `__","LWG","Providing size feedback in the Allocator interface","June 2021","|Complete|","15.0" "`P0448R4 `__","LWG","A strstream replacement using span as buffer","June 2021","","" "`P1132R8 `__","LWG","out_ptr - a scalable output pointer abstraction","June 2021","","" "`P1328R1 `__","LWG","Making std::type_info::operator== constexpr","June 2021","","" -"`P1425R4 `__","LWG","Iterators pair constructors for stack and queue","June 2021","|Complete|","14.0" +"`P1425R4 `__","LWG","Iterators pair constructors for stack and queue","June 2021","|Complete|","14.0","|ranges|" "`P1518R2 `__","LWG","Stop overconstraining allocators in container deduction guides","June 2021","|Complete|","13.0" -"`P1659R3 `__","LWG","starts_with and ends_with","June 2021","","" +"`P1659R3 `__","LWG","starts_with and ends_with","June 2021","","","|ranges|" "`P1951R1 `__","LWG","Default Arguments for pair Forwarding Constructor","June 2021","|Complete|","14.0" -"`P1989R2 `__","LWG","Range constructor for std::string_view","June 2021","|Complete|","14.0" +"`P1989R2 `__","LWG","Range constructor for std::string_view","June 2021","|Complete|","14.0","|ranges|" "`P2136R3 `__","LWG","invoke_r","June 2021","","" "`P2166R1 `__","LWG","A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr","June 2021","|Complete|","13.0" "","","","","","" @@ -33,7 +33,7 @@ "`P2077R3 `__","LWG","Heterogeneous erasure overloads for associative containers","October 2021","","" "`P2251R1 `__","LWG","Require ``span`` & ``basic_string_view`` to be Trivially Copyable","October 2021","|Complete|","14.0" "`P2301R1 `__","LWG","Add a ``pmr`` alias for ``std::stacktrace``","October 2021","","" -"`P2321R2 `__","LWG","``zip``","October 2021","|In Progress|","" +"`P2321R2 `__","LWG","``zip``","October 2021","|In Progress|","","|ranges|" "`P2340R1 `__","LWG","Clarifying the status of the 'C headers'","October 2021","","" "`P2393R1 `__","LWG","Cleaning up ``integer``-class types","October 2021","","" "`P2401R0 `__","LWG","Add a conditional ``noexcept`` specification to ``std::exchange``","October 2021","|Complete|","14.0" @@ -41,51 +41,51 @@ "`P0323R12 `__","LWG","``std::expected``","February 2022","","" "`P0533R9 `__","LWG","``constexpr`` for ```` and ````","February 2022","","" "`P0627R6 `__","LWG","Function to mark unreachable code","February 2022","|Complete|","15.0" -"`P1206R7 `__","LWG","``ranges::to``: A function to convert any range to a container","February 2022","","" +"`P1206R7 `__","LWG","``ranges::to``: A function to convert any range to a container","February 2022","","","|ranges|" "`P1413R3 `__","LWG","Deprecate ``std::aligned_storage`` and ``std::aligned_union``","February 2022","","" -"`P2255R3 `__","LWG","A type trait to detect reference binding to temporary","February 2022","","" +"`P2255R2 `__","LWG","A type trait to detect reference binding to temporary","February 2022","","" "`P2273R3 `__","LWG","Making ``std::unique_ptr`` constexpr","February 2022","|Partial| [#note-P2273]_","16.0" -"`P2387R3 `__","LWG","Pipe support for user-defined range adaptors","February 2022","","" -"`P2440R1 `__","LWG","``ranges::iota``, ``ranges::shift_left`` and ``ranges::shift_right``","February 2022","","" -"`P2441R2 `__","LWG","``views::join_view``","February 2022","","" -"`P2442R1 `__","LWG","Windowing range adaptors: ``views::chunk`` and ``views::slide``","February 2022","","" -"`P2443R1 `__","LWG","``views::chunk_by``","February 2022","","" +"`P2387R3 `__","LWG","Pipe support for user-defined range adaptors","February 2022","","","|ranges|" +"`P2440R1 `__","LWG","``ranges::iota``, ``ranges::shift_left`` and ``ranges::shift_right``","February 2022","","","|ranges|" +"`P2441R2 `__","LWG","``views::join_with``","February 2022","","","|ranges|" +"`P2442R1 `__","LWG","Windowing range adaptors: ``views::chunk`` and ``views::slide``","February 2022","","","|ranges|" +"`P2443R1 `__","LWG","``views::chunk_by``","February 2022","","","|ranges|" "","","","","","" "`P0009R18 `__","LWG","mdspan: A Non-Owning Multidimensional Array Reference","July 2022","","" "`P0429R9 `__","LWG","A Standard ``flat_map``","July 2022","","" "`P1169R4 `__","LWG","``static operator()``","July 2022","","" "`P1222R4 `__","LWG","A Standard ``flat_set``","July 2022","","" -"`P1223R5 `__","LWG","``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()``","July 2022","","" +"`P1223R5 `__","LWG","``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()``","July 2022","","","|ranges|" "`P1467R9 `__","LWG","Extended ``floating-point`` types and standard names","July 2022","","" "`P1642R11 `__","LWG","Freestanding ``[utilities]``, ``[ranges]``, and ``[iterators]``","July 2022","","" -"`P1899R3 `__","LWG","``stride_view``","July 2022","","" +"`P1899R3 `__","LWG","``stride_view``","July 2022","","","|ranges|" "`P2093R14 `__","LWG","Formatted output","July 2022","","" "`P2165R4 `__","LWG","Compatibility between ``tuple``, ``pair`` and ``tuple-like`` objects","July 2022","","" -"`P2278R4 `__","LWG","``cbegin`` should always return a constant iterator","July 2022","","" -"`P2286R8 `__","LWG","Formatting Ranges","July 2022","|Partial|","" +"`P2278R4 `__","LWG","``cbegin`` should always return a constant iterator","July 2022","","","|ranges|" +"`P2286R8 `__","LWG","Formatting Ranges","July 2022","|Partial|","","|format| |ranges|" "`P2291R3 `__","LWG","Add Constexpr Modifiers to Functions ``to_chars`` and ``from_chars`` for Integral Types in ```` Header","July 2022","|Complete|","16.0" -"`P2302R4 `__","LWG","``std::ranges::contains``","July 2022","","" -"`P2322R6 `__","LWG","``ranges::fold``","July 2022","","" -"`P2374R4 `__","LWG","``views::cartesian_product``","July 2022","","" +"`P2302R4 `__","LWG","``std::ranges::contains``","July 2022","","","|ranges|" +"`P2322R6 `__","LWG","``ranges::fold``","July 2022","","","|ranges|" +"`P2374R4 `__","LWG","``views::cartesian_product``","July 2022","","","|ranges|" "`P2404R3 `__","LWG","Move-only types for ``equality_comparable_with``, ``totally_ordered_with``, and ``three_way_comparable_with``","July 2022","","" -"`P2408R5 `__","LWG","Ranges iterators as inputs to non-Ranges algorithms","July 2022","","" +"`P2408R5 `__","LWG","Ranges iterators as inputs to non-Ranges algorithms","July 2022","","","|ranges|" "`P2417R2 `__","LWG","A more ``constexpr`` ``bitset``","July 2022","|Complete|","16.0" "`P2419R2 `__","LWG","Clarify handling of encodings in localized formatting of chrono types","July 2022","","" "`P2438R2 `__","LWG","``std::string::substr() &&``","July 2022","|Complete|","16.0" "`P2445R1 `__","LWG","``forward_like``","July 2022","|Complete|","16.0" -"`P2446R2 `__","LWG","``views::as_rvalue``","July 2022","","" +"`P2446R2 `__","LWG","``views::as_rvalue``","July 2022","","","|ranges|" "`P2460R2 `__","LWG","Relax requirements on ``wchar_t`` to match existing practices","July 2022","","" "`P2465R3 `__","LWG","Standard Library Modules ``std`` and ``std.compat``","July 2022","","" "`P2467R1 `__","LWG","Support exclusive mode for ``fstreams``","July 2022","","" -"`P2474R2 `__","LWG","``views::repeat``","July 2022","","" -"`P2494R2 `__","LWG","Relaxing range adaptors to allow for move only types","July 2022","","" -"`P2499R0 `__","LWG","``string_view`` range constructor should be ``explicit``","July 2022","|Complete|","16.0" -"`P2502R2 `__","LWG","``std::generator``: Synchronous Coroutine Generator for Ranges","July 2022","","" +"`P2474R2 `__","LWG","``views::repeat``","July 2022","","","|ranges|" +"`P2494R2 `__","LWG","Relaxing range adaptors to allow for move only types","July 2022","","","|ranges|" +"`P2499R0 `__","LWG","``string_view`` range constructor should be ``explicit``","July 2022","|Complete|","16.0","|ranges|" +"`P2502R2 `__","LWG","``std::generator``: Synchronous Coroutine Generator for Ranges","July 2022","","","|ranges|" "`P2508R1 `__","LWG","Exposing ``std::basic-format-string``","July 2022","|Complete|","15.0" "`P2513R4 `__","LWG","``char8_t`` Compatibility and Portability Fixes","July 2022","","" "`P2517R1 `__","LWG","Add a conditional ``noexcept`` specification to ``std::apply``","July 2022","","" -"`P2520R0 `__","LWG","``move_iterator`` should be a random access iterator","July 2022","","" -"`P2540R1 `__","LWG","Empty Product for certain Views","July 2022","","" +"`P2520R0 `__","LWG","``move_iterator`` should be a random access iterator","July 2022","","","|ranges|" +"`P2540R1 `__","LWG","Empty Product for certain Views","July 2022","","","|ranges|" "`P2549R1 `__","LWG","``std::unexpected`` should have ``error()`` as member accessor","July 2022","","" "`P2553R1 `__","LWG","Make ``mdspan`` ``size_type`` controllable","July 2022","","" "`P2554R0 `__","LWG","C-Array Interoperability of MDSpan","July 2022","","" diff --git a/libcxx/docs/Status/Ranges.rst b/libcxx/docs/Status/Ranges.rst --- a/libcxx/docs/Status/Ranges.rst +++ b/libcxx/docs/Status/Ranges.rst @@ -1,4 +1,4 @@ -.. ranges-status: +a. ranges-status: ================================ libc++ Ranges Status @@ -13,44 +13,36 @@ Overview ================================ -This document contains the status of the C++20 Ranges library in libc++. It is used to -track both the status of the sub-projects of the ranges library and who is assigned to -these sub-projects. This is imperative to effective implementation so that work is not +This document contains the status of the Ranges library in libc++. It is used to track +both the status of the sub-projects of the ranges library and who is assigned to these +sub-projects. This is imperative to effective implementation so that work is not duplicated and implementors are not blocked by each other. If you are interested in contributing to the libc++ Ranges library, please send a message to the #libcxx channel in the LLVM discord. Please *do not* start working on any of the -assigned items below. +*assigned* items below. -Sub-Projects in the One Ranges Proposal +Major features ======================================= .. csv-table:: - :file: RangesPaper.csv + :file: RangesMajorFeatures.csv :header-rows: 1 :widths: auto +Views +======================================= + .. csv-table:: - :file: RangesAlgorithms.csv + :file: RangesViews.csv :header-rows: 1 :widths: auto - -Misc. Items and TODOs -==================================== - -(Note: files with required updates will contain the TODO at the beginning of the list item -so they can be easily found via global search.) - - * TODO(XX_SPACESHIP_CONCEPTS): when spaceship support is added to various STL types, we need to update some concept tests. - -Paper and Issue Status -==================================== - -(Note: stolen from MSVC `here `_.) +Algorithms +======================================= .. csv-table:: - :file: RangesIssues.csv + :file: RangesAlgorithms.csv :header-rows: 1 :widths: auto diff --git a/libcxx/docs/Status/RangesAlgorithms.csv b/libcxx/docs/Status/RangesAlgorithms.csv --- a/libcxx/docs/Status/RangesAlgorithms.csv +++ b/libcxx/docs/Status/RangesAlgorithms.csv @@ -1,100 +1,12 @@ -Category,Algorithm,Assignee,CL,Complete -Search,any_of,Nikolas Klauser,`D123016 `_,✅ -Search,all_of,Nikolas Klauser,`D123016 `_,✅ -Search,none_of,Nikolas Klauser,`D123016 `_,✅ -Search,find,Nikolas Klauser,`D121248 `_,✅ -Search,find_if,Nikolas Klauser,`D121248 `_,✅ -Search,find_if_not,Nikolas Klauser,`D121248 `_,✅ -Search,find_first_of,Nikolas Klauser,`D126529 `_,✅ -Search,adjacent_find,Nikolas Klauser,`D126610 `_,✅ -Search,mismatch,Nikolas Klauser,`D117817 `_,✅ -Search,equal,Nikolas Klauser,`D123681 `_,✅ -Search,lexicographical_compare,Nikolas Klauser,`D127130 `_,✅ -Search,partition_point,Konstantin Varlamov,`D130070 `_,✅ -Search,lower_bound,Nikolas Klauser,`D121964 `_,✅ -Search,upper_bound,Nikolas Klauser,`D121964 `_,✅ -Search,equal_range,Hui Xie,`D129796 `_,✅ -Search,binary_search,Nikolas Klauser,`D121964 `_,✅ -Search,min,Nikolas Klauser,`D119589 `_,✅ -Search,max,Nikolas Klauser,`D122002 `_,✅ -Search,minmax,Nikolas Klauser,`D120637 `_,✅ -Search,min_element,Nikolas Klauser,`D117025 `_,✅ -Search,max_element,Nikolas Klauser,`D117523 `_,✅ -Search,minmax_element,Nikolas Klauser,`D120637 `_,✅ -Search,count,Nikolas Klauser,`D121523 `_,✅ -Search,count_if,Nikolas Klauser,`D121523 `_,✅ -Search,search,Nikolas Klauser,`D124079 `_,✅ -Search,search_n,Nikolas Klauser,`D124079 `_,✅ -Search,find_end,Nikolas Klauser,`D124079 `_,✅ -Read-only,is_partitioned,Nikolas Klauser,`D124440 `_,✅ -Read-only,is_sorted,Nikolas Klauser,`D125608 `_,✅ -Read-only,is_sorted_until,Nikolas Klauser,`D125608 `_,✅ -Read-only,includes,Hui Xie,`D130116 `_,✅ -Read-only,is_heap,Konstantin Varlamov,`D130547 `_,✅ -Read-only,is_heap_until,Konstantin Varlamov,`D130547 `_,✅ -Read-only,clamp,Nikolas Klauser,`D126193 `_,✅ -Read-only,is_permutation,Nikolas Klauser,`D127194 `_,✅ -Read-only,for_each,Nikolas Klauser,`D124332 `_,✅ -Read-only,for_each_n,Nikolas Klauser,`D124332 `_,✅ -Write,copy,Nikolas Klauser,`D122982 `_,✅ -Write,copy_if,Nikolas Klauser,`D122982 `_,✅ -Write,copy_n,Nikolas Klauser,`D122982 `_,✅ -Write,copy_backward,Nikolas Klauser,`D122982 `_,✅ -Write,move,Nikolas Klauser,`D126616 `_,✅ -Write,move_backward,Nikolas Klauser,`D126616 `_,✅ -Write,fill,Nikolas Klauser,`D123462 `_,✅ -Write,fill_n,Nikolas Klauser,`D123462 `_,✅ -Write,transform,Nikolas Klauser,`D122173 `_,✅ -Write,generate,Konstantin Varlamov,`D130552 `_,✅ -Write,generate_n,Konstantin Varlamov,`D130552 `_,✅ -Write,remove_copy,Nikolas Klauser,`D130599 `_,✅ -Write,remove_copy_if,Nikolas Klauser,`D130599 `_,✅ -Write,replace,Nikolas Klauser,`D126283 `_,✅ -Write,replace_if,Nikolas Klauser,`D126283 `_,✅ -Write,replace_copy,Nikolas Klauser,`D129806 `_,✅ -Write,replace_copy_if,Nikolas Klauser,`D129806 `_,✅ -Write,swap_ranges,Nikolas Klauser,`D116303 `_,✅ -Write,reverse_copy,Nikolas Klauser,`D127211 `_,✅ -Write,rotate_copy,Nikolas Klauser,`D127211 `_,✅ -Write,sample,Konstantin Varlamov,`D130865 `_,✅ -Write,unique_copy,Hui Xie,`D130404 `_,✅ -Write,partition_copy,Konstantin Varlamov,`D130070 `_,✅ -Write,partial_sort_copy,Konstantin Varlamov,`D130532 `_,✅ -Merge,merge,Hui Xie,`D128611 `_,✅ -Merge,set_difference,Hui Xie,`D128983 `_,✅ -Merge,set_intersection,Hui Xie,`D129233 `_,✅ -Merge,set_symmetric_difference,Hui Xie,`D129520 `_,✅ -Merge,set_union,Hui Xie,`D129657 `_,✅ -Permutation,remove,Nikolas Klauser,`D128618 `_,✅ -Permutation,remove_if,Nikolas Klauser,`D128618 `_,✅ -Permutation,reverse,Nikolas Klauser,`D125752 `_,✅ -Permutation,rotate,Konstantin Varlamov and Nikolas Klauser,`D130758 `_,✅ -Permutation,shuffle,Konstantin Varlamov,`D130321 `_,✅ -Permutation,unique,Hui Xie,`D130404 `_,✅ -Permutation,partition,Konstantin Varlamov,`D129624 `_,✅ -Permutation,stable_partition,Konstantin Varlamov,`D129624 `_,✅ -Permutation,sort,Konstantin Varlamov,`D127557 `_,✅ -Permutation,stable_sort,Konstantin Varlamov,`D127834 `_,✅ -Permutation,nth_element,Konstantin Varlamov,`D128149 `_,✅ -Permutation,partial_sort,Konstantin Varlamov,`D128744 `_,✅ -Permutation,inplace_merge,Hui Xie,`D130627 `_,✅ -Permutation,make_heap,Konstantin Varlamov,`D128115 `_,✅ -Permutation,push_heap,Konstantin Varlamov,`D128115 `_,✅ -Permutation,pop_heap,Konstantin Varlamov,`D128115 `_,✅ -Permutation,sort_heap,Konstantin Varlamov,`D128115 `_,✅ -Permutation,next_permutation,Nikolas Klauser,`D129859 `_,✅ -Permutation,prev_permutation,Nikolas Klauser,`D129859 `_,✅ -Uninitialised memory,uninitialized_copy,Konstantin Varlamov,`D116023 `_,✅ -Uninitialised memory,uninitialized_copy_n,Konstantin Varlamov,`D116023 `_,✅ -Uninitialised memory,uninitialized_fill,Konstantin Varlamov,`D115626 `_,✅ -Uninitialised memory,uninitialized_fill_n,Konstantin Varlamov,`D115626 `_,✅ -Uninitialised memory,uninitialized_move,Konstantin Varlamov,`D116023 `_,✅ -Uninitialised memory,uninitialized_move_n,Konstantin Varlamov,`D116023 `_,✅ -Uninitialised memory,uninitialized_default_construct,Konstantin Varlamov,`D115315 `_,✅ -Uninitialised memory,uninitialized_default_construct_n,Konstantin Varlamov,`D115315 `_,✅ -Uninitialised memory,uninitialized_value_construct,Konstantin Varlamov,`D115626 `_,✅ -Uninitialised memory,uninitialized_value_construct_n,Konstantin Varlamov,`D115626 `_,✅ -Uninitialised memory,destroy,Konstantin Varlamov,`D116078 `_,✅ -Uninitialised memory,destroy_n,Konstantin Varlamov,`D116078 `_,✅ -Uninitialised memory,destroy_at,Konstantin Varlamov,`D116078 `_,✅ -Uninitialised memory,construct_at,Konstantin Varlamov,`D116078 `_,✅ +Standard,Algorithm,Assignee,CL,Status +C++20,all C++20 algorithms,N/A,N/A,✅ +C++23,`find_last `_,Unassigned,No patch yet,Not started +C++23,`find_last_if `_,Unassigned,No patch yet,Not started +C++23,`find_last_if_not `_,Unassigned,No patch yet,Not started +C++23,`starts_with `_,Unassigned,No patch yet,Not started +C++23,`ends_with `_,Unassigned,No patch yet,Not started +C++23,`shift_left `_,Unassigned,No patch yet,Not started +C++23,`shift_right `_,Unassigned,No patch yet,Not started +C++23,`iota (algorithm) `_,Unassigned,No patch yet,Not started +C++23,`fold `_,Unassigned,No patch yet,Not started +C++23,`contains `_,Unassigned,No patch yet,Not started diff --git a/libcxx/docs/Status/RangesIssues.csv b/libcxx/docs/Status/RangesIssues.csv deleted file mode 100644 --- a/libcxx/docs/Status/RangesIssues.csv +++ /dev/null @@ -1,33 +0,0 @@ -"Number","Name","Status","First released version" -`P0896R4 `__,,|Complete|,15.0 -`P1035R7 `__,Input Range Adaptors,, -`P1207R4 `__,Movability Of Single-Pass Iterators,|Complete|,15.0 -`P1243R4 `__,Rangify New Algorithms,|Complete|,15.0 -`P1248R1 `__,Fixing Relations,|Complete|,13.0 -`P1252R2 `__,Ranges Design Cleanup,|Complete|,15.0 -`P1391R4 `__,Range Constructor For string_view,|Complete|,14.0 -`P1456R1 `__,Move-Only Views,|Complete|,15.0 -`P1474R1 `__,Helpful Pointers For contiguous_iterator,|Complete|,15.0 -`P1522R1 `__,Iterator Difference Type And Integer Overflow,|Complete|,15.0 -`P1523R1 `__,Views And Size Types,|Complete|,15.0 -`P1638R1 `__,basic_istream_view::iterator Should Not Be Copyable,, -`P1716R3 `__,Range Comparison Algorithms Are Over-Constrained,|Complete|,15.0 -`P1739R4 `__,Avoiding Template Bloat For Ranges,|Complete|,15.0 -`P1862R1 `__,Range Adaptors For Non-Copyable Iterators,, -`P1870R1 `__,forwarding-range is too subtle,|Complete|,15.0 -`P1871R1 `__,Concept traits should be named after concepts,|Complete|,14.0 -`P1878R1 `__,Constraining Readable Types,|Complete|,15.0 -`P1970R2 `__,Consistency for size() functions: Add ranges::ssize,|Complete|,15.0 -`P1983R0 `__,"Wording for GB301, US296, US292, US291, and US283",|Complete|,15.0 -`P1994R1 `__,elements_view Needs Its Own sentinel,, -`P2091R0 `__,Fixing Issues With Range Access CPOs,|Complete|,15.0 -`P2106R0 `__,Alternative wording for GB315 and GB316,|Complete|,15.0 - -`P2325R3 `__,Views should not be required to be default constructible ,, -`P2328R1 `__,join_view should join all views of ranges,|Complete|,14.0 -`P2210R2 `__,Superior String Splitting,, -`P2281R1 `__,Clarifying range adaptor objects,|Complete|,14.0 -`P2367R0 `__,Remove misuses of list-initialization from Clause 24,, - -`P2415 `__,"What is a ``view``",|Complete|,14.0 -`P2432 `__,"Fix ``istream_view``",, diff --git a/libcxx/docs/Status/RangesMajorFeatures.csv b/libcxx/docs/Status/RangesMajorFeatures.csv new file mode 100644 --- /dev/null +++ b/libcxx/docs/Status/RangesMajorFeatures.csv @@ -0,0 +1,4 @@ +Standard,Name,Assignee,CL,Status +C++23,`ranges::to `_,Unassigned,No patch yet,Not started +C++23,`Pipe support for user-defined range adaptors `_,Unassigned,No patch yet,Not started +C++23,`Formatting Ranges `_,Mark de Wever,Various,In progress diff --git a/libcxx/docs/Status/RangesPaper.csv b/libcxx/docs/Status/RangesPaper.csv deleted file mode 100644 --- a/libcxx/docs/Status/RangesPaper.csv +++ /dev/null @@ -1,161 +0,0 @@ -Section,Description,Dependencies,Assignee,Complete -`[tuple.helper] `_,`Update includes. `_,None,Konstantin Varlamov,✅ -`[range.cmp] `_,"| `ranges::equal_to `_ -| `ranges::not_equal_to `_ -| `ranges::less `_ -| `ranges::greater `_ -| `ranges::less_equal `_ -| `ranges::greater_equal `_",None,Zoe Carver,✅ -`[readable.traits] `_,"| `indirectly_readable_traits `_ -| `iter_value_t `_",None,Christopher Di Bella,✅ -`[incrementable.traits] `_,"| `incrementable_traits `_ -| `iter_difference_t `_",,Christopher Di Bella,✅ -`[iterator.traits] `_,`Updates to iterator_traits `_,"| indirectly_readable_traits -| incrementable_traits",Christopher Di Bella,✅ -`[special.mem.concepts] `_,"| `nothrow-input-iterator `_ -| `nothrow-sentinel-for `_ -| `nothrow-input-range `_ -| `nothrow-forward-iterator `_ -| `nothrow-forward-range `_","| [iterator.concepts] -| [range.refinements]",Konstantin Varlamov,✅ -`[specialized.algorithms] `_,"| `ranges::uninitialized_default_construct `_ -| `ranges::uninitialized_default_construct_n `_ -| `ranges::uninitialized_value_construct `_ -| `ranges::uninitialized_value_construct_n `_ -| `ranges::uninitialized_copy `_ -| `ranges::uninitialized_copy_n `_ -| `ranges::uninitialized_move `_ -| `ranges::uninitialized_move_n `_ -| `ranges::uninitialized_fill `_ -| `ranges::uninitialized_fill_n `_ -| `ranges::construct_at `_ -| `ranges::destroy `_ -| `ranges::destroy_at `_ -| `ranges::destroy_n `_",[special.mem.concepts],Konstantin Varlamov,✅ -`[strings] `_,`Adds begin/end and updates const_iterator. `_,[iterator.concepts],Konstantin Varlamov,✅ -`[views.span] `_,`Same as [strings] `_,[iterator.concepts],Konstantin Varlamov,✅ -`[iterator.cust.move] `_,`ranges::iter_move `_,,Zoe Carver,✅ -`[iterator.cust.swap] `_,`ranges::iter_swap `_,iter_value_t,Zoe Carver,✅ -`[iterator.concepts] `_,"| `indirectly_readable `_ -| `indirectly_writable `_ -| `weakly_incrementable `_ -| `incrementable `_ -| `input_or_output_iterator `_ -| `sentinel_for `_ -| `sized_sentinel_for `_ -| `input_iterator `_ -| `output_iterator `_ -| `forward_iterator `_ -| `bidirectional_iterator `_ -| `random_access_iterator `_ -| `contiguous_iterator `_",,Various,✅ -`[indirectcallable.indirectinvocable] `_," -| `indirectly_unary_invocable `_ -| `indirectly_regular_unary_invocable `_ -| `indirectly_unary_predicate `_ -| `indirectly_binary_predicate `_ -| `indirectly_equivalence_relation `_ -| `indirectly_strict_weak_order `_",[readable.traits],Louis Dionne,✅ -`[projected] `_,`ranges::projected `_,[iterator.concepts],Louis Dionne,✅ -`[alg.req] `_: pt. 1,"| `indirectly_movable `_ -| `indirectly_movable_storable `_ -| `indirectly_copyable `_ -| `indirectly_copyable_storable `_",[iterator.concepts],Zoe Carver and Konstantin Varlamov,✅ -`[alg.req] `_: pt. 2,`indirectly_swappable `_,"| [iterator.concepts] -| [iterator.cust.swap]",Zoe Carver,✅ -`[alg.req] `_: pt. 3,`indirectly_comparable `_,[projected],Nikolas Klauser,✅ -`[alg.req] `_: pt. 4,"| `permutable `_ -| `mergeable `_ -| `sortable `_",[iterator.concepts],Konstantin Varlamov,✅ -`[std.iterator.tags] `_,"| `contiguous_iterator_tag `_ -| `iterator_concept specialization for pointers `_ -",[iterator.traits],Eric Fiselier,✅ -`[range.iter.ops] `_,"| `ranges::advance `_ -| `ranges::distance `_ -| `ranges::next `_ -| `ranges::prev `_",[iterator.concepts],Christopher Di Bella and Arthur O'Dwyer,✅ -`[predef.iterators] `_," -| `Updates to reverse_iterator `_ -| `Updates to back_insert_iterator `_ -| `Updates to front_insert_iterator `_ -| `Updates to move_iterator `_","| [iterator.concepts] -| [iterator.cust.swap] -| [iterator.cust.move]",Various,✅ -`[move.sentinel] `_,`move_sentinel `_,[predef.iterators],Arthur O'Dwyer,✅ -`[common.iterator] `_,`common_iterator `_,"| [iterator.concepts] -| [iterator.cust.swap] -| [iterator.cust.move]",Zoe Carver,✅ -`[default.sentinel] `_,`std::default_sentinel_t `_,No dependencies,Zoe Carver,✅ -`[counted.iterator] `_,`counted_iterator `_,"| [iterator.concepts] -| [iterator.cust.swap] -| [iterator.cust.move] -| [default.sentinels]",Zoe Carver,✅ -`[stream.iterators] `_," -| `Updates to istream_iterator `_ -| `Updates to ostream_iterator `_ -| `Updates to istreambuf_iterator `_ -| `Updates to ostreambuf_iterator `_ -",[default.sentinels],Various,✅ -`[range.access] `_,"| `ranges::begin `_ -| `ranges::end `_ -| `range::cbegin `_ -| `ranges::cend `_ -| `ranges::rbegin `_ -| `ranges::rend `_ -| `ranges::crbegin `_ -| `ranges::crend `_ -| `ranges::size `_ -| `ranges::ssize `_ -| `ranges::empty `_ -| `ranges::data `_ -| `ranges::cdata `_",[iterator.concepts],Various,✅ -`[range.range] `_,"| `ranges::range `_ -| `ranges::borrowed_range `_ -| `ranges::enable_borrowed_range `_ -| `ranges::iterator_t `_ -| `ranges::sentinel_t `_ -| `ranges::range_difference_t `_ -| `ranges::range_size_t `_ -| `ranges::range_value_t `_ -| `ranges::range_reference_t `_ -| `ranges::range_rvalue_reference_t `_",[range.access],Christopher Di Bella,✅ -`[range.sized] `_,"| `ranges::sized_range `_ -| `ranges::disable_sized_range `_","| [range.primitives] -| [range.range]",Christopher Di Bella,✅ -`[range.view] `_,"| `ranges::enable_view `_ -| `ranges::view_base `_ -| `ranges::view `_",[range.range],Louis Dionne,✅ -`[range.refinements] `_,"| `ranges::output_range `_ -| `ranges::input_range `_ -| `ranges::forward_range `_ -| `ranges::bidirectional_range `_ -| `ranges::random_access_range `_ -| `ranges::contiguous_range `_ -| `ranges::common_range `_",[range.range],Christopher Di Bella,✅ -`[range.refinements]`_,`ranges::viewable_range `_,[range.range],Louis Dionne,✅ -`[range.utility.helpers] `_,"| `simple-view `_ -| `has-arrow `_ -| `not-same-as `_","| [range.range] -| [iterator.concept.input]",Zoe Carver,✅ -`[view.interface] `_,"`ranges::view_interface `_","| [ranges.range] -| [range.view] -| [range.iterator.op.prev] -| [range.refinements]",Zoe Carver,✅ -`[range.subrange] `_,`ranges::subrange `_,[view.interface],Zoe Carver,✅ -`[range.dangling] `_,"| `ranges::dangling `_ -| `ranges::borrowed_iterator_t `_ -| `ranges::borrowed_subrange_t `_","| [range.range] -| [range.subrange]",Christopher Di Bella,✅ -`[range.empty] `_,`empty_view `_,[view.interface],Zoe Carver,✅ -`[range.single] `_,`single_view `_,[view.interface],Zoe Carver,✅ -`[range.iota] `_,`iota_view `_,[range.all],Zoe Carver,✅ -`[range.all] `_,`view::all `_,"[range.subrange], [range.view.ref]",Zoe Carver,✅ -`[range.ref.view] `_,`ref_view `_,[view.interface],Zoe Carver,✅ -`[range.filter] `_,`filter_view `_,[range.all],Louis Dionne,✅ -`[range.transform] `_,`transform_view `_,[range.all],Zoe Carver,✅ -`[range.take] `_,`take_view `_,[range.all],Zoe Carver,✅ -`[range.join] `_,`join_view `_,[range.all],Zoe Carver,✅ -`[range.split] `_,`split_view (renamed to lazy_split_view by P2210) `_,[range.all],Zoe Carver and Konstantin Varlamov,✅ -`[range.counted] `_,`view::counted `_,[range.subrange],Zoe Carver,✅ -`[range.common] `_,`common_view `_,[range.all],Zoe Carver,✅ -`[range.reverse] `_,`reverse_view `_,[range.all],Zoe Carver,✅ diff --git a/libcxx/docs/Status/RangesViews.csv b/libcxx/docs/Status/RangesViews.csv new file mode 100644 --- /dev/null +++ b/libcxx/docs/Status/RangesViews.csv @@ -0,0 +1,39 @@ +Standard,View,Assignee,CL,Status +C++20,`empty `_,Zoe Carver,`D103208 `_,✅ +C++20,`single `_,Zoe Carver,`D106840 `_,✅ +C++20,`iota (view) `_,Zoe Carver,`D107396 `_,✅ +C++20,`all `_,Zoe Carver,`D102028 `_,✅ +C++20,`ref_view `_,Zoe Carver,`D102020 `_,✅ +C++20,`owning_view `_,Arthur O'Dwyer,`D116894 `_,✅ +C++20,`filter `_,Louis Dionne,`D109086 `_,✅ +C++20,`transform `_,Zoe Carver,`D103056 `_,✅ +C++20,`take `_,Zoe Carver,`D106507 `_,✅ +C++20,`take_while `_,Hui Xie,`D134952 `_,✅ +C++20,`drop `_,Zoe Carver,`D102037 `_,✅ +C++20,`drop_while `_,Hui Xie,`D135460 `_,✅ +C++20,`join `_,Zoe Carver,`D107671 `_,✅ +C++20,`split `_,Unassigned,No patch yet,Not started +C++20,`lazy_split `_,Zoe Carver and Konstantin Varlamov,`D107500 `_,✅ +C++20,`counted `_,Zoe Carver,`D106923 `_,✅ +C++20,`common `_,Zoe Carver,`D105753 `_,✅ +C++20,`reverse `_,Zoe Carver,`D107096 `_,✅ +C++20,`elements / keys / values `_,Hui Xie,`D136268 `_,In progress +C++20,`istream `_,Hui Xie,`D133317 `_,✅ +,,,, +,,,, +,,,, +,,,, +,,,, +C++23,`repeat `_,Unassigned,No patch yet,Not started +C++23,`cartesian_product `_,Unassigned,No patch yet,Not started +C++23,`zip `_,Hui Xie,`D122806 `_,✅ +C++23,`zip_transform `_,Hui Xie,No patch yet,Not started +C++23,`adjacent `_,Hui Xie,No patch yet,Not started +C++23,`adjacent_transform `_,Hui Xie,No patch yet,Not started +C++23,`join_with `_,Unassigned,No patch yet,Not started +C++23,`slide `_,Unassigned,No patch yet,Not started +C++23,`chunk `_,Unassigned,No patch yet,Not started +C++23,`chunk_by `_,Unassigned,No patch yet,Not started +C++23,`as_const `_,Unassigned,No patch yet,Not started +C++23,`as_rvalue `_,Unassigned,No patch yet,Not started +C++23,`stride `_,Unassigned,No patch yet,Not started