diff --git a/libcxx/docs/ReleaseNotes.rst b/libcxx/docs/ReleaseNotes.rst --- a/libcxx/docs/ReleaseNotes.rst +++ b/libcxx/docs/ReleaseNotes.rst @@ -46,6 +46,19 @@ - Implemented P0980R1 (Making ``std::string`` constexpr) +- Marked the following papers as "Complete" (note that some of those might have + been implemented in a previous release but not marked as such): + + - P1207R4 (Movability of Single-pass Iterators); + - P1474R1 (Helpful pointers for ``ContiguousIterator``); + - P1522R1 (Iterator Difference Type and Integer Overflow); + - P1523R1 (Views and Size Types); + - P1456R1 (Move-only views); + - P1870R1 (``forwarding-range`` is too subtle); + - P1878R1 (Constraining Readable Types); + - P1970R2 (Consistency for ``size()`` functions: Add ``ranges::ssize``); + - P1983R0 (Wording for GB301, US296, US292, US291, and US283). + - `pop_heap` now uses an algorithm known as "bottom-up heapsort" or "heapsort with bounce" to reduce the number of comparisons, and rearranges elements using move-assignment instead of `swap`. 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 @@ -6,7 +6,7 @@ "`2783 `__","``stack::emplace()``\ and ``queue::emplace()``\ should return ``decltype(auto)``\ ","Toronto","|Complete|","" "`2932 `__","Constraints on parallel algorithm implementations are underspecified","Toronto","","" "`2937 `__","Is ``equivalent(""existing_thing"", ""not_existing_thing"")``\ an error","Toronto","|Complete|","" -"`2940 `__","``result_of``\ specification also needs a little cleanup","Toronto","","" +"`2940 `__","``result_of``\ specification also needs a little cleanup","Toronto","|Nothing To Do|","" "`2942 `__","LWG 2873's resolution missed ``weak_ptr::owner_before``\ ","Toronto","|Complete|","" "`2954 `__","Specialization of the convenience variable templates should be prohibited","Toronto","|Complete|","" "`2961 `__","Bad postcondition for ``set_default_resource``\ ","Toronto","","" @@ -109,7 +109,7 @@ "`3031 `__","Algorithms and predicates with non-const reference arguments","San Diego","","" "`3037 `__","``polymorphic_allocator``\ and incomplete types","San Diego","","" "`3038 `__","``polymorphic_allocator::allocate``\ should not allow integer overflow to create vulnerabilities","San Diego","|Complete|","14.0" -"`3054 `__","``uninitialized_copy``\ appears to not be able to meet its exception-safety guarantee","San Diego","","" +"`3054 `__","``uninitialized_copy``\ appears to not be able to meet its exception-safety guarantee","San Diego","|Nothing To Do|","" "`3065 `__","LWG 2989 missed that all ``path``\ 's other operators should be hidden friends as well","San Diego","|Complete|","" "`3096 `__","``path::lexically_relative``\ is confused by trailing slashes","San Diego","|Complete|","" "`3116 `__","``OUTERMOST_ALLOC_TRAITS``\ needs ``remove_reference_t``\ ","San Diego","","" @@ -122,11 +122,12 @@ "`3132 `__","Library needs to ban macros named ``expects``\ or ``ensures``\ ","San Diego","|Nothing To Do|","" "`3134 `__","[fund.ts.v3] LFTSv3 contains extraneous [meta] variable templates that should have been deleted by P09961","San Diego","Resolved by P1210R0","" "`3137 `__","Header for ``__cpp_lib_to_chars``\ ","San Diego","|Complete|","" +"`3140 `__","``COMMON_REF``\ is unimplementable as specified","San Diego","|Nothing To Do|","" "`3145 `__","``file_clock``\ breaks ABI for C++17 implementations","San Diego","|Complete|","" "`3147 `__","Definitions of ""likely"" and ""unlikely"" are likely to cause problems","San Diego","","" "`3148 `__","````\ should be freestanding","San Diego","","" "`3153 `__","``Common``\ and ``common_type``\ have too little in common","San Diego","|Complete|","13.0" -"`3154 `__","``Common``\ and ``CommonReference``\ have a common defect","San Diego","","" +"`3154 `__","``Common``\ and ``CommonReference``\ have a common defect","San Diego","|Nothing To Do|","" "","","","","" "`3012 `__","``atomic``\ is unimplementable for non-``is_trivially_copy_constructible T``\ ","Kona","","" "`3040 `__","``basic_string_view::starts_with``\ *Effects* are incorrect","Kona","|Complete|","" @@ -137,16 +138,16 @@ "`3119 `__","Program-definedness of closure types","Kona","|Nothing To Do|","" "`3133 `__","Modernizing numeric type requirements","Kona","","" "`3144 `__","``span``\ does not have a ``const_pointer``\ typedef","Kona","|Complete|","" -"`3173 `__","Enable CTAD for ``ref-view``\ ","Kona","","","|ranges|" -"`3179 `__","``subrange``\ should always model ``Range``\ ","Kona","","","|ranges|" +"`3173 `__","Enable CTAD for ``ref-view``\ ","Kona","|Complete|","15.0","|ranges|" +"`3179 `__","``subrange``\ should always model ``Range``\ ","Kona","|Nothing To Do|","","|ranges|" "`3180 `__","Inconsistently named return type for ``ranges::minmax_element``\ ","Kona","|Complete|","15.0","|ranges|" -"`3182 `__","Specification of ``Same``\ could be clearer","Kona","","" +"`3182 `__","Specification of ``Same``\ could be clearer","Kona","|Complete|","15.0" "","","","","" "`2899 `__","``is_(nothrow_)move_constructible``\ and ``tuple``\ , ``optional``\ and ``unique_ptr``\ ","Cologne","","" "`3055 `__","``path::operator+=(*single-character*)``\ misspecified","Cologne","|Complete|","7.0" "`3158 `__","``tuple(allocator_arg_t, const Alloc&)``\ should be conditionally explicit","Cologne","|Complete|","10.0" "`3169 `__","``ranges``\ permutation generators discard useful information","Cologne","","","|ranges|" -"`3183 `__","Normative permission to specialize Ranges variable templates","Cologne","","","|ranges|" +"`3183 `__","Normative permission to specialize Ranges variable templates","Cologne","|Nothing To Do|","","|ranges|" "`3184 `__","Inconsistencies in ``bind_front``\ wording","Cologne","|Complete|","13.0" "`3185 `__","Uses-allocator construction functions missing ``constexpr``\ and ``noexcept``\ ","Cologne","","" "`3186 `__","``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful information","Cologne","","","|ranges|" @@ -181,11 +182,11 @@ "`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","","","|ranges|" +"`3259 `__","The definition of *constexpr iterators* should be adjusted","Belfast","|Nothing To Do|","","|ranges|" "`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","","","|ranges|" -"`3277 `__","Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ ","Belfast","","","|ranges|" +"`3276 `__","Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ ","Belfast","|Complete|","15.0","|ranges|" +"`3277 `__","Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ ","Belfast","|Nothing To Do|","","|ranges|" "`3149 `__","``DefaultConstructible``\ should require default initialization","Belfast","|Complete|","13.0" "","","","","" "`1203 `__","More useful rvalue stream insertion","Prague","|Complete|","12.0" @@ -213,22 +214,22 @@ "`3255 `__","``span``\ 's ``array``\ constructor is too strict","Prague","|Complete|","" "`3260 `__","``year_month*``\ arithmetic rejects durations convertible to years","Prague","","","|chrono|" "`3262 `__","Formatting of negative durations is not specified","Prague","","","|chrono| |format|" -"`3264 `__","``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ ","Prague","","","|ranges|" +"`3264 `__","``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ ","Prague","|Complete|","15.0","|ranges|" "`3269 `__","Parse manipulators do not specify the result of the extraction from stream","Prague","","","|chrono|" "`3270 `__","Parsing and formatting ``%j``\ with ``duration``\ s","Prague","","","|chrono| |format|" -"`3280 `__","View converting constructors can cause constraint recursion and are unneeded","Prague","","","|ranges|" -"`3281 `__","Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion","Prague","","","|ranges|" -"`3282 `__","``subrange``\ converting constructor should disallow derived to base conversions","Prague","","","|ranges|" -"`3284 `__","``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negate","Prague","","","|ranges|" -"`3285 `__","The type of a customization point object shall satisfy ``semiregular``\ ","Prague","","" -"`3286 `__","``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range","Prague","","","|ranges|" -"`3291 `__","``iota_view::iterator``\ has the wrong ``iterator_category``\ ","Prague","","","|ranges|" -"`3292 `__","``iota_view``\ is under-constrained","Prague","","","|ranges|" +"`3280 `__","View converting constructors can cause constraint recursion and are unneeded","Prague","|Complete|","15.0","|ranges|" +"`3281 `__","Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion","Prague","|Complete|","15.0","|ranges|" +"`3282 `__","``subrange``\ converting constructor should disallow derived to base conversions","Prague","|Complete|","15.0","|ranges|" +"`3284 `__","``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negate","Prague","|Nothing To Do|","","|ranges|" +"`3285 `__","The type of a customization point object shall satisfy ``semiregular``\ ","Prague","|Nothing To Do|","","|ranges|" +"`3286 `__","``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range","Prague","|Complete|","15.0","|ranges|" +"`3291 `__","``iota_view::iterator``\ has the wrong ``iterator_category``\ ","Prague","|Complete|","15.0","|ranges|" +"`3292 `__","``iota_view``\ is under-constrained","Prague","|Complete|","15.0","|ranges|" "`3294 `__","``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ ","Prague","","","|chrono|" "`3296 `__","Inconsistent default argument for ``basic_regex<>::assign``\ ","Prague","|Complete|","" -"`3299 `__","Pointers don't need customized iterator behavior","Prague","","","|ranges|" +"`3299 `__","Pointers don't need customized iterator behavior","Prague","|Complete|","15.0","|ranges|" "`3300 `__","Non-array ``ssize``\ overload is underconstrained","Prague","","" -"`3301 `__","``transform_view::iterator``\ has incorrect ``iterator_category``\ ","Prague","","","|ranges|" +"`3301 `__","``transform_view::iterator``\ has incorrect ``iterator_category``\ ","Prague","|Complete|","15.0","|ranges|" "`3302 `__","Range adaptor objects ``keys``\ and ``values``\ are unspecified","Prague","","","|ranges|" "`3303 `__","Bad ""``constexpr``\ "" marker for ``destroy/destroy_n``\ ","Prague","","" "`3304 `__","Allocate functions of ``std::polymorphic_allocator``\ should require ``[[nodiscard]]``\ ","Prague","","" @@ -245,8 +246,8 @@ "`3321 `__","``uninitialized_construct_using_allocator``\ should use ``construct_at``\ ","Prague","","" "`3323 `__","``*has-tuple-element*``\ helper concept needs ``convertible_to``\ ","Prague","","","|ranges|" "`3324 `__","Special-case ``std::strong/weak/partial_order``\ for pointers","Prague","|Complete|","14.0","|spaceship|" -"`3325 `__","Constrain return type of transformation function for ``transform_view``\ ","Prague","","","|ranges|" -"`3326 `__","``enable_view``\ has false positives","Prague","|In progress|","","|ranges|" +"`3325 `__","Constrain return type of transformation function for ``transform_view``\ ","Prague","|Complete|","15.0","|ranges|" +"`3326 `__","``enable_view``\ has false positives","Prague","|Complete|","15.0","|ranges|" "`3327 `__","Format alignment specifiers vs. text direction","Prague","|Nothing To Do|","","|format|" "`3328 `__","Clarify that ``std::string``\ is not good for UTF-8","Prague","","" "`3329 `__","``totally_ordered_with``\ both directly and indirectly requires ``common_reference_with``\ ","Prague","|Complete|","13.0" @@ -262,35 +263,35 @@ "`3348 `__","``__cpp_lib_unwrap_ref``\ in wrong header","Prague","|Complete|","12.0" "`3349 `__","Missing ``__cpp_lib_constexpr_complex``\ for P0415R1","Prague","","" "`3350 `__","Simplify return type of ``lexicographical_compare_three_way``\ ","Prague","","","|spaceship|" -"`3351 `__","``ranges::enable_safe_range``\ should not be constrained","Prague","","","|ranges|" +"`3351 `__","``ranges::enable_safe_range``\ should not be constrained","Prague","|Complete|","15.0","|ranges|" "`3352 `__","``strong_equality``\ isn't a thing","Prague","|Nothing To Do|","","|spaceship|" -"`3354 `__","``has_strong_structural_equality``\ has a meaningless definition","Prague","","","|spaceship|" +"`3354 `__","``has_strong_structural_equality``\ has a meaningless definition","Prague","|Nothing To Do|","","|spaceship|" "`3355 `__","The memory algorithms should support move-only input iterators introduced by P1207","Prague","","","|ranges|" "`3356 `__","``__cpp_lib_nothrow_convertible``\ should be ``__cpp_lib_is_nothrow_convertible``\ ","Prague","|Complete|","12.0" "`3358 `__","|sect|\ [span.cons] is mistaken that ``to_address``\ can throw","Prague","","" "`3359 `__","````\ leap second support should allow for negative leap seconds","Prague","","","|chrono|" "`3360 `__","``three_way_comparable_with``\ is inconsistent with similar concepts","Prague","|Nothing To Do|","","|spaceship|" "`3362 `__","Strike ``stop_source``\ 's ``operator!=``\ ","Prague","","" -"`3363 `__","``drop_while_view``\ should opt-out of ``sized_range``\ ","Prague","","","|ranges|" +"`3363 `__","``drop_while_view``\ should opt-out of ``sized_range``\ ","Prague","|Nothing To Do|","","|ranges|" "`3364 `__","Initialize data members of ranges and their iterators","Prague","","","|ranges|" -"`3367 `__","Integer-class conversions should not throw","Prague","","" +"`3367 `__","Integer-class conversions should not throw","Prague","|Nothing To Do|","" "`3369 `__","``span``\ 's deduction-guide for built-in arrays doesn't work","Prague","|Complete|","14.0" "`3371 `__","``visit_format_arg``\ and ``make_format_args``\ are not hidden friends","Prague","|Complete|","14.0","|format|" "`3372 `__","``vformat_to``\ should not try to deduce ``Out``\ twice","Prague","|Complete|","14.0","|format|" "`3373 `__","``{to,from}_chars_result``\ and ``format_to_n_result``\ need the ""we really mean what we say"" wording","Prague","|Complete|","14.0","|format|" "`3374 `__","P0653 + P1006 should have made the other ``std::to_address``\ overload ``constexpr``\ ","Prague","|Complete|","12.0" -"`3375 `__","``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ ","Prague","","","|ranges|" +"`3375 `__","``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ ","Prague","|Complete|","15.0","|ranges|" "`3377 `__","``elements_view::iterator``\ befriends a specialization of itself","Prague","","","|ranges|" -"`3379 `__","""``safe``\ "" in several library names is misleading","Prague","|In Progress|","" -"`3380 `__","``common_type``\ and comparison categories","Prague","","","|spaceship|" -"`3381 `__","``begin``\ and ``data``\ must agree for ``contiguous_range``\ ","Prague","","","|ranges|" +"`3379 `__","""``safe``\ "" in several library names is misleading","Prague","|Complete|","15.0","|ranges|" +"`3380 `__","``common_type``\ and comparison categories","Prague","|Complete|","15.0","|spaceship|" +"`3381 `__","``begin``\ and ``data``\ must agree for ``contiguous_range``\ ","Prague","|Nothing To Do|","","|ranges|" "`3382 `__","NTTP for ``pair``\ and ``array``\ ","Prague","","" "`3383 `__","|sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ ","Prague","","","|chrono|" -"`3384 `__","``transform_view::*sentinel*``\ has an incorrect ``operator-``\ ","Prague","","","|ranges|" -"`3385 `__","``common_iterator``\ is not sufficiently constrained for non-copyable iterators","Prague","","","|ranges|" -"`3387 `__","|sect|\ [range.reverse.view] ``reverse_view``\ unintentionally requires ``range``\ ","Prague","","","|ranges|" +"`3384 `__","``transform_view::*sentinel*``\ has an incorrect ``operator-``\ ","Prague","|Complete|","15.0","|ranges|" +"`3385 `__","``common_iterator``\ is not sufficiently constrained for non-copyable iterators","Prague","|Complete|","15.0","|ranges|" +"`3387 `__","|sect|\ [range.reverse.view] ``reverse_view``\ unintentionally requires ``range``\ ","Prague","|Complete|","15.0","|ranges|" "`3388 `__","``view``\ iterator types have ill-formed ``<=>``\ operators","Prague","","","|ranges|" -"`3389 `__","A move-only iterator still does not have a ``counted_iterator``\ ","Prague","","","|ranges|" +"`3389 `__","A move-only iterator still does not have a ``counted_iterator``\ ","Prague","|Complete|","15.0","|ranges|" "`3390 `__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","Prague","|Complete|","14.0","|ranges|" "`3393 `__","Missing/incorrect feature test macro for coroutines","Prague","|Complete|","14.0" "`3395 `__","Definition for three-way comparison needs to be updated (US 152)","Prague","","","|spaceship|" 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 @@ -111,17 +111,17 @@ "`P1035R7 `__","LWG","Input Range Adaptors","Cologne","","" "`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","","" +"`P1207R4 `__","LWG","Movability of Single-pass Iterators","Cologne","|Complete|","15.0" "`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","","" "`P1423R3 `__","LWG","char8_t backward compatibility remediation","Cologne","|In Progress|","" "`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","","" +"`P1474R1 `__","LWG","Helpful pointers for ContiguousIterator","Cologne","|Complete|","15.0" "`P1502R1 `__","LWG","Standard library header units for C++20","Cologne","","" -"`P1522R1 `__","LWG","Iterator Difference Type and Integer Overflow","Cologne","","" -"`P1523R1 `__","LWG","Views and Size Types","Cologne","","" +"`P1522R1 `__","LWG","Iterator Difference Type and Integer Overflow","Cologne","|Complete|","15.0" +"`P1523R1 `__","LWG","Views and Size Types","Cologne","|Complete|","15.0" "`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","","" @@ -136,7 +136,7 @@ "`P0883R2 `__","LWG","Fixing Atomic Initialization","Belfast","|Complete| [#note-P0883]_","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","* *","" +"`P1456R1 `__","LWG","Move-only views","Belfast","|Complete|","15.0" "`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","* *","" @@ -152,10 +152,10 @@ "`P1862R1 `__","LWG","Ranges adaptors for non-copyable iterators","Belfast","* *","" "`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","|In Progress|","" +"`P1870R1 `__","LWG","forwarding-range is too subtle","Belfast","|Complete|","15.0" "`P1871R1 `__","LWG","Should concepts be enabled or disabled?","Belfast","|Complete|","14.0" "`P1872R0 `__","LWG","span should have size_type, not index_type","Belfast","|Complete|","10.0" -"`P1878R1 `__","LWG","Constraining Readable Types","Belfast","* *","" +"`P1878R1 `__","LWG","Constraining Readable Types","Belfast","|Complete|","15.0" "`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","* *","" @@ -177,12 +177,12 @@ "`P1957R2 `__","CWG","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","Prague","* *","" "`P1963R0 `__","LWG","Fixing US 313","Prague","* *","" "`P1964R2 `__","LWG","Wording for boolean-testable","Prague","|Complete|","13.0" -"`P1970R2 `__","LWG","Consistency for size() functions: Add ranges::ssize","Prague","* *","" +"`P1970R2 `__","LWG","Consistency for size() functions: Add ranges::ssize","Prague","|Complete|","15.0" "`P1973R1 `__","LWG","Rename ""_default_init"" Functions, Rev1","Prague","* *","" "`P1976R2 `__","LWG","Fixed-size span construction from dynamic range","Prague","|Complete|","11.0" "`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","* *","" +"`P1983R0 `__","LWG","Wording for GB301, US296, US292, US291, and US283","Prague","|Complete|","15.0" "`P1994R1 `__","LWG","elements_view needs its own sentinel","Prague","* *","" "`P2002R1 `__","CWG","Defaulted comparison specification cleanups","Prague","* *","" "`P2045R1 `__","LWG","Missing Mandates for the standard library","Prague","* *","" diff --git a/libcxx/docs/Status/RangesIssues.csv b/libcxx/docs/Status/RangesIssues.csv --- a/libcxx/docs/Status/RangesIssues.csv +++ b/libcxx/docs/Status/RangesIssues.csv @@ -1,24 +1,24 @@ "Number","Name","Status","First released version" `P0896R4 `__,,, `P1035R7 `__,Input Range Adaptors,, -`P1207R4 `__,Movability Of Single-Pass Iterators,, +`P1207R4 `__,Movability Of Single-Pass Iterators,|Complete|,15.0 `P1243R4 `__,Rangify New Algorithms,, `P1248R1 `__,Fixing Relations,|Complete|,13.0 `P1252R2 `__,Ranges Design Cleanup,, `P1391R4 `__,Range Constructor For string_view,|Complete|,14.0 -`P1456R1 `__,Move-Only Views,, -`P1474R1 `__,Helpful Pointers For contiguous_iterator,, -`P1522R1 `__,Iterator Difference Type And Integer Overflow,, -`P1523R1 `__,Views And Size Types,, +`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,, `P1739R4 `__,Avoiding Template Bloat For Ranges,|Complete|,15.0 `P1862R1 `__,Range Adaptors For Non-Copyable Iterators,, -`P1870R1 `__,safe_range,, +`P1870R1 `__,forwarding-range is too subtle,|Complete|,15.0 `P1871R1 `__,disable_sized_sentinel_for,|Complete|,14.0 -`P1878R1 `__,Constraining Readable Types,, -`P1970R2 `__,ranges::ssize,, -`P1983R0 `__,Fixing Minor Ranges Issues,, +`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,, `P2106R0 `__,Range Algorithm Result Types,,