diff --git a/libcxx/docs/Status/Cxx17Issues.csv b/libcxx/docs/Status/Cxx17Issues.csv index af3dee9ca50c9..e6a232980cf7c 100644 --- a/libcxx/docs/Status/Cxx17Issues.csv +++ b/libcxx/docs/Status/Cxx17Issues.csv @@ -141,7 +141,7 @@ "`LWG2441 `__","Exact-width atomic typedefs should be provided","2016-06 (Oulu)","|Complete|","","" "`LWG2451 `__","[fund.ts.v2] optional should 'forward' T's implicit conversions","2016-06 (Oulu)","|Nothing To Do|","","" "`LWG2509 `__","[fund.ts.v2] any_cast doesn't work with rvalue reference targets and cannot move with a value target","2016-06 (Oulu)","|Complete|","","" -"`LWG2516 `__","[fund.ts.v2] Public ""exposition only"" members in observer_ptr","2016-06 (Oulu)","|Complete|","18.0","" +"`LWG2516 `__","[fund.ts.v2] Public ""exposition only"" members in observer_ptr","2016-06 (Oulu)","|Complete|","18","" "`LWG2542 `__","Missing const requirements for associative containers","2016-06 (Oulu)","","","" "`LWG2549 `__","Tuple EXPLICIT constructor templates that take tuple parameters end up taking references to temporaries and will create dangling references","2016-06 (Oulu)","|Complete|","","" "`LWG2550 `__","Wording of unordered container's clear() method complexity","2016-06 (Oulu)","|Complete|","","" @@ -174,7 +174,7 @@ "`LWG2720 `__","permissions function incorrectly specified for symlinks","2016-06 (Oulu)","|Complete|","","" "`LWG2721 `__","remove_all has incorrect post conditions","2016-06 (Oulu)","|Complete|","","" "`LWG2723 `__","Do directory_iterator and recursive_directory_iterator become the end iterator upon error?","2016-06 (Oulu)","|Complete|","","" -"`LWG2724 `__","The protected virtual member functions of memory_resource should be private","2016-06 (Oulu)","|Complete|","16.0","" +"`LWG2724 `__","The protected virtual member functions of memory_resource should be private","2016-06 (Oulu)","|Complete|","16","" "`LWG2725 `__","filesystem::exists(const path&, error_code&) error reporting","2016-06 (Oulu)","|Complete|","","" "`LWG2726 `__","``[recursive_]directory_iterator::increment(error_code&)`` is underspecified","2016-06 (Oulu)","|Complete|","","" "`LWG2727 `__","Parallel algorithms with constexpr specifier","2016-06 (Oulu)","","","" @@ -206,8 +206,8 @@ "`LWG2556 `__","Wide contract for future::share()","2016-11 (Issaquah)","|Complete|","","" "`LWG2562 `__","Consistent total ordering of pointers by comparison functors","2016-11 (Issaquah)","","","" "`LWG2567 `__","Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraits","2016-11 (Issaquah)","|Complete|","","" -"`LWG2568 `__","[fund.ts.v2] Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraits","2016-11 (Issaquah)","|Complete|","15.0","" -"`LWG2569 `__","conjunction and disjunction requirements are too strict","2016-11 (Issaquah)","|Complete|","15.0","" +"`LWG2568 `__","[fund.ts.v2] Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraits","2016-11 (Issaquah)","|Complete|","15","" +"`LWG2569 `__","conjunction and disjunction requirements are too strict","2016-11 (Issaquah)","|Complete|","15","" "`LWG2570 `__","[fund.ts.v2] conjunction and disjunction requirements are too strict","2016-11 (Issaquah)","","","" "`LWG2578 `__","Iterator requirements should reference iterator traits","2016-11 (Issaquah)","|Complete|","","" "`LWG2584 `__"," ECMAScript IdentityEscape is ambiguous","2016-11 (Issaquah)","","","" @@ -295,9 +295,9 @@ "`LWG2868 `__","Missing specification of bad_any_cast::what()","2017-02 (Kona)","|Complete|","","" "`LWG2872 `__","Add definition for direct-non-list-initialization","2017-02 (Kona)","|Complete|","","" "`LWG2873 `__","Add noexcept to several shared_ptr related functions","2017-02 (Kona)","|Complete|","","" -"`LWG2874 `__","Constructor ``shared_ptr::shared_ptr(Y*)``\ should be constrained","2017-02 (Kona)","|Complete|","13.0","" +"`LWG2874 `__","Constructor ``shared_ptr::shared_ptr(Y*)``\ should be constrained","2017-02 (Kona)","|Complete|","13","" "`LWG2875 `__","shared_ptr::shared_ptr(Y\*, D, [|hellip|\ ]) constructors should be constrained","2017-02 (Kona)","|Complete|","","" -"`LWG2876 `__","``shared_ptr::shared_ptr(const weak_ptr&)``\ constructor should be constrained","2017-02 (Kona)","|Complete|","14.0","" +"`LWG2876 `__","``shared_ptr::shared_ptr(const weak_ptr&)``\ constructor should be constrained","2017-02 (Kona)","|Complete|","14","" "`LWG2878 `__","Missing DefaultConstructible requirement for istream_iterator default constructor","2017-02 (Kona)","|Complete|","","" "`LWG2890 `__","The definition of 'object state' applies only to class types","2017-02 (Kona)","|Complete|","","" "`LWG2900 `__","The copy and move constructors of optional are not constexpr","2017-02 (Kona)","|Complete|","","" @@ -306,7 +306,7 @@ "`LWG2905 `__","is_constructible_v, P, D const &> should be false when D is not copy constructible","2017-02 (Kona)","|Complete|","","" "`LWG2908 `__","The less-than operator for shared pointers could do more","2017-02 (Kona)","|Complete|","","" "`LWG2911 `__","An is_aggregate type trait is needed","2017-02 (Kona)","|Complete|","","" -"`LWG2921 `__","packaged_task and type-erased allocators","2017-02 (Kona)","|Complete|","20.0","Originally implemented in LLVM 6.0 but reverted later. Old documentation incorrectly said it was implemented." +"`LWG2921 `__","packaged_task and type-erased allocators","2017-02 (Kona)","|Complete|","20","Originally implemented in LLVM 6 but reverted later. Old documentation incorrectly said it was implemented." "`LWG2934 `__","optional doesn't compare with T","2017-02 (Kona)","|Complete|","","" "","","","","","" "`LWG2901 `__","Variants cannot properly support allocators","2017-07 (Toronto)","|Complete|","","" diff --git a/libcxx/docs/Status/Cxx17Papers.csv b/libcxx/docs/Status/Cxx17Papers.csv index 7714f41ca19e0..aa59cabf24f78 100644 --- a/libcxx/docs/Status/Cxx17Papers.csv +++ b/libcxx/docs/Status/Cxx17Papers.csv @@ -2,16 +2,16 @@ "`N3911 `__","TransformationTrait Alias ``void_t``\ .","2014-11 (Urbana)","|Complete|","3.6","" "`N4089 `__","Safe conversions in ``unique_ptr``\ .","2014-11 (Urbana)","|In Progress|","3.9","" "`N4169 `__","A proposal to add invoke function template","2014-11 (Urbana)","|Complete|","3.7","" -"`N4190 `__","Removing auto_ptr, random_shuffle(), And Old Stuff.","2014-11 (Urbana)","|Complete|","15.0","" +"`N4190 `__","Removing auto_ptr, random_shuffle(), And Old Stuff.","2014-11 (Urbana)","|Complete|","15","" "`N4258 `__","Cleaning-up noexcept in the Library.","2014-11 (Urbana)","|In Progress|","3.7","" -"`N4259 `__","Wording for std::uncaught_exceptions","2014-11 (Urbana)","|Complete|","3.7","``std::uncaught_exception`` is deprecated since LLVM 20.0" +"`N4259 `__","Wording for std::uncaught_exceptions","2014-11 (Urbana)","|Complete|","3.7","``std::uncaught_exception`` is deprecated since LLVM 20" "`N4277 `__","TriviallyCopyable ``reference_wrapper``\ .","2014-11 (Urbana)","|Complete|","3.2","" "`N4279 `__","Improved insertion interface for unique-key maps.","2014-11 (Urbana)","|Complete|","3.7","" "`N4280 `__","Non-member size() and more","2014-11 (Urbana)","|Complete|","3.6","" "`N4284 `__","Contiguous Iterators.","2014-11 (Urbana)","|Complete|","3.6","" -"`N4285 `__","Cleanup for exception-specification and throw-expression.","2014-11 (Urbana)","|Complete|","4.0","" +"`N4285 `__","Cleanup for exception-specification and throw-expression.","2014-11 (Urbana)","|Complete|","4","" "","","","","","" -"`N4387 `__","improving pair and tuple","2015-05 (Lenexa)","|Complete|","4.0","" +"`N4387 `__","improving pair and tuple","2015-05 (Lenexa)","|Complete|","4","" "`N4389 `__","bool_constant","2015-05 (Lenexa)","|Complete|","3.7","" "`N4508 `__","shared_mutex for C++17","2015-05 (Lenexa)","|Complete|","3.7","" "`N4366 `__","LWG 2228 missing SFINAE rule","2015-05 (Lenexa)","|Complete|","3.1","" @@ -27,87 +27,87 @@ "","","","","","" "`P0024R2 `__","The Parallelism TS Should be Standardized","2016-02 (Jacksonville)","|Partial|","","" "`P0226R1 `__","Mathematical Special Functions for C++17","2016-02 (Jacksonville)","|In Progress|","","Progress is tracked `here `__" -"`P0220R1 `__","Adopt Library Fundamentals V1 TS Components for C++17","2016-02 (Jacksonville)","|Complete|","16.0","" -"`P0218R1 `__","Adopt the File System TS for C++17","2016-02 (Jacksonville)","|Complete|","7.0","" +"`P0220R1 `__","Adopt Library Fundamentals V1 TS Components for C++17","2016-02 (Jacksonville)","|Complete|","16","" +"`P0218R1 `__","Adopt the File System TS for C++17","2016-02 (Jacksonville)","|Complete|","7","" "`P0033R1 `__","Re-enabling shared_from_this","2016-02 (Jacksonville)","|Complete|","3.9","" "`P0005R4 `__","Adopt not_fn from Library Fundamentals 2 for C++17","2016-02 (Jacksonville)","|Complete|","3.9","" "`P0152R1 `__","constexpr ``atomic::is_always_lock_free``\ ","2016-02 (Jacksonville)","|Complete|","3.9","" "`P0185R1 `__","Adding [nothrow-]swappable traits","2016-02 (Jacksonville)","|Complete|","3.9","" "`P0253R1 `__","Fixing a design mistake in the searchers interface","2016-02 (Jacksonville)","|Complete|","3.9","" "`P0025R0 `__","An algorithm to ""clamp"" a value between a pair of boundary values","2016-02 (Jacksonville)","|Complete|","3.9","" -"`P0154R1 `__","constexpr std::hardware_{constructive,destructive}_interference_size","2016-02 (Jacksonville)","|Complete|","19.0","The required macros are only implemented as of LLVM 19." +"`P0154R1 `__","constexpr std::hardware_{constructive,destructive}_interference_size","2016-02 (Jacksonville)","|Complete|","19","The required macros are only implemented as of LLVM 19." "`P0030R1 `__","Proposal to Introduce a 3-Argument Overload to std::hypot","2016-02 (Jacksonville)","|Complete|","3.9","" -"`P0031R0 `__","A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access","2016-02 (Jacksonville)","|Complete|","4.0","" +"`P0031R0 `__","A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access","2016-02 (Jacksonville)","|Complete|","4","" "`P0272R1 `__","Give ``std::string``\ a non-const ``.data()``\ member function","2016-02 (Jacksonville)","|Complete|","3.9","" "`P0077R2 `__","``is_callable``\ , the missing INVOKE related trait","2016-02 (Jacksonville)","|Complete|","3.9","" "","","","","","" -"`P0032R3 `__","Homogeneous interface for variant, any and optional","2016-06 (Oulu)","|Complete|","4.0","" -"`P0040R3 `__","Extending memory management tools","2016-06 (Oulu)","|Complete|","4.0","" -"`P0063R3 `__","C++17 should refer to C11 instead of C99","2016-06 (Oulu)","|Complete|","7.0","" +"`P0032R3 `__","Homogeneous interface for variant, any and optional","2016-06 (Oulu)","|Complete|","4","" +"`P0040R3 `__","Extending memory management tools","2016-06 (Oulu)","|Complete|","4","" +"`P0063R3 `__","C++17 should refer to C11 instead of C99","2016-06 (Oulu)","|Complete|","7","" "`P0067R3 `__","Elementary string conversions","2016-06 (Oulu)","|Nothing To Do|","n/a","Resolved by `P0067R5 `__" -"`P0083R3 `__","Splicing Maps and Sets","2016-06 (Oulu)","|Complete|","8.0","" -"`P0084R2 `__","Emplace Return Type","2016-06 (Oulu)","|Complete|","4.0","" -"`P0088R3 `__","Variant: a type-safe union for C++17","2016-06 (Oulu)","|Complete|","4.0","" -"`P0137R1 `__","Core Issue 1776: Replacement of class objects containing reference members","2016-06 (Oulu)","|Complete|","6.0","" +"`P0083R3 `__","Splicing Maps and Sets","2016-06 (Oulu)","|Complete|","8","" +"`P0084R2 `__","Emplace Return Type","2016-06 (Oulu)","|Complete|","4","" +"`P0088R3 `__","Variant: a type-safe union for C++17","2016-06 (Oulu)","|Complete|","4","" +"`P0137R1 `__","Core Issue 1776: Replacement of class objects containing reference members","2016-06 (Oulu)","|Complete|","6","" "`P0163R0 `__","shared_ptr::weak_type","2016-06 (Oulu)","|Complete|","3.9","" -"`P0174R2 `__","Deprecating Vestigial Library Parts in C++17","2016-06 (Oulu)","|Complete|","15.0","" +"`P0174R2 `__","Deprecating Vestigial Library Parts in C++17","2016-06 (Oulu)","|Complete|","15","" "`P0175R1 `__","Synopses for the C library","2016-06 (Oulu)","","","" "`P0180R2 `__","Reserve a New Library Namespace for Future Standardization","2016-06 (Oulu)","|Nothing To Do|","n/a","" "`P0181R1 `__","Ordered by Default","2016-06 (Oulu)","|Nothing To Do|","n/a","Pulled at the 2017-01 meeting in Kona" "`P0209R2 `__","make_from_tuple: apply for construction","2016-06 (Oulu)","|Complete|","3.9","" -"`P0219R1 `__","Relative Paths for Filesystem","2016-06 (Oulu)","|Complete|","7.0","" -"`P0254R2 `__","Integrating std::string_view and std::string","2016-06 (Oulu)","|Complete|","4.0","" -"`P0258R2 `__","has_unique_object_representations","2016-06 (Oulu)","|Complete|","6.0","" -"`P0295R0 `__","Adopt Selected Library Fundamentals V2 Components for C++17","2016-06 (Oulu)","|Complete|","4.0","" -"`P0302R1 `__","Removing Allocator Support in std::function","2016-06 (Oulu)","|Complete|","4.0","" -"`P0307R2 `__","Making Optional Greater Equal Again","2016-06 (Oulu)","|Complete|","4.0","" -"`P0336R1 `__","Better Names for Parallel Execution Policies in C++17","2016-06 (Oulu)","|Complete|","17.0","" +"`P0219R1 `__","Relative Paths for Filesystem","2016-06 (Oulu)","|Complete|","7","" +"`P0254R2 `__","Integrating std::string_view and std::string","2016-06 (Oulu)","|Complete|","4","" +"`P0258R2 `__","has_unique_object_representations","2016-06 (Oulu)","|Complete|","6","" +"`P0295R0 `__","Adopt Selected Library Fundamentals V2 Components for C++17","2016-06 (Oulu)","|Complete|","4","" +"`P0302R1 `__","Removing Allocator Support in std::function","2016-06 (Oulu)","|Complete|","4","" +"`P0307R2 `__","Making Optional Greater Equal Again","2016-06 (Oulu)","|Complete|","4","" +"`P0336R1 `__","Better Names for Parallel Execution Policies in C++17","2016-06 (Oulu)","|Complete|","17","" "`P0337R0 `__","Delete ``operator=``\ for polymorphic_allocator","2016-06 (Oulu)","|Complete|","3.9","" "`P0346R1 `__","A Nomenclature Tweak","2016-06 (Oulu)","|Complete|","3.9","" "`P0358R1 `__","Fixes for not_fn","2016-06 (Oulu)","|Complete|","3.9","" "`P0371R1 `__","Temporarily discourage memory_order_consume","2016-06 (Oulu)","|Nothing To Do|","n/a","" -"`P0392R0 `__","Adapting string_view by filesystem paths","2016-06 (Oulu)","|Complete|","4.0","" -"`P0393R3 `__","Making Variant Greater Equal","2016-06 (Oulu)","|Complete|","4.0","" -"`P0394R4 `__","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","2016-06 (Oulu)","|Complete|","17.0","" +"`P0392R0 `__","Adapting string_view by filesystem paths","2016-06 (Oulu)","|Complete|","4","" +"`P0393R3 `__","Making Variant Greater Equal","2016-06 (Oulu)","|Complete|","4","" +"`P0394R4 `__","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","2016-06 (Oulu)","|Complete|","17","" "","","","","","" -"`P0003R5 `__","Removing Deprecated Exception Specifications from C++17","2016-11 (Issaquah)","|Complete|","5.0","" -"`P0067R5 `__","Elementary string conversions, revision 5","2016-11 (Issaquah)","|Partial|","","``std::(to|from)_chars`` for integrals has been available since version 7.0. ``std::to_chars`` for ``float`` and ``double`` since version 14.0 ``std::to_chars`` for ``long double`` uses the implementation for ``double``. ``std::from_chars`` for ``float`` and ``double`` since version 20.0." -"`P0403R1 `__","Literal suffixes for ``basic_string_view``\ ","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0414R2 `__","Merging shared_ptr changes from Library Fundamentals to C++17","2016-11 (Issaquah)","|Complete|","11.0","" +"`P0003R5 `__","Removing Deprecated Exception Specifications from C++17","2016-11 (Issaquah)","|Complete|","5","" +"`P0067R5 `__","Elementary string conversions, revision 5","2016-11 (Issaquah)","|Partial|","","``std::(to|from)_chars`` for integrals has been available since version 7. ``std::to_chars`` for ``float`` and ``double`` since version 14 ``std::to_chars`` for ``long double`` uses the implementation for ``double``. ``std::from_chars`` for ``float`` and ``double`` since version 20." +"`P0403R1 `__","Literal suffixes for ``basic_string_view``\ ","2016-11 (Issaquah)","|Complete|","4","" +"`P0414R2 `__","Merging shared_ptr changes from Library Fundamentals to C++17","2016-11 (Issaquah)","|Complete|","11","" "`P0418R2 `__","Fail or succeed: there is no atomic lattice","2016-11 (Issaquah)","","","" -"`P0426R1 `__","Constexpr for ``std::char_traits``\ ","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0435R1 `__","Resolving LWG Issues re ``common_type``\ ","2016-11 (Issaquah)","|Complete|","4.0","" +"`P0426R1 `__","Constexpr for ``std::char_traits``\ ","2016-11 (Issaquah)","|Complete|","4","" +"`P0435R1 `__","Resolving LWG Issues re ``common_type``\ ","2016-11 (Issaquah)","|Complete|","4","" "`P0502R0 `__","Throwing out of a parallel algorithm terminates - but how?","2016-11 (Issaquah)","","","" -"`P0503R0 `__","Correcting library usage of ""literal type""","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0504R0 `__","Revisiting in-place tag types for any/optional/variant","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0505R0 `__","Wording for GB 50 - constexpr for chrono","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0508R0 `__","Wording for GB 58 - structured bindings for node_handles","2016-11 (Issaquah)","|Complete|","7.0","" +"`P0503R0 `__","Correcting library usage of ""literal type""","2016-11 (Issaquah)","|Complete|","4","" +"`P0504R0 `__","Revisiting in-place tag types for any/optional/variant","2016-11 (Issaquah)","|Complete|","4","" +"`P0505R0 `__","Wording for GB 50 - constexpr for chrono","2016-11 (Issaquah)","|Complete|","4","" +"`P0508R0 `__","Wording for GB 58 - structured bindings for node_handles","2016-11 (Issaquah)","|Complete|","7","" "`P0509R1 `__","Updating ""Restrictions on exception handling""","2016-11 (Issaquah)","|Nothing To Do|","n/a","" -"`P0510R0 `__","Disallowing references, incomplete types, arrays, and empty variants","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0513R0 `__","Poisoning the Hash","2016-11 (Issaquah)","|Complete|","5.0","" -"`P0516R0 `__","Clarify That shared_future's Copy Operations have Wide Contracts","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0517R0 `__","Make future_error Constructible","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0521R0 `__","Proposed Resolution for CA 14 (shared_ptr use_count/unique)","2016-11 (Issaquah)","|Complete|","18.0","" +"`P0510R0 `__","Disallowing references, incomplete types, arrays, and empty variants","2016-11 (Issaquah)","|Complete|","4","" +"`P0513R0 `__","Poisoning the Hash","2016-11 (Issaquah)","|Complete|","5","" +"`P0516R0 `__","Clarify That shared_future's Copy Operations have Wide Contracts","2016-11 (Issaquah)","|Complete|","4","" +"`P0517R0 `__","Make future_error Constructible","2016-11 (Issaquah)","|Complete|","4","" +"`P0521R0 `__","Proposed Resolution for CA 14 (shared_ptr use_count/unique)","2016-11 (Issaquah)","|Complete|","18","" "","","","","","" -"`P0156R2 `__","Variadic Lock guard(rev 5)","2017-02 (Kona)","|Complete|","5.0","" +"`P0156R2 `__","Variadic Lock guard(rev 5)","2017-02 (Kona)","|Complete|","5","" "`P0270R3 `__","Removing C dependencies from signal handler wording","2017-02 (Kona)","","","" -"`P0298R3 `__","A byte type definition","2017-02 (Kona)","|Complete|","5.0","" -"`P0317R1 `__","Directory Entry Caching for Filesystem","2017-02 (Kona)","|Complete|","7.0","" -"`P0430R2 `__","File system library on non-POSIX-like operating systems","2017-02 (Kona)","|Complete|","7.0","" -"`P0433R2 `__","Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library","2017-02 (Kona)","|Complete|","14.0","" +"`P0298R3 `__","A byte type definition","2017-02 (Kona)","|Complete|","5","" +"`P0317R1 `__","Directory Entry Caching for Filesystem","2017-02 (Kona)","|Complete|","7","" +"`P0430R2 `__","File system library on non-POSIX-like operating systems","2017-02 (Kona)","|Complete|","7","" +"`P0433R2 `__","Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library","2017-02 (Kona)","|Complete|","14","" "`P0452R1 `__","Unifying Parallel Algorithms","2017-02 (Kona)","|Partial|","","The changes to ``std::transform_inclusive_scan`` and ``std::transform_exclusive_scan`` have not yet been implemented." "`P0467R2 `__","Iterator Concerns for Parallel Algorithms","2017-02 (Kona)","|Partial|","","" -"`P0492R2 `__","Proposed Resolution of C++17 National Body Comments for Filesystems","2017-02 (Kona)","|Complete|","7.0","" +"`P0492R2 `__","Proposed Resolution of C++17 National Body Comments for Filesystems","2017-02 (Kona)","|Complete|","7","" "`P0518R1 `__","Allowing copies as arguments to function objects given to parallel algorithms in response to CH11","2017-02 (Kona)","|Nothing To Do|","","" "`P0523R1 `__","Wording for CH 10: Complexity of parallel algorithms","2017-02 (Kona)","|Nothing To Do|","","" -"`P0548R1 `__","common_type and duration","2017-02 (Kona)","|Complete|","5.0","" +"`P0548R1 `__","common_type and duration","2017-02 (Kona)","|Complete|","5","" "`P0558R1 `__","Resolving atomic named base class inconsistencies","2017-02 (Kona)","|Complete|","","" "`P0574R1 `__","Algorithm Complexity Constraints and Parallel Overloads","2017-02 (Kona)","|Nothing To Do|","","" -"`P0599R1 `__","noexcept for hash functions","2017-02 (Kona)","|Complete|","5.0","" +"`P0599R1 `__","noexcept for hash functions","2017-02 (Kona)","|Complete|","5","" "`P0604R0 `__","Resolving GB 55, US 84, US 85, US 86","2017-02 (Kona)","|Complete|","","" -"`P0607R0 `__","Inline Variables for the Standard Library","2017-02 (Kona)","|In Progress|","6.0","The parts of P0607 that are not done are the ```` bits" -"`P0618R0 `__","Deprecating ","2017-02 (Kona)","|Complete|","15.0","" +"`P0607R0 `__","Inline Variables for the Standard Library","2017-02 (Kona)","|In Progress|","6","The parts of P0607 that are not done are the ```` bits" +"`P0618R0 `__","Deprecating ","2017-02 (Kona)","|Complete|","15","" "`P0623R0 `__","Final C++17 Parallel Algorithms Fixes","2017-02 (Kona)","|Nothing To Do|","","" "","","","","","" "`P0682R1 `__","Repairing elementary string conversions","2017-07 (Toronto)","","","" -"`P0739R0 `__","Some improvements to class template argument deduction integration into the standard library","2017-07 (Toronto)","|Complete|","5.0","" +"`P0739R0 `__","Some improvements to class template argument deduction integration into the standard library","2017-07 (Toronto)","|Complete|","5","" diff --git a/libcxx/docs/Status/Cxx20Issues.csv b/libcxx/docs/Status/Cxx20Issues.csv index b0fa5346e873d..3462557e8d668 100644 --- a/libcxx/docs/Status/Cxx20Issues.csv +++ b/libcxx/docs/Status/Cxx20Issues.csv @@ -9,7 +9,7 @@ "`LWG2940 `__","``result_of``\ specification also needs a little cleanup","2017-07 (Toronto)","|Nothing To Do|","","" "`LWG2942 `__","LWG 2873's resolution missed ``weak_ptr::owner_before``\ ","2017-07 (Toronto)","|Complete|","","" "`LWG2954 `__","Specialization of the convenience variable templates should be prohibited","2017-07 (Toronto)","|Complete|","","" -"`LWG2961 `__","Bad postcondition for ``set_default_resource``\ ","2017-07 (Toronto)","|Complete|","16.0","" +"`LWG2961 `__","Bad postcondition for ``set_default_resource``\ ","2017-07 (Toronto)","|Complete|","16","" "`LWG2966 `__","Incomplete resolution of US 74","2017-07 (Toronto)","|Nothing To Do|","","" "`LWG2974 `__","Diagnose out of bounds ``tuple_element/variant_alternative``\ ","2017-07 (Toronto)","|Complete|","","" "","","","","","" @@ -27,17 +27,17 @@ "`LWG2964 `__","Apparently redundant requirement for dynamic_pointer_cast","2017-11 (Albuquerque)","","","" "`LWG2965 `__","Non-existing path::native_string() in filesystem_error::what() specification","2017-11 (Albuquerque)","|Nothing To Do|","","" "`LWG2972 `__","What is ``is_trivially_destructible_v``\ ?","2017-11 (Albuquerque)","|Complete|","","" -"`LWG2976 `__","Dangling uses_allocator specialization for packaged_task","2017-11 (Albuquerque)","|Complete|","20.0","Originally implemented in LLVM 6.0 but reverted later. Old documentation incorrectly said it was implemented." +"`LWG2976 `__","Dangling uses_allocator specialization for packaged_task","2017-11 (Albuquerque)","|Complete|","20","Originally implemented in LLVM 6 but reverted later. Old documentation incorrectly said it was implemented." "`LWG2977 `__","unordered_meow::merge() has incorrect Throws: clause","2017-11 (Albuquerque)","|Nothing To Do|","","" -"`LWG2978 `__","Hash support for pmr::string and friends","2017-11 (Albuquerque)","|Complete|","16.0","" +"`LWG2978 `__","Hash support for pmr::string and friends","2017-11 (Albuquerque)","|Complete|","16","" "`LWG2979 `__","aligned_union should require complete object types","2017-11 (Albuquerque)","|Complete|","","" "`LWG2980 `__","Cannot compare_exchange empty pointers","2017-11 (Albuquerque)","","","" "`LWG2981 `__","Remove redundant deduction guides from standard library","2017-11 (Albuquerque)","|Nothing To Do|","","" "`LWG2982 `__","Making size_type consistent in associative container deduction guides","2017-11 (Albuquerque)","","","" -"`LWG2988 `__","Clause 32 cleanup missed one typename","2017-11 (Albuquerque)","|Complete|","13.0","" -"`LWG2993 `__","reference_wrapper conversion from T&&","2017-11 (Albuquerque)","|Complete|","13.0","" +"`LWG2988 `__","Clause 32 cleanup missed one typename","2017-11 (Albuquerque)","|Complete|","13","" +"`LWG2993 `__","reference_wrapper conversion from T&&","2017-11 (Albuquerque)","|Complete|","13","" "`LWG2998 `__","Requirements on function objects passed to {``forward_``,}list-specific algorithms","2017-11 (Albuquerque)","|Nothing To Do|","","" -"`LWG3001 `__","weak_ptr::element_type needs remove_extent_t","2017-11 (Albuquerque)","|Complete|","14.0","" +"`LWG3001 `__","weak_ptr::element_type needs remove_extent_t","2017-11 (Albuquerque)","|Complete|","14","" "`LWG3024 `__","variant's copies must be deleted instead of disabled via SFINAE","2017-11 (Albuquerque)","|Complete|","","" "","","","","","" "`LWG2164 `__","What are the semantics of ``vector.emplace(vector.begin(), vector.back())``\ ?","2018-03 (Jacksonville)","|Complete|","","" @@ -50,7 +50,7 @@ "`LWG2969 `__","``polymorphic_allocator::construct()``\ shouldn't pass ``resource()``\ ","2018-03 (Jacksonville)","|Complete|","","" "`LWG2975 `__","Missing case for ``pair``\ construction in scoped and polymorphic allocators","2018-03 (Jacksonville)","","","" "`LWG2989 `__","``path``\ 's stream insertion operator lets you insert everything under the sun","2018-03 (Jacksonville)","|Complete|","","" -"`LWG3000 `__","``monotonic_memory_resource::do_is_equal``\ uses ``dynamic_cast``\ unnecessarily","2018-03 (Jacksonville)","|Complete|","16.0","" +"`LWG3000 `__","``monotonic_memory_resource::do_is_equal``\ uses ``dynamic_cast``\ unnecessarily","2018-03 (Jacksonville)","|Complete|","16","" "`LWG3002 `__","[networking.ts] ``basic_socket_acceptor::is_open()``\ isn't ``noexcept``\ ","2018-03 (Jacksonville)","","","" "`LWG3004 `__","|sect|\ [string.capacity] and |sect|\ [vector.capacity] should specify time complexity for ``capacity()``\ ","2018-03 (Jacksonville)","|Nothing To Do|","","" "`LWG3005 `__","Destruction order of arrays by ``make_shared/allocate_shared``\ only recommended?","2018-03 (Jacksonville)","","","" @@ -70,15 +70,15 @@ "`LWG3041 `__","Unnecessary ``decay``\ in ``reference_wrapper``\ ","2018-03 (Jacksonville)","|Complete|","","" "`LWG3042 `__","``is_literal_type_v``\ should be inline","2018-03 (Jacksonville)","|Complete|","","" "`LWG3043 `__","Bogus postcondition for ``filesystem_error``\ constructor","2018-03 (Jacksonville)","|Complete|","","" -"`LWG3045 `__","``atomic``\ doesn't have ``value_type``\ or ``difference_type``\ ","2018-03 (Jacksonville)","|Complete|","18.0","" -"`LWG3048 `__","``transform_reduce(exec, first1, last1, first2, init)``\ discards execution policy","2018-03 (Jacksonville)","|Complete|","17.0","" +"`LWG3045 `__","``atomic``\ doesn't have ``value_type``\ or ``difference_type``\ ","2018-03 (Jacksonville)","|Complete|","18","" +"`LWG3048 `__","``transform_reduce(exec, first1, last1, first2, init)``\ discards execution policy","2018-03 (Jacksonville)","|Complete|","17","" "`LWG3051 `__","Floating point classifications were inadvertently changed in P0175","2018-03 (Jacksonville)","|Nothing To Do|","","" "`LWG3075 `__","``basic_string``\ needs deduction guides from ``basic_string_view``\ ","2018-03 (Jacksonville)","|Complete|","","" "","","","","","" "`LWG2139 `__","What is a user-defined type?","2018-06 (Rapperswil)","","","" -"`LWG2970 `__","Return type of std::visit misspecified","2018-06 (Rapperswil)","|Complete|","11.0","" +"`LWG2970 `__","Return type of std::visit misspecified","2018-06 (Rapperswil)","|Complete|","11","" "`LWG3058 `__","Parallel adjacent_difference shouldn't require creating temporaries","2018-06 (Rapperswil)","","","" -"`LWG3062 `__","Unnecessary decay_t in is_execution_policy_v should be remove_cvref_t","2018-06 (Rapperswil)","|Complete|","17.0","" +"`LWG3062 `__","Unnecessary decay_t in is_execution_policy_v should be remove_cvref_t","2018-06 (Rapperswil)","|Complete|","17","" "`LWG3067 `__","recursive_directory_iterator::pop must invalidate","2018-06 (Rapperswil)","|Nothing To Do|","","" "`LWG3071 `__","[networking.ts] read_until still refers to ""input sequence""","2018-06 (Rapperswil)","|Nothing To Do|","","" "`LWG3074 `__","Non-member functions for valarray should only deduce from the valarray","2018-06 (Rapperswil)","","","" @@ -101,23 +101,23 @@ "`LWG2936 `__","Path comparison is defined in terms of the generic format","2018-11 (San Diego)","|Complete|","","" "`LWG2943 `__","Problematic specification of the wide version of ``basic_filebuf::open``\ ","2018-11 (San Diego)","|Nothing To Do|","","" "`LWG2960 `__","[fund.ts.v3] ``nonesuch``\ is insufficiently useless","2018-11 (San Diego)","|Complete|","","" -"`LWG2995 `__","``basic_stringbuf``\ default constructor forbids it from using SSO capacity","2018-11 (San Diego)","|Complete|","20.0","" -"`LWG2996 `__","Missing rvalue overloads for ``shared_ptr``\ operations","2018-11 (San Diego)","|Complete|","17.0","" -"`LWG3008 `__","``make_shared``\ (sub)object destruction semantics are not specified","2018-11 (San Diego)","|Complete|","16.0","" +"`LWG2995 `__","``basic_stringbuf``\ default constructor forbids it from using SSO capacity","2018-11 (San Diego)","|Complete|","20","" +"`LWG2996 `__","Missing rvalue overloads for ``shared_ptr``\ operations","2018-11 (San Diego)","|Complete|","17","" +"`LWG3008 `__","``make_shared``\ (sub)object destruction semantics are not specified","2018-11 (San Diego)","|Complete|","16","" "`LWG3022 `__","``is_convertible``\ may lead to ODR","2018-11 (San Diego)","|Nothing To Do|","","Resolved by `P1285R0 `__" "`LWG3025 `__","Map-like container deduction guides should use ``pair``\ , not ``pair``\ ","2018-11 (San Diego)","|Complete|","","" "`LWG3031 `__","Algorithms and predicates with non-const reference arguments","2018-11 (San Diego)","","","" -"`LWG3037 `__","``polymorphic_allocator``\ and incomplete types","2018-11 (San Diego)","|Complete|","16.0","" -"`LWG3038 `__","``polymorphic_allocator::allocate``\ should not allow integer overflow to create vulnerabilities","2018-11 (San Diego)","|Complete|","14.0","" +"`LWG3037 `__","``polymorphic_allocator``\ and incomplete types","2018-11 (San Diego)","|Complete|","16","" +"`LWG3038 `__","``polymorphic_allocator::allocate``\ should not allow integer overflow to create vulnerabilities","2018-11 (San Diego)","|Complete|","14","" "`LWG3054 `__","``uninitialized_copy``\ appears to not be able to meet its exception-safety guarantee","2018-11 (San Diego)","|Nothing To Do|","","" "`LWG3065 `__","LWG 2989 missed that all ``path``\ 's other operators should be hidden friends as well","2018-11 (San Diego)","|Complete|","","" "`LWG3096 `__","``path::lexically_relative``\ is confused by trailing slashes","2018-11 (San Diego)","|Complete|","","" "`LWG3116 `__","``OUTERMOST_ALLOC_TRAITS``\ needs ``remove_reference_t``\ ","2018-11 (San Diego)","","","" "`LWG3122 `__","``__cpp_lib_chrono_udls``\ was accidentally dropped","2018-11 (San Diego)","|Complete|","","" -"`LWG3127 `__","``basic_osyncstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Complete|","18.0","" +"`LWG3127 `__","``basic_osyncstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Complete|","18","" "`LWG3128 `__","``strstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Nothing To Do|","","" "`LWG3129 `__","``regex_token_iterator``\ constructor uses wrong pointer arithmetic","2018-11 (San Diego)","","","" -"`LWG3130 `__","|sect|\ [input.output] needs many ``addressof``\ ","2018-11 (San Diego)","|Complete|","20.0","" +"`LWG3130 `__","|sect|\ [input.output] needs many ``addressof``\ ","2018-11 (San Diego)","|Complete|","20","" "`LWG3131 `__","``addressof``\ all the things","2018-11 (San Diego)","","","" "`LWG3132 `__","Library needs to ban macros named ``expects``\ or ``ensures``\ ","2018-11 (San Diego)","|Nothing To Do|","","" "`LWG3134 `__","[fund.ts.v3] LFTSv3 contains extraneous [meta] variable templates that should have been deleted by P09961","2018-11 (San Diego)","|Nothing To Do|","","Resolved by `P1210R0 `__" @@ -126,7 +126,7 @@ "`LWG3145 `__","``file_clock``\ breaks ABI for C++17 implementations","2018-11 (San Diego)","|Complete|","","" "`LWG3147 `__","Definitions of ""likely"" and ""unlikely"" are likely to cause problems","2018-11 (San Diego)","|Nothing To Do|","","" "`LWG3148 `__","````\ should be freestanding","2018-11 (San Diego)","","","" -"`LWG3153 `__","``Common``\ and ``common_type``\ have too little in common","2018-11 (San Diego)","|Complete|","13.0","" +"`LWG3153 `__","``Common``\ and ``common_type``\ have too little in common","2018-11 (San Diego)","|Complete|","13","" "`LWG3154 `__","``Common``\ and ``CommonReference``\ have a common defect","2018-11 (San Diego)","|Nothing To Do|","","" "","","","","","" "`LWG3012 `__","``atomic``\ is unimplementable for non-``is_trivially_copy_constructible T``\ ","2019-02 (Kona)","","","" @@ -138,165 +138,165 @@ "`LWG3119 `__","Program-definedness of closure types","2019-02 (Kona)","|Nothing To Do|","","" "`LWG3133 `__","Modernizing numeric type requirements","2019-02 (Kona)","","","" "`LWG3144 `__","``span``\ does not have a ``const_pointer``\ typedef","2019-02 (Kona)","|Complete|","","" -"`LWG3173 `__","Enable CTAD for ``ref-view``\ ","2019-02 (Kona)","|Complete|","15.0","" +"`LWG3173 `__","Enable CTAD for ``ref-view``\ ","2019-02 (Kona)","|Complete|","15","" "`LWG3179 `__","``subrange``\ should always model ``Range``\ ","2019-02 (Kona)","|Nothing To Do|","","" -"`LWG3180 `__","Inconsistently named return type for ``ranges::minmax_element``\ ","2019-02 (Kona)","|Complete|","15.0","" -"`LWG3182 `__","Specification of ``Same``\ could be clearer","2019-02 (Kona)","|Complete|","15.0","" +"`LWG3180 `__","Inconsistently named return type for ``ranges::minmax_element``\ ","2019-02 (Kona)","|Complete|","15","" +"`LWG3182 `__","Specification of ``Same``\ could be clearer","2019-02 (Kona)","|Complete|","15","" "","","","","","" "`LWG2899 `__","``is_(nothrow_)move_constructible``\ and ``tuple``\ , ``optional``\ and ``unique_ptr``\ ","2019-07 (Cologne)","","","" -"`LWG3055 `__","``path::operator+=(*single-character*)``\ misspecified","2019-07 (Cologne)","|Complete|","7.0","" -"`LWG3158 `__","``tuple(allocator_arg_t, const Alloc&)``\ should be conditionally explicit","2019-07 (Cologne)","|Complete|","10.0","" -"`LWG3169 `__","``ranges``\ permutation generators discard useful information","2019-07 (Cologne)","|Complete|","15.0","" +"`LWG3055 `__","``path::operator+=(*single-character*)``\ misspecified","2019-07 (Cologne)","|Complete|","7","" +"`LWG3158 `__","``tuple(allocator_arg_t, const Alloc&)``\ should be conditionally explicit","2019-07 (Cologne)","|Complete|","10","" +"`LWG3169 `__","``ranges``\ permutation generators discard useful information","2019-07 (Cologne)","|Complete|","15","" "`LWG3183 `__","Normative permission to specialize Ranges variable templates","2019-07 (Cologne)","|Nothing To Do|","","" -"`LWG3184 `__","Inconsistencies in ``bind_front``\ wording","2019-07 (Cologne)","|Complete|","13.0","" -"`LWG3185 `__","Uses-allocator construction functions missing ``constexpr``\ and ``noexcept``\ ","2019-07 (Cologne)","|Complete|","16.0","" -"`LWG3186 `__","``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful information","2019-07 (Cologne)","|Complete|","15.0","" +"`LWG3184 `__","Inconsistencies in ``bind_front``\ wording","2019-07 (Cologne)","|Complete|","13","" +"`LWG3185 `__","Uses-allocator construction functions missing ``constexpr``\ and ``noexcept``\ ","2019-07 (Cologne)","|Complete|","16","" +"`LWG3186 `__","``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful information","2019-07 (Cologne)","|Complete|","15","" "`LWG3187 `__","`P0591R4 `__ reverted DR 2586 fixes to ``scoped_allocator_adaptor::construct()``\ ","2019-07 (Cologne)","","","" -"`LWG3191 `__","``std::ranges::shuffle``\ synopsis does not match algorithm definition","2019-07 (Cologne)","|Complete|","15.0","" +"`LWG3191 `__","``std::ranges::shuffle``\ synopsis does not match algorithm definition","2019-07 (Cologne)","|Complete|","15","" "`LWG3196 `__","``std::optional``\ is ill-formed is ``T``\ is an array","2019-07 (Cologne)","|Complete|","","" "`LWG3198 `__","Bad constraint on ``std::span::span()``\ ","2019-07 (Cologne)","|Complete|","","" -"`LWG3199 `__","``istream >> bitset<0>``\ fails","2019-07 (Cologne)","|Complete|","10.0","" +"`LWG3199 `__","``istream >> bitset<0>``\ fails","2019-07 (Cologne)","|Complete|","10","" "`LWG3202 `__","P0318R1 was supposed to be revised","2019-07 (Cologne)","|Complete|","","" "`LWG3206 `__","``year_month_day``\ conversion to ``sys_days``\ uses not-existing member function","2019-07 (Cologne)","|Complete|","","" "`LWG3208 `__","``Boolean``\ 's expression requirements are ordered inconsistently","2019-07 (Cologne)","|Nothing To Do|","","" "`LWG3209 `__","Expression in ``year::ok()``\ returns clause is ill-formed","2019-07 (Cologne)","|Complete|","","" "","","","","","" "`LWG3231 `__","``year_month_day_last::day``\ specification does not cover ``!ok()``\ values","2019-11 (Belfast)","|Nothing To Do|","","" -"`LWG3225 `__","``zoned_time``\ converting constructor shall not be ``noexcept``\ ","2019-11 (Belfast)","|Complete|","19.0","" -"`LWG3190 `__","``std::allocator::allocate``\ sometimes returns too little storage","2019-11 (Belfast)","|Complete|","14.0","" +"`LWG3225 `__","``zoned_time``\ converting constructor shall not be ``noexcept``\ ","2019-11 (Belfast)","|Complete|","19","" +"`LWG3190 `__","``std::allocator::allocate``\ sometimes returns too little storage","2019-11 (Belfast)","|Complete|","14","" "`LWG3218 `__","Modifier for ``%d``\ parse flag does not match POSIX and ``format``\ specification","2019-11 (Belfast)","","","" -"`LWG3224 `__","``zoned_time``\ constructor from ``TimeZonePtr``\ does not specify initialization of ``tp_``\ ","2019-11 (Belfast)","|Complete|","19.0","" -"`LWG3230 `__","Format specifier ``%y/%Y``\ is missing locale alternative versions","2019-11 (Belfast)","|Complete|","16.0","" -"`LWG3232 `__","Inconsistency in ``zoned_time``\ deduction guides","2019-11 (Belfast)","|Complete|","19.0","" +"`LWG3224 `__","``zoned_time``\ constructor from ``TimeZonePtr``\ does not specify initialization of ``tp_``\ ","2019-11 (Belfast)","|Complete|","19","" +"`LWG3230 `__","Format specifier ``%y/%Y``\ is missing locale alternative versions","2019-11 (Belfast)","|Complete|","16","" +"`LWG3232 `__","Inconsistency in ``zoned_time``\ deduction guides","2019-11 (Belfast)","|Complete|","19","" "`LWG3222 `__","P0574R1 introduced preconditions on non-existent parameters","2019-11 (Belfast)","","","" -"`LWG3221 `__","Result of ``year_month``\ arithmetic with ``months``\ is ambiguous","2019-11 (Belfast)","|Complete|","8.0","" +"`LWG3221 `__","Result of ``year_month``\ arithmetic with ``months``\ is ambiguous","2019-11 (Belfast)","|Complete|","8","" "`LWG3235 `__","``parse``\ manipulator without abbreviation is not callable","2019-11 (Belfast)","","","" "`LWG3246 `__","LWG3246: What are the constraints on the template parameter of `basic_format_arg`?","2019-11 (Belfast)","|Nothing To Do|","","" -"`LWG3253 `__","``basic_syncbuf::basic_syncbuf()``\ should not be explicit","2019-11 (Belfast)","|Complete|","20.0","" +"`LWG3253 `__","``basic_syncbuf::basic_syncbuf()``\ should not be explicit","2019-11 (Belfast)","|Complete|","20","" "`LWG3245 `__","Unnecessary restriction on ``'%p'``\ parse specifier","2019-11 (Belfast)","","","" "`LWG3244 `__","Constraints for ``Source``\ in |sect|\ [fs.path.req] insufficiently constrainty","2019-11 (Belfast)","","","" -"`LWG3241 `__","``chrono-spec``\ grammar ambiguity in |sect|\ [time.format]","2019-11 (Belfast)","|Complete|","16.0","" -"`LWG3257 `__","Missing feature testing macro update from P0858","2019-11 (Belfast)","|Complete|","12.0","" -"`LWG3256 `__","Feature testing macro for ``constexpr``\ algorithms","2019-11 (Belfast)","|Complete|","13.0","" -"`LWG3273 `__","Specify ``weekday_indexed``\ to range of ``[0, 7]``\ ","2019-11 (Belfast)","|Complete|","16.0","" +"`LWG3241 `__","``chrono-spec``\ grammar ambiguity in |sect|\ [time.format]","2019-11 (Belfast)","|Complete|","16","" +"`LWG3257 `__","Missing feature testing macro update from P0858","2019-11 (Belfast)","|Complete|","12","" +"`LWG3256 `__","Feature testing macro for ``constexpr``\ algorithms","2019-11 (Belfast)","|Complete|","13","" +"`LWG3273 `__","Specify ``weekday_indexed``\ to range of ``[0, 7]``\ ","2019-11 (Belfast)","|Complete|","16","" "`LWG3070 `__","``path::lexically_relative``\ causes surprising results if a filename can also be a *root-name*","2019-11 (Belfast)","","","" -"`LWG3266 `__","``to_chars(bool)``\ should be deleted","2019-11 (Belfast)","|Complete|","14.0","" +"`LWG3266 `__","``to_chars(bool)``\ should be deleted","2019-11 (Belfast)","|Complete|","14","" "`LWG3272 `__","``%I%p``\ should parse/format ``duration``\ since midnight","2019-11 (Belfast)","","","" "`LWG3259 `__","The definition of *constexpr iterators* should be adjusted","2019-11 (Belfast)","|Nothing To Do|","","" -"`LWG3103 `__","Errors in taking subview of ``span``\ should be ill-formed where possible","2019-11 (Belfast)","|Complete|","11.0","" -"`LWG3274 `__","Missing feature test macro for ````\ ","2019-11 (Belfast)","|Complete|","11.0","" -"`LWG3276 `__","Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ ","2019-11 (Belfast)","|Complete|","15.0","" +"`LWG3103 `__","Errors in taking subview of ``span``\ should be ill-formed where possible","2019-11 (Belfast)","|Complete|","11","" +"`LWG3274 `__","Missing feature test macro for ````\ ","2019-11 (Belfast)","|Complete|","11","" +"`LWG3276 `__","Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ ","2019-11 (Belfast)","|Complete|","15","" "`LWG3277 `__","Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ ","2019-11 (Belfast)","|Nothing To Do|","","" -"`LWG3149 `__","``DefaultConstructible``\ should require default initialization","2019-11 (Belfast)","|Complete|","13.0","" +"`LWG3149 `__","``DefaultConstructible``\ should require default initialization","2019-11 (Belfast)","|Complete|","13","" "","","","","","" -"`LWG1203 `__","More useful rvalue stream insertion","2020-02 (Prague)","|Complete|","12.0","" +"`LWG1203 `__","More useful rvalue stream insertion","2020-02 (Prague)","|Complete|","12","" "`LWG2859 `__","Definition of *reachable* in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object","2020-02 (Prague)","","","" "`LWG3018 `__","``shared_ptr``\ of function type","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3050 `__","Conversion specification problem in ``chrono::duration``\ constructor","2020-02 (Prague)","|Complete|","19.0","" +"`LWG3050 `__","Conversion specification problem in ``chrono::duration``\ constructor","2020-02 (Prague)","|Complete|","19","" "`LWG3141 `__","``CopyConstructible``\ doesn't preserve source values","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3150 `__","``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ ","2020-02 (Prague)","|Complete|","13.0","" -"`LWG3175 `__","The ``CommonReference``\ requirement of concept ``SwappableWith``\ is not satisfied in the example","2020-02 (Prague)","|Complete|","13.0","" -"`LWG3194 `__","``ConvertibleTo``\ prose does not match code","2020-02 (Prague)","|Complete|","13.0","" +"`LWG3150 `__","``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ ","2020-02 (Prague)","|Complete|","13","" +"`LWG3175 `__","The ``CommonReference``\ requirement of concept ``SwappableWith``\ is not satisfied in the example","2020-02 (Prague)","|Complete|","13","" +"`LWG3194 `__","``ConvertibleTo``\ prose does not match code","2020-02 (Prague)","|Complete|","13","" "`LWG3200 `__","``midpoint``\ should not constrain ``T``\ is complete","2020-02 (Prague)","|Nothing To Do|","","" "`LWG3201 `__","``lerp``\ should be marked as ``noexcept``\ ","2020-02 (Prague)","|Complete|","","" -"`LWG3226 `__","``zoned_time``\ constructor from ``string_view``\ should accept ``zoned_time``\ ","2020-02 (Prague)","|Complete|","19.0","" -"`LWG3233 `__","Broken requirements for ``shared_ptr``\ converting constructors","2020-02 (Prague)","|Complete|","19.0","" -"`LWG3237 `__","LWG 3038 and 3190 have inconsistent PRs","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3226 `__","``zoned_time``\ constructor from ``string_view``\ should accept ``zoned_time``\ ","2020-02 (Prague)","|Complete|","19","" +"`LWG3233 `__","Broken requirements for ``shared_ptr``\ converting constructors","2020-02 (Prague)","|Complete|","19","" +"`LWG3237 `__","LWG 3038 and 3190 have inconsistent PRs","2020-02 (Prague)","|Complete|","16","" "`LWG3238 `__","Insufficiently-defined behavior of ``std::function``\ deduction guides","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3242 `__","``std::format``\ : missing rules for ``arg-id``\ in ``width``\ and ``precision``\ ","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3243 `__","``std::format``\ and negative zeroes","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3247 `__","``ranges::iter_move``\ should perform ADL-only lookup of ``iter_move``\ ","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3248 `__","``std::format``\ ``#b``\ , ``#B``\ , ``#o``\ , ``#x``\ , and ``#X``\ presentation types misformat negative numbers","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3250 `__","``std::format``\ : ``#``\ (alternate form) for NaN and inf","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3251 `__","Are ``std::format``\ alignment specifiers applied to string arguments?","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3242 `__","``std::format``\ : missing rules for ``arg-id``\ in ``width``\ and ``precision``\ ","2020-02 (Prague)","|Complete|","14","" +"`LWG3243 `__","``std::format``\ and negative zeroes","2020-02 (Prague)","|Complete|","14","" +"`LWG3247 `__","``ranges::iter_move``\ should perform ADL-only lookup of ``iter_move``\ ","2020-02 (Prague)","|Complete|","15","" +"`LWG3248 `__","``std::format``\ ``#b``\ , ``#B``\ , ``#o``\ , ``#x``\ , and ``#X``\ presentation types misformat negative numbers","2020-02 (Prague)","|Complete|","14","" +"`LWG3250 `__","``std::format``\ : ``#``\ (alternate form) for NaN and inf","2020-02 (Prague)","|Complete|","14","" +"`LWG3251 `__","Are ``std::format``\ alignment specifiers applied to string arguments?","2020-02 (Prague)","|Complete|","14","" "`LWG3252 `__","Parse locale's aware modifiers for commands are not consistent with POSIX spec","2020-02 (Prague)","","","" -"`LWG3254 `__","Strike ``stop_token``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17.0","" +"`LWG3254 `__","Strike ``stop_token``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17","" "`LWG3255 `__","``span``\ 's ``array``\ constructor is too strict","2020-02 (Prague)","|Complete|","","" "`LWG3260 `__","``year_month*``\ arithmetic rejects durations convertible to years","2020-02 (Prague)","","","" -"`LWG3262 `__","Formatting of negative durations is not specified","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3264 `__","``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ ","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3262 `__","Formatting of negative durations is not specified","2020-02 (Prague)","|Complete|","16","" +"`LWG3264 `__","``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ ","2020-02 (Prague)","|Complete|","15","" "`LWG3269 `__","Parse manipulators do not specify the result of the extraction from stream","2020-02 (Prague)","","","" "`LWG3270 `__","Parsing and formatting ``%j``\ with ``duration``\ s","2020-02 (Prague)","|Partial|","","" -"`LWG3280 `__","View converting constructors can cause constraint recursion and are unneeded","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3281 `__","Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion","2020-02 (Prague)","|Complete|","13.0","" -"`LWG3282 `__","``subrange``\ converting constructor should disallow derived to base conversions","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3280 `__","View converting constructors can cause constraint recursion and are unneeded","2020-02 (Prague)","|Complete|","15","" +"`LWG3281 `__","Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion","2020-02 (Prague)","|Complete|","13","" +"`LWG3282 `__","``subrange``\ converting constructor should disallow derived to base conversions","2020-02 (Prague)","|Complete|","15","" "`LWG3284 `__","``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negate","2020-02 (Prague)","|Nothing To Do|","","" "`LWG3285 `__","The type of a customization point object shall satisfy ``semiregular``\ ","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3286 `__","``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3291 `__","``iota_view::iterator``\ has the wrong ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3292 `__","``iota_view``\ is under-constrained","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3294 `__","``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ ","2020-02 (Prague)","|Complete|","19.0","" +"`LWG3286 `__","``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range","2020-02 (Prague)","|Complete|","15","" +"`LWG3291 `__","``iota_view::iterator``\ has the wrong ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15","" +"`LWG3292 `__","``iota_view``\ is under-constrained","2020-02 (Prague)","|Complete|","15","" +"`LWG3294 `__","``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ ","2020-02 (Prague)","|Complete|","19","" "`LWG3296 `__","Inconsistent default argument for ``basic_regex<>::assign``\ ","2020-02 (Prague)","|Complete|","","" -"`LWG3299 `__","Pointers don't need customized iterator behavior","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3299 `__","Pointers don't need customized iterator behavior","2020-02 (Prague)","|Complete|","15","" "`LWG3300 `__","Non-array ``ssize``\ overload is underconstrained","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3301 `__","``transform_view::iterator``\ has incorrect ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3302 `__","Range adaptor objects ``keys``\ and ``values``\ are unspecified","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3301 `__","``transform_view::iterator``\ has incorrect ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15","" +"`LWG3302 `__","Range adaptor objects ``keys``\ and ``values``\ are unspecified","2020-02 (Prague)","|Complete|","16","" "`LWG3303 `__","Bad ""``constexpr``\ "" marker for ``destroy/destroy_n``\ ","2020-02 (Prague)","","","" -"`LWG3304 `__","Allocate functions of ``std::polymorphic_allocator``\ should require ``[[nodiscard]]``\ ","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3307 `__","``std::allocator().allocate(n)``\ ","2020-02 (Prague)","|Complete|","20.0","" -"`LWG3310 `__","Replace ``SIZE_MAX``\ with ``numeric_limits::max()``\ ","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3313 `__","``join_view::iterator::operator--``\ is incorrectly constrained","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3314 `__","Is stream insertion behavior locale dependent when ``Period::type``\ is ``micro``\ ?","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3304 `__","Allocate functions of ``std::polymorphic_allocator``\ should require ``[[nodiscard]]``\ ","2020-02 (Prague)","|Complete|","16","" +"`LWG3307 `__","``std::allocator().allocate(n)``\ ","2020-02 (Prague)","|Complete|","20","" +"`LWG3310 `__","Replace ``SIZE_MAX``\ with ``numeric_limits::max()``\ ","2020-02 (Prague)","|Complete|","16","" +"`LWG3313 `__","``join_view::iterator::operator--``\ is incorrectly constrained","2020-02 (Prague)","|Complete|","14","" +"`LWG3314 `__","Is stream insertion behavior locale dependent when ``Period::type``\ is ``micro``\ ?","2020-02 (Prague)","|Complete|","16","" "`LWG3315 `__","LWG3315: Correct Allocator Default Behavior","2020-02 (Prague)","|Complete|","","" "`LWG3316 `__","Correctly define epoch for ``utc_clock``\ / ``utc_timepoint``\ ","2020-02 (Prague)","","","" -"`LWG3317 `__","Incorrect ``operator<<``\ for floating-point durations","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3317 `__","Incorrect ``operator<<``\ for floating-point durations","2020-02 (Prague)","|Complete|","16","" "`LWG3318 `__","Clarify whether clocks can represent time before their epoch","2020-02 (Prague)","","","" "`LWG3319 `__","Properly reference specification of IANA time zone database","2020-02 (Prague)","|Nothing To Do|","","" "`LWG3320 `__","``span::cbegin/cend``\ methods produce different results than ``std::[ranges::]cbegin/cend``\ ","2020-02 (Prague)","|Complete|","","" -"`LWG3321 `__","``uninitialized_construct_using_allocator``\ should use ``construct_at``\ ","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3323 `__","``*has-tuple-element*``\ helper concept needs ``convertible_to``\ ","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3324 `__","Special-case ``std::strong/weak/partial_order``\ for pointers","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3325 `__","Constrain return type of transformation function for ``transform_view``\ ","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3326 `__","``enable_view``\ has false positives","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3321 `__","``uninitialized_construct_using_allocator``\ should use ``construct_at``\ ","2020-02 (Prague)","|Complete|","16","" +"`LWG3323 `__","``*has-tuple-element*``\ helper concept needs ``convertible_to``\ ","2020-02 (Prague)","|Complete|","16","" +"`LWG3324 `__","Special-case ``std::strong/weak/partial_order``\ for pointers","2020-02 (Prague)","|Complete|","14","" +"`LWG3325 `__","Constrain return type of transformation function for ``transform_view``\ ","2020-02 (Prague)","|Complete|","15","" +"`LWG3326 `__","``enable_view``\ has false positives","2020-02 (Prague)","|Complete|","15","" "`LWG3327 `__","Format alignment specifiers vs. text direction","2020-02 (Prague)","|Nothing To Do|","","" "`LWG3328 `__","Clarify that ``std::string``\ is not good for UTF-8","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3329 `__","``totally_ordered_with``\ both directly and indirectly requires ``common_reference_with``\ ","2020-02 (Prague)","|Complete|","13.0","" -"`LWG3330 `__","Include ````\ from most library headers","2020-02 (Prague)","|Complete|","13.0","" -"`LWG3331 `__","Define ``totally_ordered/_with``\ in terms of ``partially-ordered-with``\ ","2020-02 (Prague)","|Complete|","13.0","" -"`LWG3332 `__","Issue in |sect|\ [time.format]","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3334 `__","``basic_osyncstream``\ move assignment and destruction calls ``basic_syncbuf::emit()``\ twice","2020-02 (Prague)","|Complete|","18.0","" -"`LWG3335 `__","Resolve C++20 NB comments US 273 and GB 274","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3338 `__","Rename ``default_constructible``\ to ``default_initializable``\ ","2020-02 (Prague)","|Complete|","13.0","" -"`LWG3340 `__","Formatting functions should throw on argument/format string mismatch in |sect|\ [format.functions]","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3329 `__","``totally_ordered_with``\ both directly and indirectly requires ``common_reference_with``\ ","2020-02 (Prague)","|Complete|","13","" +"`LWG3330 `__","Include ````\ from most library headers","2020-02 (Prague)","|Complete|","13","" +"`LWG3331 `__","Define ``totally_ordered/_with``\ in terms of ``partially-ordered-with``\ ","2020-02 (Prague)","|Complete|","13","" +"`LWG3332 `__","Issue in |sect|\ [time.format]","2020-02 (Prague)","|Complete|","16","" +"`LWG3334 `__","``basic_osyncstream``\ move assignment and destruction calls ``basic_syncbuf::emit()``\ twice","2020-02 (Prague)","|Complete|","18","" +"`LWG3335 `__","Resolve C++20 NB comments US 273 and GB 274","2020-02 (Prague)","|Complete|","15","" +"`LWG3338 `__","Rename ``default_constructible``\ to ``default_initializable``\ ","2020-02 (Prague)","|Complete|","13","" +"`LWG3340 `__","Formatting functions should throw on argument/format string mismatch in |sect|\ [format.functions]","2020-02 (Prague)","|Complete|","14","" "`LWG3346 `__","``pair``\ and ``tuple``\ copy and move constructor have backwards specification","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3347 `__","``std::pair``\ now requires ``T``\ and ``U``\ to be less-than-comparable","2020-02 (Prague)","|Complete|","17.0","" -"`LWG3348 `__","``__cpp_lib_unwrap_ref``\ in wrong header","2020-02 (Prague)","|Complete|","12.0","" -"`LWG3349 `__","Missing ``__cpp_lib_constexpr_complex``\ for P0415R1","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3350 `__","Simplify return type of ``lexicographical_compare_three_way``\ ","2020-02 (Prague)","|Complete|","17.0","" -"`LWG3351 `__","``ranges::enable_safe_range``\ should not be constrained","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3352 `__","``strong_equality``\ isn't a thing","2020-02 (Prague)","|Complete|","19.0","" +"`LWG3347 `__","``std::pair``\ now requires ``T``\ and ``U``\ to be less-than-comparable","2020-02 (Prague)","|Complete|","17","" +"`LWG3348 `__","``__cpp_lib_unwrap_ref``\ in wrong header","2020-02 (Prague)","|Complete|","12","" +"`LWG3349 `__","Missing ``__cpp_lib_constexpr_complex``\ for P0415R1","2020-02 (Prague)","|Complete|","16","" +"`LWG3350 `__","Simplify return type of ``lexicographical_compare_three_way``\ ","2020-02 (Prague)","|Complete|","17","" +"`LWG3351 `__","``ranges::enable_safe_range``\ should not be constrained","2020-02 (Prague)","|Complete|","15","" +"`LWG3352 `__","``strong_equality``\ isn't a thing","2020-02 (Prague)","|Complete|","19","" "`LWG3354 `__","``has_strong_structural_equality``\ has a meaningless definition","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3355 `__","The memory algorithms should support move-only input iterators introduced by P1207","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3356 `__","``__cpp_lib_nothrow_convertible``\ should be ``__cpp_lib_is_nothrow_convertible``\ ","2020-02 (Prague)","|Complete|","12.0","" -"`LWG3358 `__","|sect|\ [span.cons] is mistaken that ``to_address``\ can throw","2020-02 (Prague)","|Complete|","17.0","" +"`LWG3355 `__","The memory algorithms should support move-only input iterators introduced by P1207","2020-02 (Prague)","|Complete|","15","" +"`LWG3356 `__","``__cpp_lib_nothrow_convertible``\ should be ``__cpp_lib_is_nothrow_convertible``\ ","2020-02 (Prague)","|Complete|","12","" +"`LWG3358 `__","|sect|\ [span.cons] is mistaken that ``to_address``\ can throw","2020-02 (Prague)","|Complete|","17","" "`LWG3359 `__","````\ leap second support should allow for negative leap seconds","2020-02 (Prague)","|In Progress|","","" "`LWG3360 `__","``three_way_comparable_with``\ is inconsistent with similar concepts","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3362 `__","Strike ``stop_source``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17.0","" +"`LWG3362 `__","Strike ``stop_source``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17","" "`LWG3363 `__","``drop_while_view``\ should opt-out of ``sized_range``\ ","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3364 `__","Initialize data members of ranges and their iterators","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3364 `__","Initialize data members of ranges and their iterators","2020-02 (Prague)","|Complete|","16","" "`LWG3367 `__","Integer-class conversions should not throw","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3369 `__","``span``\ 's deduction-guide for built-in arrays doesn't work","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3371 `__","``visit_format_arg``\ and ``make_format_args``\ are not hidden friends","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3372 `__","``vformat_to``\ should not try to deduce ``Out``\ twice","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3373 `__","``{to,from}_chars_result``\ and ``format_to_n_result``\ need the ""we really mean what we say"" wording","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3374 `__","P0653 + P1006 should have made the other ``std::to_address``\ overload ``constexpr``\ ","2020-02 (Prague)","|Complete|","12.0","" -"`LWG3375 `__","``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ ","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3369 `__","``span``\ 's deduction-guide for built-in arrays doesn't work","2020-02 (Prague)","|Complete|","14","" +"`LWG3371 `__","``visit_format_arg``\ and ``make_format_args``\ are not hidden friends","2020-02 (Prague)","|Complete|","14","" +"`LWG3372 `__","``vformat_to``\ should not try to deduce ``Out``\ twice","2020-02 (Prague)","|Complete|","14","" +"`LWG3373 `__","``{to,from}_chars_result``\ and ``format_to_n_result``\ need the ""we really mean what we say"" wording","2020-02 (Prague)","|Complete|","14","" +"`LWG3374 `__","P0653 + P1006 should have made the other ``std::to_address``\ overload ``constexpr``\ ","2020-02 (Prague)","|Complete|","12","" +"`LWG3375 `__","``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ ","2020-02 (Prague)","|Complete|","15","" "`LWG3377 `__","``elements_view::iterator``\ befriends a specialization of itself","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3379 `__","""``safe``\ "" in several library names is misleading","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3380 `__","``common_type``\ and comparison categories","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3379 `__","""``safe``\ "" in several library names is misleading","2020-02 (Prague)","|Complete|","15","" +"`LWG3380 `__","``common_type``\ and comparison categories","2020-02 (Prague)","|Complete|","15","" "`LWG3381 `__","``begin``\ and ``data``\ must agree for ``contiguous_range``\ ","2020-02 (Prague)","|Nothing To Do|","","" "`LWG3382 `__","NTTP for ``pair``\ and ``array``\ ","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3383 `__","|sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ ","2020-02 (Prague)","|Complete|","19.0","" -"`LWG3384 `__","``transform_view::*sentinel*``\ has an incorrect ``operator-``\ ","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3385 `__","``common_iterator``\ is not sufficiently constrained for non-copyable iterators","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3387 `__","|sect|\ [range.reverse.view] ``reverse_view``\ unintentionally requires ``range``\ ","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3388 `__","``view``\ iterator types have ill-formed ``<=>``\ operators","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3389 `__","A move-only iterator still does not have a ``counted_iterator``\ ","2020-02 (Prague)","|Complete|","15.0","" -"`LWG3390 `__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3393 `__","Missing/incorrect feature test macro for coroutines","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3383 `__","|sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ ","2020-02 (Prague)","|Complete|","19","" +"`LWG3384 `__","``transform_view::*sentinel*``\ has an incorrect ``operator-``\ ","2020-02 (Prague)","|Complete|","15","" +"`LWG3385 `__","``common_iterator``\ is not sufficiently constrained for non-copyable iterators","2020-02 (Prague)","|Complete|","15","" +"`LWG3387 `__","|sect|\ [range.reverse.view] ``reverse_view``\ unintentionally requires ``range``\ ","2020-02 (Prague)","|Complete|","15","" +"`LWG3388 `__","``view``\ iterator types have ill-formed ``<=>``\ operators","2020-02 (Prague)","|Complete|","16","" +"`LWG3389 `__","A move-only iterator still does not have a ``counted_iterator``\ ","2020-02 (Prague)","|Complete|","15","" +"`LWG3390 `__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","2020-02 (Prague)","|Complete|","14","" +"`LWG3393 `__","Missing/incorrect feature test macro for coroutines","2020-02 (Prague)","|Complete|","14","" "`LWG3395 `__","LWG3395: Definition for three-way comparison needs to be updated (US 152)","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3396 `__","Clarify point of reference for ``source_location::current()``\ (DE 169)","2020-02 (Prague)","|Nothing To Do|","16.0","" -"`LWG3397 `__","``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ ","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3398 `__","``tuple_element_t``\ is also wrong for ``const subrange``\ ","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3396 `__","Clarify point of reference for ``source_location::current()``\ (DE 169)","2020-02 (Prague)","|Nothing To Do|","16","" +"`LWG3397 `__","``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ ","2020-02 (Prague)","|Complete|","16","" +"`LWG3398 `__","``tuple_element_t``\ is also wrong for ``const subrange``\ ","2020-02 (Prague)","|Complete|","14","" "","","","","","" -"`LWG3446 `__","``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ ","2020-11 (Virtual)","|Complete|","13.0","" +"`LWG3446 `__","``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ ","2020-11 (Virtual)","|Complete|","13","" diff --git a/libcxx/docs/Status/Cxx20Papers.csv b/libcxx/docs/Status/Cxx20Papers.csv index 5cd77be4d58de..c8c30a315fcaf 100644 --- a/libcxx/docs/Status/Cxx20Papers.csv +++ b/libcxx/docs/Status/Cxx20Papers.csv @@ -1,148 +1,148 @@ "Paper #","Paper Name","Meeting","Status","First released version","Notes" -"`P0463R1 `__","Endian just Endian","2017-07 (Toronto)","|Complete|","7.0","" -"`P0674R1 `__","Extending make_shared to Support Arrays","2017-07 (Toronto)","|Complete|","15.0","" +"`P0463R1 `__","Endian just Endian","2017-07 (Toronto)","|Complete|","7","" +"`P0674R1 `__","Extending make_shared to Support Arrays","2017-07 (Toronto)","|Complete|","15","" "","","","","","" -"`P0020R6 `__","Floating Point Atomic","2017-11 (Albuquerque)","|Complete|","18.0","" -"`P0053R7 `__","C++ Synchronized Buffered Ostream","2017-11 (Albuquerque)","|Complete|","18.0","" -"`P0202R3 `__","Add constexpr modifiers to functions in and Headers","2017-11 (Albuquerque)","|Complete|","12.0","" -"`P0415R1 `__","Constexpr for ``std::complex``\ ","2017-11 (Albuquerque)","|Complete|","16.0","" +"`P0020R6 `__","Floating Point Atomic","2017-11 (Albuquerque)","|Complete|","18","" +"`P0053R7 `__","C++ Synchronized Buffered Ostream","2017-11 (Albuquerque)","|Complete|","18","" +"`P0202R3 `__","Add constexpr modifiers to functions in and Headers","2017-11 (Albuquerque)","|Complete|","12","" +"`P0415R1 `__","Constexpr for ``std::complex``\ ","2017-11 (Albuquerque)","|Complete|","16","" "`P0439R0 `__","Make ``std::memory_order``\ a scoped enumeration","2017-11 (Albuquerque)","|Complete|","","" -"`P0457R2 `__","String Prefix and Suffix Checking","2017-11 (Albuquerque)","|Complete|","6.0","" -"`P0550R2 `__","Transformation Trait ``remove_cvref``\ ","2017-11 (Albuquerque)","|Complete|","6.0","" -"`P0600R1 `__","nodiscard in the Library","2017-11 (Albuquerque)","|Complete|","16.0","" -"`P0616R0 `__","de-pessimize legacy algorithms with std::move","2017-11 (Albuquerque)","|Complete|","12.0","" -"`P0653R2 `__","Utility to convert a pointer to a raw pointer","2017-11 (Albuquerque)","|Complete|","6.0","" +"`P0457R2 `__","String Prefix and Suffix Checking","2017-11 (Albuquerque)","|Complete|","6","" +"`P0550R2 `__","Transformation Trait ``remove_cvref``\ ","2017-11 (Albuquerque)","|Complete|","6","" +"`P0600R1 `__","nodiscard in the Library","2017-11 (Albuquerque)","|Complete|","16","" +"`P0616R0 `__","de-pessimize legacy algorithms with std::move","2017-11 (Albuquerque)","|Complete|","12","" +"`P0653R2 `__","Utility to convert a pointer to a raw pointer","2017-11 (Albuquerque)","|Complete|","6","" "`P0718R2 `__","Atomic shared_ptr","2017-11 (Albuquerque)","","","" -"`P0767R1 `__","Deprecate POD","2017-11 (Albuquerque)","|Complete|","7.0","" +"`P0767R1 `__","Deprecate POD","2017-11 (Albuquerque)","|Complete|","7","" "`P0768R1 `__","Library Support for the Spaceship (Comparison) Operator","2017-11 (Albuquerque)","|Complete|","","" -"`P0777R1 `__","Treating Unnecessary ``decay``\ ","2017-11 (Albuquerque)","|Complete|","7.0","" +"`P0777R1 `__","Treating Unnecessary ``decay``\ ","2017-11 (Albuquerque)","|Complete|","7","" "","","","","","" -"`P0122R7 `__","","2018-03 (Jacksonville)","|Complete|","7.0","" +"`P0122R7 `__","","2018-03 (Jacksonville)","|Complete|","7","" "`P0355R7 `__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial|","","See the `Github issue `__ for detailed status" -"`P0551R3 `__","Thou Shalt Not Specialize ``std``\ Function Templates!","2018-03 (Jacksonville)","|Complete|","11.0","" +"`P0551R3 `__","Thou Shalt Not Specialize ``std``\ Function Templates!","2018-03 (Jacksonville)","|Complete|","11","" "`P0753R2 `__","Manipulators for C++ Synchronized Buffered Ostream","2018-03 (Jacksonville)","","","" -"`P0754R2 `__","","2018-03 (Jacksonville)","|Complete|","7.0","" +"`P0754R2 `__","","2018-03 (Jacksonville)","|Complete|","7","" "`P0809R0 `__","Comparing Unordered Containers","2018-03 (Jacksonville)","|Nothing To Do|","","" -"`P0858R0 `__","Constexpr iterator requirements","2018-03 (Jacksonville)","|Complete|","12.0","" -"`P0905R1 `__","Symmetry for spaceship","2018-03 (Jacksonville)","|Complete|","7.0","" -"`P0966R1 `__","``string::reserve``\ Should Not Shrink","2018-03 (Jacksonville)","|Complete|","12.0","It was previously erroneously marked as complete in version 8.0. See `bug 45368 `__" +"`P0858R0 `__","Constexpr iterator requirements","2018-03 (Jacksonville)","|Complete|","12","" +"`P0905R1 `__","Symmetry for spaceship","2018-03 (Jacksonville)","|Complete|","7","" +"`P0966R1 `__","``string::reserve``\ Should Not Shrink","2018-03 (Jacksonville)","|Complete|","12","It was previously erroneously marked as complete in version 8. See `bug 45368 `__" "","","","","","" -"`P0019R8 `__","Atomic Ref","2018-06 (Rapperswil)","|Complete|","19.0","" -"`P0458R2 `__","Checking for Existence of an Element in Associative Containers","2018-06 (Rapperswil)","|Complete|","13.0","" +"`P0019R8 `__","Atomic Ref","2018-06 (Rapperswil)","|Complete|","19","" +"`P0458R2 `__","Checking for Existence of an Element in Associative Containers","2018-06 (Rapperswil)","|Complete|","13","" "`P0475R1 `__","LWG 2511: guaranteed copy elision for piecewise construction","2018-06 (Rapperswil)","|Complete|","","" -"`P0476R2 `__","Bit-casting object representations","2018-06 (Rapperswil)","|Complete|","14.0","" +"`P0476R2 `__","Bit-casting object representations","2018-06 (Rapperswil)","|Complete|","14","" "`P0528R3 `__","The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange","2018-06 (Rapperswil)","","","" "`P0542R5 `__","Support for contract based programming in C++","2018-06 (Rapperswil)","|Nothing To Do|","n/a","Pulled at the 2019-07 meeting in Cologne" -"`P0556R3 `__","Integral power-of-2 operations","2018-06 (Rapperswil)","|Complete|","9.0","" -"`P0619R4 `__","Reviewing Deprecated Facilities of C++17 for C++20","2018-06 (Rapperswil)","|Complete|","20.0","Removed headers are still provided as an extension, but with deprecation warnings" -"`P0646R1 `__","Improving the Return Value of Erase-Like Algorithms","2018-06 (Rapperswil)","|Complete|","10.0","" -"`P0722R3 `__","Efficient sized delete for variable sized classes","2018-06 (Rapperswil)","|Complete|","9.0","" +"`P0556R3 `__","Integral power-of-2 operations","2018-06 (Rapperswil)","|Complete|","9","" +"`P0619R4 `__","Reviewing Deprecated Facilities of C++17 for C++20","2018-06 (Rapperswil)","|Complete|","20","Removed headers are still provided as an extension, but with deprecation warnings" +"`P0646R1 `__","Improving the Return Value of Erase-Like Algorithms","2018-06 (Rapperswil)","|Complete|","10","" +"`P0722R3 `__","Efficient sized delete for variable sized classes","2018-06 (Rapperswil)","|Complete|","9","" "`P0758R1 `__","Implicit conversion traits and utility functions","2018-06 (Rapperswil)","|Complete|","","" -"`P0759R1 `__","fpos Requirements","2018-06 (Rapperswil)","|Complete|","11.0","" -"`P0769R2 `__","Add shift to ","2018-06 (Rapperswil)","|Complete|","12.0","" +"`P0759R1 `__","fpos Requirements","2018-06 (Rapperswil)","|Complete|","11","" +"`P0769R2 `__","Add shift to ","2018-06 (Rapperswil)","|Complete|","12","" "`P0788R3 `__","Standard Library Specification in a Concepts and Contracts World","2018-06 (Rapperswil)","|Nothing To Do|","n/a","Pulled at the 2019-07 meeting in Cologne" -"`P0879R0 `__","Constexpr for swap and swap related functions Also resolves LWG issue 2800.","2018-06 (Rapperswil)","|Complete|","13.0","" -"`P0887R1 `__","The identity metafunction","2018-06 (Rapperswil)","|Complete|","8.0","" +"`P0879R0 `__","Constexpr for swap and swap related functions Also resolves LWG issue 2800.","2018-06 (Rapperswil)","|Complete|","13","" +"`P0887R1 `__","The identity metafunction","2018-06 (Rapperswil)","|Complete|","8","" "`P0892R2 `__","explicit(bool)","2018-06 (Rapperswil)","","","" -"`P0898R3 `__","Standard Library Concepts","2018-06 (Rapperswil)","|Complete|","13.0","" -"`P0935R0 `__","Eradicating unnecessarily explicit default constructors from the standard library","2018-06 (Rapperswil)","|Complete|","12.0","" +"`P0898R3 `__","Standard Library Concepts","2018-06 (Rapperswil)","|Complete|","13","" +"`P0935R0 `__","Eradicating unnecessarily explicit default constructors from the standard library","2018-06 (Rapperswil)","|Complete|","12","" "`P0941R2 `__","Integrating feature-test macros into the C++ WD","2018-06 (Rapperswil)","|In Progress|","","" -"`P1023R0 `__","constexpr comparison operators for std::array","2018-06 (Rapperswil)","|Complete|","8.0","" +"`P1023R0 `__","constexpr comparison operators for std::array","2018-06 (Rapperswil)","|Complete|","8","" "`P1025R1 `__","Update The Reference To The Unicode Standard","2018-06 (Rapperswil)","","","" "`P1120R0 `__","Consistency improvements for <=> and other comparison operators","2018-06 (Rapperswil)","","","" "","","","","","" -"`P0318R1 `__","unwrap_ref_decay and unwrap_reference","2018-11 (San Diego)","|Complete|","8.0","" -"`P0356R5 `__","Simplified partial function application","2018-11 (San Diego)","|Complete|","13.0","" -"`P0357R3 `__","reference_wrapper for incomplete types","2018-11 (San Diego)","|Complete|","8.0","" -"`P0482R6 `__","char8_t: A type for UTF-8 characters and strings","2018-11 (San Diego)","|Complete|","16.0","" -"`P0487R1 `__","Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)","2018-11 (San Diego)","|Complete|","8.0","" +"`P0318R1 `__","unwrap_ref_decay and unwrap_reference","2018-11 (San Diego)","|Complete|","8","" +"`P0356R5 `__","Simplified partial function application","2018-11 (San Diego)","|Complete|","13","" +"`P0357R3 `__","reference_wrapper for incomplete types","2018-11 (San Diego)","|Complete|","8","" +"`P0482R6 `__","char8_t: A type for UTF-8 characters and strings","2018-11 (San Diego)","|Complete|","16","" +"`P0487R1 `__","Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)","2018-11 (San Diego)","|Complete|","8","" "`P0591R4 `__","Utility functions to implement uses-allocator construction","2018-11 (San Diego)","|Partial|","","The changes in [mem.poly.allocator.mem] are missing" -"`P0595R2 `__","std::is_constant_evaluated()","2018-11 (San Diego)","|Complete|","9.0","" -"`P0602R4 `__","variant and optional should propagate copy/move triviality","2018-11 (San Diego)","|Complete|","8.0","" -"`P0608R3 `__","A sane variant converting constructor","2018-11 (San Diego)","|Complete|","9.0","" -"`P0655R1 `__","visit: Explicit Return Type for visit","2018-11 (San Diego)","|Complete|","12.0","" -"`P0771R1 `__","std::function move constructor should be noexcept","2018-11 (San Diego)","|Complete|","6.0","" -"`P0896R4 `__","The One Ranges Proposal","2018-11 (San Diego)","|Complete|","15.0","" +"`P0595R2 `__","std::is_constant_evaluated()","2018-11 (San Diego)","|Complete|","9","" +"`P0602R4 `__","variant and optional should propagate copy/move triviality","2018-11 (San Diego)","|Complete|","8","" +"`P0608R3 `__","A sane variant converting constructor","2018-11 (San Diego)","|Complete|","9","" +"`P0655R1 `__","visit: Explicit Return Type for visit","2018-11 (San Diego)","|Complete|","12","" +"`P0771R1 `__","std::function move constructor should be noexcept","2018-11 (San Diego)","|Complete|","6","" +"`P0896R4 `__","The One Ranges Proposal","2018-11 (San Diego)","|Complete|","15","" "`P0899R1 `__","P0899R1 - LWG 3016 is not a defect","2018-11 (San Diego)","|Nothing To Do|","","" -"`P0919R3 `__","Heterogeneous lookup for unordered containers","2018-11 (San Diego)","|Complete|","12.0","" -"`P0972R0 `__"," ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept","2018-11 (San Diego)","|Complete|","8.0","" -"`P1006R1 `__","Constexpr in std::pointer_traits","2018-11 (San Diego)","|Complete|","8.0","" -"`P1007R3 `__","``std::assume_aligned``\ ","2018-11 (San Diego)","|Complete|","15.0","" -"`P1020R1 `__","Smart pointer creation with default initialization","2018-11 (San Diego)","|Complete|","16.0","" -"`P1032R1 `__","Misc constexpr bits","2018-11 (San Diego)","|Complete|","13.0","" -"`P1085R2 `__","Should Span be Regular?","2018-11 (San Diego)","|Complete|","8.0","" +"`P0919R3 `__","Heterogeneous lookup for unordered containers","2018-11 (San Diego)","|Complete|","12","" +"`P0972R0 `__"," ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept","2018-11 (San Diego)","|Complete|","8","" +"`P1006R1 `__","Constexpr in std::pointer_traits","2018-11 (San Diego)","|Complete|","8","" +"`P1007R3 `__","``std::assume_aligned``\ ","2018-11 (San Diego)","|Complete|","15","" +"`P1020R1 `__","Smart pointer creation with default initialization","2018-11 (San Diego)","|Complete|","16","" +"`P1032R1 `__","Misc constexpr bits","2018-11 (San Diego)","|Complete|","13","" +"`P1085R2 `__","Should Span be Regular?","2018-11 (San Diego)","|Complete|","8","" "`P1123R0 `__","Editorial Guidance for merging P0019r8 and P0528r3","2018-11 (San Diego)","","","" "`P1148R0 `__","Cleaning up Clause 20","2018-11 (San Diego)","","","" -"`P1165R1 `__","Make stateful allocator propagation more consistent for ``operator+(basic_string)``\ ","2018-11 (San Diego)","|Complete|","15.0","" -"`P1209R0 `__","Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20","2018-11 (San Diego)","|Complete|","8.0","" +"`P1165R1 `__","Make stateful allocator propagation more consistent for ``operator+(basic_string)``\ ","2018-11 (San Diego)","|Complete|","15","" +"`P1209R0 `__","Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20","2018-11 (San Diego)","|Complete|","8","" "`P1210R0 `__","P1210R0: Completing the Rebase of Library Fundamentals, Version 3, Working Draft","2018-11 (San Diego)","|Nothing To Do|","","" "`P1236R1 `__","Alternative Wording for P0907R4 Signed Integers are Two's Complement","2018-11 (San Diego)","","","" -"`P1248R1 `__","Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)","2018-11 (San Diego)","|Complete|","13.0","" +"`P1248R1 `__","Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)","2018-11 (San Diego)","|Complete|","13","" "`P1285R0 `__","Improving Completeness Requirements for Type Traits","2018-11 (San Diego)","","","" "`P1353R0 `__","Missing feature test macros","2018-11 (San Diego)","|In Progress|","","" "","","","","","" -"`P0339R6 `__","polymorphic_allocator<> as a vocabulary type","2019-02 (Kona)","|Complete|","16.0","" -"`P0340R3 `__","Making std::underlying_type SFINAE-friendly","2019-02 (Kona)","|Complete|","9.0","" +"`P0339R6 `__","polymorphic_allocator<> as a vocabulary type","2019-02 (Kona)","|Complete|","16","" +"`P0340R3 `__","Making std::underlying_type SFINAE-friendly","2019-02 (Kona)","|Complete|","9","" "`P0738R2 `__","I Stream, You Stream, We All Stream for istream_iterator","2019-02 (Kona)","","","" -"`P0811R3 `__","Well-behaved interpolation for numbers and pointers","2019-02 (Kona)","|Complete|","9.0","" +"`P0811R3 `__","Well-behaved interpolation for numbers and pointers","2019-02 (Kona)","|Complete|","9","" "`P0920R2 `__","Precalculated hash values in lookup","2019-02 (Kona)","|Nothing To Do|","","Reverted by `P1661 `__" -"`P1001R2 `__","Target Vectorization Policies from Parallelism V2 TS to C++20","2019-02 (Kona)","|Complete|","17.0","" -"`P1024R3 `__","Usability Enhancements for std::span","2019-02 (Kona)","|Complete|","9.0","" -"`P1164R1 `__","Make create_directory() Intuitive","2019-02 (Kona)","|Complete|","12.0","" -"`P1227R2 `__","Signed ssize() functions, unsigned size() functions","2019-02 (Kona)","|Complete|","9.0","" -"`P1252R2 `__","Ranges Design Cleanup","2019-02 (Kona)","|Complete|","15.0","" +"`P1001R2 `__","Target Vectorization Policies from Parallelism V2 TS to C++20","2019-02 (Kona)","|Complete|","17","" +"`P1024R3 `__","Usability Enhancements for std::span","2019-02 (Kona)","|Complete|","9","" +"`P1164R1 `__","Make create_directory() Intuitive","2019-02 (Kona)","|Complete|","12","" +"`P1227R2 `__","Signed ssize() functions, unsigned size() functions","2019-02 (Kona)","|Complete|","9","" +"`P1252R2 `__","Ranges Design Cleanup","2019-02 (Kona)","|Complete|","15","" "`P1286R2 `__","Contra CWG DR1778","2019-02 (Kona)","","","" -"`P1357R1 `__","Traits for [Un]bounded Arrays","2019-02 (Kona)","|Complete|","9.0","" -"`P1458R1 `__","Mandating the Standard Library: Clause 16 - Language support library","2019-02 (Kona)","|Complete|","9.0","" -"`P1459R1 `__","Mandating the Standard Library: Clause 18 - Diagnostics library","2019-02 (Kona)","|Complete|","9.0","" -"`P1462R1 `__","Mandating the Standard Library: Clause 20 - Strings library","2019-02 (Kona)","|Complete|","9.0","" +"`P1357R1 `__","Traits for [Un]bounded Arrays","2019-02 (Kona)","|Complete|","9","" +"`P1458R1 `__","Mandating the Standard Library: Clause 16 - Language support library","2019-02 (Kona)","|Complete|","9","" +"`P1459R1 `__","Mandating the Standard Library: Clause 18 - Diagnostics library","2019-02 (Kona)","|Complete|","9","" +"`P1462R1 `__","Mandating the Standard Library: Clause 20 - Strings library","2019-02 (Kona)","|Complete|","9","" "`P1463R1 `__","Mandating the Standard Library: Clause 21 - Containers library","2019-02 (Kona)","","","" -"`P1464R1 `__","Mandating the Standard Library: Clause 22 - Iterators library","2019-02 (Kona)","|Complete|","9.0","" +"`P1464R1 `__","Mandating the Standard Library: Clause 22 - Iterators library","2019-02 (Kona)","|Complete|","9","" "","","","","","" -"`P0325R4 `__","to_array from LFTS with updates","2019-07 (Cologne)","|Complete|","10.0","" -"`P0408R7 `__","Efficient Access to basic_stringbuf's Buffer","2019-07 (Cologne)","|Complete|","17.0","" +"`P0325R4 `__","to_array from LFTS with updates","2019-07 (Cologne)","|Complete|","10","" +"`P0408R7 `__","Efficient Access to basic_stringbuf's Buffer","2019-07 (Cologne)","|Complete|","17","" "`P0466R5 `__","Layout-compatibility and Pointer-interconvertibility Traits","2019-07 (Cologne)","","","" -"`P0553R4 `__","Bit operations","2019-07 (Cologne)","|Complete|","9.0","" -"`P0631R8 `__","Math Constants","2019-07 (Cologne)","|Complete|","11.0","" -"`P0645R10 `__","Text Formatting","2019-07 (Cologne)","|Complete|","14.0","The implementation was complete since LLVM 14, but the feature-test macro was not set until LLVM 19" -"`P0660R10 `__","Stop Token and Joining Thread, Rev 10.","2019-07 (Cologne)","|Complete|","20.0","The feature was implemented since LLVM 18 but was guarded behind ``-fexperimental-library``." -"`P0784R7 `__","More constexpr containers","2019-07 (Cologne)","|Complete|","12.0","" -"`P0980R1 `__","Making std::string constexpr","2019-07 (Cologne)","|Complete|","15.0","" -"`P1004R2 `__","Making std::vector constexpr","2019-07 (Cologne)","|Complete|","15.0","" -"`P1035R7 `__","Input Range Adaptors","2019-07 (Cologne)","|Complete|","16.0","" -"`P1065R2 `__","Constexpr INVOKE","2019-07 (Cologne)","|Complete|","12.0","" -"`P1135R6 `__","The C++20 Synchronization Library","2019-07 (Cologne)","|Complete|","11.0","" -"`P1207R4 `__","Movability of Single-pass Iterators","2019-07 (Cologne)","|Complete|","15.0","" -"`P1208R6 `__","Adopt source_location for C++20","2019-07 (Cologne)","|Complete|","16.0","" -"`P1355R2 `__","Exposing a narrow contract for ceil2","2019-07 (Cologne)","|Complete|","9.0","" +"`P0553R4 `__","Bit operations","2019-07 (Cologne)","|Complete|","9","" +"`P0631R8 `__","Math Constants","2019-07 (Cologne)","|Complete|","11","" +"`P0645R10 `__","Text Formatting","2019-07 (Cologne)","|Complete|","14","The implementation was complete since LLVM 14, but the feature-test macro was not set until LLVM 19" +"`P0660R10 `__","Stop Token and Joining Thread, Rev 10.","2019-07 (Cologne)","|Complete|","20","The feature was implemented since LLVM 18 but was guarded behind ``-fexperimental-library``." +"`P0784R7 `__","More constexpr containers","2019-07 (Cologne)","|Complete|","12","" +"`P0980R1 `__","Making std::string constexpr","2019-07 (Cologne)","|Complete|","15","" +"`P1004R2 `__","Making std::vector constexpr","2019-07 (Cologne)","|Complete|","15","" +"`P1035R7 `__","Input Range Adaptors","2019-07 (Cologne)","|Complete|","16","" +"`P1065R2 `__","Constexpr INVOKE","2019-07 (Cologne)","|Complete|","12","" +"`P1135R6 `__","The C++20 Synchronization Library","2019-07 (Cologne)","|Complete|","11","" +"`P1207R4 `__","Movability of Single-pass Iterators","2019-07 (Cologne)","|Complete|","15","" +"`P1208R6 `__","Adopt source_location for C++20","2019-07 (Cologne)","|Complete|","16","" +"`P1355R2 `__","Exposing a narrow contract for ceil2","2019-07 (Cologne)","|Complete|","9","" "`P1361R2 `__","Integration of chrono with text formatting","2019-07 (Cologne)","|Partial|","","" -"`P1423R3 `__","char8_t backward compatibility remediation","2019-07 (Cologne)","|Complete|","15.0","" +"`P1423R3 `__","char8_t backward compatibility remediation","2019-07 (Cologne)","|Complete|","15","" "`P1424R1 `__","'constexpr' feature macro concerns","2019-07 (Cologne)","|Nothing To Do|","","Superseded by `P1902 `__" "`P1466R3 `__","Miscellaneous minor fixes for chrono","2019-07 (Cologne)","|Partial|","","" -"`P1474R1 `__","Helpful pointers for ContiguousIterator","2019-07 (Cologne)","|Complete|","15.0","" +"`P1474R1 `__","Helpful pointers for ContiguousIterator","2019-07 (Cologne)","|Complete|","15","" "`P1502R1 `__","Standard library header units for C++20","2019-07 (Cologne)","","","" -"`P1522R1 `__","Iterator Difference Type and Integer Overflow","2019-07 (Cologne)","|Complete|","15.0","" -"`P1523R1 `__","Views and Size Types","2019-07 (Cologne)","|Complete|","15.0","" -"`P1612R1 `__","Relocate Endian's Specification","2019-07 (Cologne)","|Complete|","10.0","" -"`P1614R2 `__","The Mothership has Landed","2019-07 (Cologne)","|Complete|","19.0","``std::strong_order(long double, long double)`` is partly implemented." -"`P1638R1 `__","basic_istream_view::iterator should not be copyable","2019-07 (Cologne)","|Complete|","16.0","" -"`P1643R1 `__","Add wait/notify to atomic_ref","2019-07 (Cologne)","|Complete|","19.0","" +"`P1522R1 `__","Iterator Difference Type and Integer Overflow","2019-07 (Cologne)","|Complete|","15","" +"`P1523R1 `__","Views and Size Types","2019-07 (Cologne)","|Complete|","15","" +"`P1612R1 `__","Relocate Endian's Specification","2019-07 (Cologne)","|Complete|","10","" +"`P1614R2 `__","The Mothership has Landed","2019-07 (Cologne)","|Complete|","19","``std::strong_order(long double, long double)`` is partly implemented." +"`P1638R1 `__","basic_istream_view::iterator should not be copyable","2019-07 (Cologne)","|Complete|","16","" +"`P1643R1 `__","Add wait/notify to atomic_ref","2019-07 (Cologne)","|Complete|","19","" "`P1644R0 `__","Add wait/notify to atomic","2019-07 (Cologne)","","","" -"`P1650R0 `__","Output std::chrono::days with 'd' suffix","2019-07 (Cologne)","|Complete|","16.0","" -"`P1651R0 `__","bind_front should not unwrap reference_wrapper","2019-07 (Cologne)","|Complete|","13.0","" -"`P1652R1 `__","Printf corner cases in std::format","2019-07 (Cologne)","|Complete|","14.0","" +"`P1650R0 `__","Output std::chrono::days with 'd' suffix","2019-07 (Cologne)","|Complete|","16","" +"`P1651R0 `__","bind_front should not unwrap reference_wrapper","2019-07 (Cologne)","|Complete|","13","" +"`P1652R1 `__","Printf corner cases in std::format","2019-07 (Cologne)","|Complete|","14","" "`P1661R1 `__","Remove dedicated precalculated hash lookup interface","2019-07 (Cologne)","|Nothing To Do|","","" -"`P1754R1 `__","Rename concepts to standard_case for C++20, while we still can","2019-07 (Cologne)","|Complete|","15.0","" +"`P1754R1 `__","Rename concepts to standard_case for C++20, while we still can","2019-07 (Cologne)","|Complete|","15","" "","","","","","" -"`P0883R2 `__","Fixing Atomic Initialization","2019-11 (Belfast)","|Complete|","14.0","shared_ptr and floating-point changes weren't applied as they themselves aren't implemented yet. Also, ``ATOMIC_FLAG_INIT`` was marked deprecated in version 14.0, but was undeprecated with the implementation of LWG3659 in version 15.0." -"`P1391R4 `__","Range constructor for std::string_view","2019-11 (Belfast)","|Complete|","14.0","" -"`P1394R4 `__","Range constructor for std::span","2019-11 (Belfast)","|Complete|","14.0","" -"`P1456R1 `__","Move-only views","2019-11 (Belfast)","|Complete|","15.0","" +"`P0883R2 `__","Fixing Atomic Initialization","2019-11 (Belfast)","|Complete|","14","shared_ptr and floating-point changes weren't applied as they themselves aren't implemented yet. Also, ``ATOMIC_FLAG_INIT`` was marked deprecated in version 14, but was undeprecated with the implementation of LWG3659 in version 15." +"`P1391R4 `__","Range constructor for std::string_view","2019-11 (Belfast)","|Complete|","14","" +"`P1394R4 `__","Range constructor for std::span","2019-11 (Belfast)","|Complete|","14","" +"`P1456R1 `__","Move-only views","2019-11 (Belfast)","|Complete|","15","" "`P1622R3 `__","Mandating the Standard Library: Clause 32 - Thread support library","2019-11 (Belfast)","","","" -"`P1645R1 `__","constexpr for numeric algorithms","2019-11 (Belfast)","|Complete|","12.0","" +"`P1645R1 `__","constexpr for numeric algorithms","2019-11 (Belfast)","|Complete|","12","" "`P1686R2 `__","Mandating the Standard Library: Clause 27 - Time library","2019-11 (Belfast)","","","" -"`P1690R1 `__","Refinement Proposal for P0919 Heterogeneous lookup for unordered containers","2019-11 (Belfast)","|Complete|","12.0","" -"`P1716R3 `__","ranges compare algorithm are over-constrained","2019-11 (Belfast)","|Complete|","15.0","" +"`P1690R1 `__","Refinement Proposal for P0919 Heterogeneous lookup for unordered containers","2019-11 (Belfast)","|Complete|","12","" +"`P1716R3 `__","ranges compare algorithm are over-constrained","2019-11 (Belfast)","|Complete|","15","" "`P1718R2 `__","Mandating the Standard Library: Clause 25 - Algorithms library","2019-11 (Belfast)","","","" "`P1719R2 `__","Mandating the Standard Library: Clause 26 - Numerics library","2019-11 (Belfast)","","","" "`P1720R2 `__","Mandating the Standard Library: Clause 28 - Localization library","2019-11 (Belfast)","","","" @@ -150,57 +150,57 @@ "`P1722R2 `__","Mandating the Standard Library: Clause 30 - Regular Expression library","2019-11 (Belfast)","","","" "`P1723R2 `__","Mandating the Standard Library: Clause 31 - Atomics library","2019-11 (Belfast)","","","" "`P1855R0 `__","Make ````\ freestanding","2019-11 (Belfast)","","","" -"`P1862R1 `__","Ranges adaptors for non-copyable iterators","2019-11 (Belfast)","|Complete|","16.0","" -"`P1865R1 `__","Add max() to latch and barrier","2019-11 (Belfast)","|Complete|","11.0","" -"`P1869R1 `__","Rename 'condition_variable_any' interruptible wait methods","2019-11 (Belfast)","|Complete|","18.0","" -"`P1870R1 `__","forwarding-range is too subtle","2019-11 (Belfast)","|Complete|","15.0","" -"`P1871R1 `__","Concept traits should be named after concepts","2019-11 (Belfast)","|Complete|","14.0","" -"`P1872R0 `__","span should have size_type, not index_type","2019-11 (Belfast)","|Complete|","10.0","" -"`P1878R1 `__","Constraining Readable Types","2019-11 (Belfast)","|Complete|","15.0","" -"`P1892R1 `__","Extended locale-specific presentation specifiers for std::format","2019-11 (Belfast)","|Complete|","14.0","" +"`P1862R1 `__","Ranges adaptors for non-copyable iterators","2019-11 (Belfast)","|Complete|","16","" +"`P1865R1 `__","Add max() to latch and barrier","2019-11 (Belfast)","|Complete|","11","" +"`P1869R1 `__","Rename 'condition_variable_any' interruptible wait methods","2019-11 (Belfast)","|Complete|","18","" +"`P1870R1 `__","forwarding-range is too subtle","2019-11 (Belfast)","|Complete|","15","" +"`P1871R1 `__","Concept traits should be named after concepts","2019-11 (Belfast)","|Complete|","14","" +"`P1872R0 `__","span should have size_type, not index_type","2019-11 (Belfast)","|Complete|","10","" +"`P1878R1 `__","Constraining Readable Types","2019-11 (Belfast)","|Complete|","15","" +"`P1892R1 `__","Extended locale-specific presentation specifiers for std::format","2019-11 (Belfast)","|Complete|","14","" "`P1902R1 `__","Missing feature-test macros 2018-2019","2019-11 (Belfast)","","","" "`P1959R0 `__","Remove std::weak_equality and std::strong_equality","2019-11 (Belfast)","|Nothing To Do|","","" "`P1960R0 `__","NB Comment Changes Reviewed by SG1","2019-11 (Belfast)","","","" "`P1961R0 `__","Harmonizing the definitions of total order for pointers","2019-11 (Belfast)","","","" "`P1965R0 `__","Blanket Wording for Specifying ""Hidden Friends""","2019-11 (Belfast)","","","" "","","","","","" -"`P0586R2 `__","Safe integral comparisons","2020-02 (Prague)","|Complete|","13.0","" +"`P0586R2 `__","Safe integral comparisons","2020-02 (Prague)","|Complete|","13","" "`P0593R6 `__","Implicit creation of objects for low-level object manipulation","2020-02 (Prague)","","","" -"`P1115R3 `__","Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if","2020-02 (Prague)","|Complete|","11.0","" -"`P1243R4 `__","Rangify New Algorithms","2020-02 (Prague)","|Complete|","15.0","" +"`P1115R3 `__","Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if","2020-02 (Prague)","|Complete|","11","" +"`P1243R4 `__","Rangify New Algorithms","2020-02 (Prague)","|Complete|","15","" "`P1460R1 `__","Mandating the Standard Library: Clause 20 - Utilities library","2020-02 (Prague)","","","" -"`P1739R4 `__","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","2020-02 (Prague)","|Complete|","15.0","" +"`P1739R4 `__","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","2020-02 (Prague)","|Complete|","15","" "`P1831R1 `__","Deprecating volatile: library","2020-02 (Prague)","","","" -"`P1868R2 `__","width: clarifying units of width and precision in std::format","2020-02 (Prague)","|Complete|","14.0","" -"`P1956R1 `__","On the names of low-level bit manipulation functions","2020-02 (Prague)","|Complete|","12.0","" -"`P1957R2 `__","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","2020-02 (Prague)","|Complete|","18.0","" +"`P1868R2 `__","width: clarifying units of width and precision in std::format","2020-02 (Prague)","|Complete|","14","" +"`P1956R1 `__","On the names of low-level bit manipulation functions","2020-02 (Prague)","|Complete|","12","" +"`P1957R2 `__","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","2020-02 (Prague)","|Complete|","18","" "`P1963R0 `__","Fixing US 313","2020-02 (Prague)","","","" -"`P1964R2 `__","Wording for boolean-testable","2020-02 (Prague)","|Complete|","13.0","" -"`P1970R2 `__","Consistency for size() functions: Add ranges::ssize","2020-02 (Prague)","|Complete|","15.0","" -"`P1973R1 `__","Rename ""_default_init"" Functions, Rev1","2020-02 (Prague)","|Complete|","16.0","" -"`P1976R2 `__","Fixed-size span construction from dynamic range","2020-02 (Prague)","|Complete|","11.0","" -"`P1981R0 `__","Rename leap to leap_second","2020-02 (Prague)","|Complete|","19.0","" -"`P1982R0 `__","Rename link to time_zone_link","2020-02 (Prague)","|Complete|","19.0","" -"`P1983R0 `__","Wording for GB301, US296, US292, US291, and US283","2020-02 (Prague)","|Complete|","15.0","" -"`P1994R1 `__","elements_view needs its own sentinel","2020-02 (Prague)","|Complete|","16.0","" -"`P2002R1 `__","Defaulted comparison specification cleanups","2020-02 (Prague)","|Complete|","7.0","" +"`P1964R2 `__","Wording for boolean-testable","2020-02 (Prague)","|Complete|","13","" +"`P1970R2 `__","Consistency for size() functions: Add ranges::ssize","2020-02 (Prague)","|Complete|","15","" +"`P1973R1 `__","Rename ""_default_init"" Functions, Rev1","2020-02 (Prague)","|Complete|","16","" +"`P1976R2 `__","Fixed-size span construction from dynamic range","2020-02 (Prague)","|Complete|","11","" +"`P1981R0 `__","Rename leap to leap_second","2020-02 (Prague)","|Complete|","19","" +"`P1982R0 `__","Rename link to time_zone_link","2020-02 (Prague)","|Complete|","19","" +"`P1983R0 `__","Wording for GB301, US296, US292, US291, and US283","2020-02 (Prague)","|Complete|","15","" +"`P1994R1 `__","elements_view needs its own sentinel","2020-02 (Prague)","|Complete|","16","" +"`P2002R1 `__","Defaulted comparison specification cleanups","2020-02 (Prague)","|Complete|","7","" "`P2045R1 `__","Missing Mandates for the standard library","2020-02 (Prague)","","","" "`P2085R0 `__","Consistent defaulted comparisons","2020-02 (Prague)","","","" -"`P2091R0 `__","Issues with range access CPOs","2020-02 (Prague)","|Complete|","15.0","" +"`P2091R0 `__","Issues with range access CPOs","2020-02 (Prague)","|Complete|","15","" "`P2101R0 `__","P2101R0: 'Models' subsumes 'satisfies' (Wording for US298 and US300)","2020-02 (Prague)","|Nothing To Do|","","" -"`P2102R0 `__","Make 'implicit expression variations' more explicit (Wording for US185)","2020-02 (Prague)","|Complete|","15.0","" -"`P2106R0 `__","Alternative wording for GB315 and GB316","2020-02 (Prague)","|Complete|","15.0","" -"`P2116R0 `__","Remove tuple-like protocol support from fixed-extent span","2020-02 (Prague)","|Complete|","11.0","" +"`P2102R0 `__","Make 'implicit expression variations' more explicit (Wording for US185)","2020-02 (Prague)","|Complete|","15","" +"`P2106R0 `__","Alternative wording for GB315 and GB316","2020-02 (Prague)","|Complete|","15","" +"`P2116R0 `__","Remove tuple-like protocol support from fixed-extent span","2020-02 (Prague)","|Complete|","11","" "","","","","","" -"`P2231R1 `__","Missing constexpr in std::optional and std::variant","2021-06 (Virtual)","|Complete|","19.0","Changes of feature-test macros are completed in LLVM 20." -"`P2325R3 `__","Views should not be required to be default constructible","2021-06 (Virtual)","|Complete|","16.0","" -"`P2210R2 `__","Superior String Splitting","2021-06 (Virtual)","|Complete|","16.0","" -"`P2216R3 `__","std::format improvements","2021-06 (Virtual)","|Complete|","15.0","" -"`P2281R1 `__","Clarifying range adaptor objects","2021-06 (Virtual)","|Complete|","14.0","" -"`P2328R1 `__","join_view should join all views of ranges","2021-06 (Virtual)","|Complete|","15.0","" -"`P2367R0 `__","Remove misuses of list-initialization from Clause 24","2021-06 (Virtual)","|Complete|","15.0","" +"`P2231R1 `__","Missing constexpr in std::optional and std::variant","2021-06 (Virtual)","|Complete|","19","Changes of feature-test macros are completed in LLVM 20." +"`P2325R3 `__","Views should not be required to be default constructible","2021-06 (Virtual)","|Complete|","16","" +"`P2210R2 `__","Superior String Splitting","2021-06 (Virtual)","|Complete|","16","" +"`P2216R3 `__","std::format improvements","2021-06 (Virtual)","|Complete|","15","" +"`P2281R1 `__","Clarifying range adaptor objects","2021-06 (Virtual)","|Complete|","14","" +"`P2328R1 `__","join_view should join all views of ranges","2021-06 (Virtual)","|Complete|","15","" +"`P2367R0 `__","Remove misuses of list-initialization from Clause 24","2021-06 (Virtual)","|Complete|","15","" "","","","","","" "`P2372R3 `__","Fixing locale handling in chrono formatters","2021-10 (Virtual)","|In Progress|","","" -"`P2415R2 `__","What is a ``view``","2021-10 (Virtual)","|Complete|","14.0","" -"`P2418R2 `__","Add support for ``std::generator``-like types to ``std::format``","2021-10 (Virtual)","|Complete|","15.0","" -"`P2432R1 `__","Fix ``istream_view``","2021-10 (Virtual)","|Complete|","16.0","" +"`P2415R2 `__","What is a ``view``","2021-10 (Virtual)","|Complete|","14","" +"`P2418R2 `__","Add support for ``std::generator``-like types to ``std::format``","2021-10 (Virtual)","|Complete|","15","" +"`P2432R1 `__","Fix ``istream_view``","2021-10 (Virtual)","|Complete|","16","" diff --git a/libcxx/docs/Status/Cxx23Issues.csv b/libcxx/docs/Status/Cxx23Issues.csv index cfa721230e5fb..1215f21985eb9 100644 --- a/libcxx/docs/Status/Cxx23Issues.csv +++ b/libcxx/docs/Status/Cxx23Issues.csv @@ -1,141 +1,141 @@ "Issue #","Issue Name","Meeting","Status","First released version","Notes" "`LWG2839 `__","Self-move-assignment of library types, again","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3117 `__","Missing ``packaged_task`` deduction guides","2020-11 (Virtual)","|Complete|","16.0","" +"`LWG3117 `__","Missing ``packaged_task`` deduction guides","2020-11 (Virtual)","|Complete|","16","" "`LWG3143 `__","``monotonic_buffer_resource`` growth policy is unclear","2020-11 (Virtual)","","","" "`LWG3195 `__","What is the stored pointer value of an empty ``weak_ptr``?","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3211 `__","``std::tuple<>`` should be trivially constructible","2020-11 (Virtual)","|Complete|","9.0","" +"`LWG3211 `__","``std::tuple<>`` should be trivially constructible","2020-11 (Virtual)","|Complete|","9","" "`LWG3236 `__","Random access iterator requirements lack limiting relational operators domain to comparing those from the same range","2020-11 (Virtual)","|Nothing To Do|","","" "`LWG3265 `__","``move_iterator``'s conversions are more broken after P1207","2020-11 (Virtual)","|Nothing To Do|","","Resolved by `LWG3435 `__" -"`LWG3435 `__","``three_way_comparable_with, reverse_iterator>``","2020-11 (Virtual)","|Complete|","13.0","" -"`LWG3432 `__","Missing requirement for ``comparison_category``","2020-11 (Virtual)","|Complete|","16.0","" -"`LWG3447 `__","Deduction guides for ``take_view`` and ``drop_view`` have different constraints","2020-11 (Virtual)","|Complete|","14.0","" -"`LWG3450 `__","The const overloads of ``take_while_view::begin/end`` are underconstrained","2020-11 (Virtual)","|Complete|","16.0","" -"`LWG3464 `__","``istream::gcount()`` can overflow","2020-11 (Virtual)","|Complete|","18.0","" -"`LWG2731 `__","Existence of ``lock_guard::mutex_type`` typedef unclear","2020-11 (Virtual)","|Complete|","5.0","" +"`LWG3435 `__","``three_way_comparable_with, reverse_iterator>``","2020-11 (Virtual)","|Complete|","13","" +"`LWG3432 `__","Missing requirement for ``comparison_category``","2020-11 (Virtual)","|Complete|","16","" +"`LWG3447 `__","Deduction guides for ``take_view`` and ``drop_view`` have different constraints","2020-11 (Virtual)","|Complete|","14","" +"`LWG3450 `__","The const overloads of ``take_while_view::begin/end`` are underconstrained","2020-11 (Virtual)","|Complete|","16","" +"`LWG3464 `__","``istream::gcount()`` can overflow","2020-11 (Virtual)","|Complete|","18","" +"`LWG2731 `__","Existence of ``lock_guard::mutex_type`` typedef unclear","2020-11 (Virtual)","|Complete|","5","" "`LWG2743 `__","P0083R3 ``node_handle`` private members missing ""exposition only"" comment","2020-11 (Virtual)","|Nothing To Do|","","" "`LWG2820 `__","Clarify ```` macros","2020-11 (Virtual)","|Nothing To Do|","","" "`LWG3120 `__","Unclear behavior of ``monotonic_buffer_resource::release()``","2020-11 (Virtual)","","","" -"`LWG3170 `__","``is_always_equal`` added to ``std::allocator`` makes the standard library treat derived types as always equal","2020-11 (Virtual)","|Complete|","18.0","" +"`LWG3170 `__","``is_always_equal`` added to ``std::allocator`` makes the standard library treat derived types as always equal","2020-11 (Virtual)","|Complete|","18","" "`LWG3036 `__","``polymorphic_allocator::destroy`` is extraneous","2020-11 (Virtual)","|Nothing To Do|","","Reverted by P2875R4" -"`LWG3171 `__","LWG2989 breaks ``directory_entry`` stream insertion","2020-11 (Virtual)","|Complete|","14.0","" -"`LWG3306 `__","``ranges::advance`` violates its preconditions","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3171 `__","LWG2989 breaks ``directory_entry`` stream insertion","2020-11 (Virtual)","|Complete|","14","" +"`LWG3306 `__","``ranges::advance`` violates its preconditions","2020-11 (Virtual)","|Complete|","14","" "`LWG3403 `__","Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)``","2020-11 (Virtual)","","","" -"`LWG3404 `__","Finish removing subrange's conversions from pair-like","2020-11 (Virtual)","|Complete|","13.0","" -"`LWG3405 `__","``common_view``'s converting constructor is bad, too","2020-11 (Virtual)","|Complete|","14.0","" -"`LWG3406 `__","``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraints","2020-11 (Virtual)","|Complete|","16.0","" +"`LWG3404 `__","Finish removing subrange's conversions from pair-like","2020-11 (Virtual)","|Complete|","13","" +"`LWG3405 `__","``common_view``'s converting constructor is bad, too","2020-11 (Virtual)","|Complete|","14","" +"`LWG3406 `__","``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraints","2020-11 (Virtual)","|Complete|","16","" "`LWG3419 `__","[algorithms.requirements]/15 doesn't reserve as many rights as it intends to","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3420 `__","cpp17-iterator should check that the type looks like an iterator first","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3420 `__","cpp17-iterator should check that the type looks like an iterator first","2020-11 (Virtual)","|Complete|","14","" "`LWG3421 `__","Imperfect ADL emulation for boolean-testable","2020-11 (Virtual)","|Nothing To Do|","","" "`LWG3425 `__","``condition_variable_any`` fails to constrain its Lock parameters","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3426 `__","``operator<=>(const unique_ptr&, nullptr_t)`` can't get no satisfaction","2020-11 (Virtual)","|Complete|","16.0","" -"`LWG3427 `__","``operator<=>(const shared_ptr&, nullptr_t)`` definition ill-formed","2020-11 (Virtual)","|Complete|","16.0","" -"`LWG3428 `__","``single_view``'s in place constructor should be explicit","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3426 `__","``operator<=>(const unique_ptr&, nullptr_t)`` can't get no satisfaction","2020-11 (Virtual)","|Complete|","16","" +"`LWG3427 `__","``operator<=>(const shared_ptr&, nullptr_t)`` definition ill-formed","2020-11 (Virtual)","|Complete|","16","" +"`LWG3428 `__","``single_view``'s in place constructor should be explicit","2020-11 (Virtual)","|Complete|","14","" "`LWG3434 `__","``ios_base`` never reclaims memory for iarray and parray","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3437 `__","``__cpp_lib_polymorphic_allocator`` is in the wrong header","2020-11 (Virtual)","|Complete|","14.0","" -"`LWG3446 `__","``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type``","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3437 `__","``__cpp_lib_polymorphic_allocator`` is in the wrong header","2020-11 (Virtual)","|Complete|","14","" +"`LWG3446 `__","``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type``","2020-11 (Virtual)","|Complete|","14","" "`LWG3448 `__","``transform_view``'s ``sentinel`` not comparable with ``iterator``","2020-11 (Virtual)","","","" -"`LWG3449 `__","``take_view`` and ``take_while_view``'s ``sentinel`` not comparable with their ``const iterator``","2020-11 (Virtual)","|Complete|","16.0","" +"`LWG3449 `__","``take_view`` and ``take_while_view``'s ``sentinel`` not comparable with their ``const iterator``","2020-11 (Virtual)","|Complete|","16","" "`LWG3453 `__","Generic code cannot call ``ranges::advance(i, s)``","2020-11 (Virtual)","|Nothing To Do|","","" "`LWG3455 `__","Incorrect Postconditions on ``unique_ptr`` move assignment","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3460 `__","Unimplementable ``noop_coroutine_handle`` guarantees","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3460 `__","Unimplementable ``noop_coroutine_handle`` guarantees","2020-11 (Virtual)","|Complete|","14","" "`LWG3461 `__","``convertible_to``'s description mishandles cv-qualified ``void``","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3465 `__","``compare_partial_order_fallback`` requires ``F < E``","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3465 `__","``compare_partial_order_fallback`` requires ``F < E``","2020-11 (Virtual)","|Complete|","14","" "`LWG3466 `__","Specify the requirements for ``promise``/``future``/``shared_future`` consistently","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3467 `__","``bool`` can't be an integer-like type","2020-11 (Virtual)","|Complete|","14.0","" -"`LWG3472 `__","``counted_iterator`` is missing preconditions","2020-11 (Virtual)","|Complete|","14.0","" -"`LWG3473 `__","Normative encouragement in non-normative note","2020-11 (Virtual)","|Complete|","15.0","" -"`LWG3474 `__","Nesting ``join_views`` is broken because of CTAD","2020-11 (Virtual)","|Complete|","15.0","" +"`LWG3467 `__","``bool`` can't be an integer-like type","2020-11 (Virtual)","|Complete|","14","" +"`LWG3472 `__","``counted_iterator`` is missing preconditions","2020-11 (Virtual)","|Complete|","14","" +"`LWG3473 `__","Normative encouragement in non-normative note","2020-11 (Virtual)","|Complete|","15","" +"`LWG3474 `__","Nesting ``join_views`` is broken because of CTAD","2020-11 (Virtual)","|Complete|","15","" "`LWG3476 `__","``thread`` and ``jthread`` constructors require that the parameters be move-constructible but never move construct the parameters","2020-11 (Virtual)","","","" -"`LWG3477 `__","Simplify constraints for ``semiregular-box``","2020-11 (Virtual)","|Complete|","13.0","" -"`LWG3482 `__","``drop_view``'s const begin should additionally require ``sized_range``","2020-11 (Virtual)","|Complete|","14.0","" -"`LWG3483 `__","``transform_view::iterator``'s difference is overconstrained","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3477 `__","Simplify constraints for ``semiregular-box``","2020-11 (Virtual)","|Complete|","13","" +"`LWG3482 `__","``drop_view``'s const begin should additionally require ``sized_range``","2020-11 (Virtual)","|Complete|","14","" +"`LWG3483 `__","``transform_view::iterator``'s difference is overconstrained","2020-11 (Virtual)","|Complete|","14","" "","","","","","" "`LWG3391 `__","Problems with ``counted_iterator``/``move_iterator::base() const &``","2021-02 (Virtual)","","","" -"`LWG3433 `__","``subrange::advance(n)`` has UB when ``n < 0``","2021-02 (Virtual)","|Complete|","14.0","" +"`LWG3433 `__","``subrange::advance(n)`` has UB when ``n < 0``","2021-02 (Virtual)","|Complete|","14","" "`LWG3490 `__","``ranges::drop_while_view::begin()`` is missing a precondition","2021-02 (Virtual)","|Nothing To Do|","","" -"`LWG3492 `__","Minimal improvements to ``elements_view::iterator``","2021-02 (Virtual)","|Complete|","16.0","" +"`LWG3492 `__","Minimal improvements to ``elements_view::iterator``","2021-02 (Virtual)","|Complete|","16","" "`LWG3494 `__","Allow ranges to be conditionally borrowed","2021-02 (Virtual)","|Nothing To Do|","","Superseded by `P2017R1 `__" "`LWG3495 `__","``constexpr launder`` makes pointers to inactive members of unions usable","2021-02 (Virtual)","|Nothing To Do|","","" -"`LWG3500 `__","``join_view::iterator::operator->()`` is bogus","2021-02 (Virtual)","|Complete|","14.0","" -"`LWG3502 `__","``elements_view`` should not be allowed to return dangling reference","2021-02 (Virtual)","|Complete|","16.0","" +"`LWG3500 `__","``join_view::iterator::operator->()`` is bogus","2021-02 (Virtual)","|Complete|","14","" +"`LWG3502 `__","``elements_view`` should not be allowed to return dangling reference","2021-02 (Virtual)","|Complete|","16","" "`LWG3505 `__","``split_view::outer-iterator::operator++`` misspecified","2021-02 (Virtual)","","","" "","","","","","" "`LWG2774 `__","``std::function`` construction vs assignment","2021-06 (Virtual)","","","" "`LWG2818 `__","``::std::`` everywhere rule needs tweaking","2021-06 (Virtual)","|Nothing To Do|","","" "`LWG2997 `__","LWG 491 and the specification of ``{forward_,}list::unique``","2021-06 (Virtual)","","","" -"`LWG3410 `__","``lexicographical_compare_three_way`` is overspecified","2021-06 (Virtual)","|Complete|","17.0","" -"`LWG3430 `__","``std::fstream`` & co. should be constructible from string_view","2021-06 (Virtual)","|Complete|","19.0","" +"`LWG3410 `__","``lexicographical_compare_three_way`` is overspecified","2021-06 (Virtual)","|Complete|","17","" +"`LWG3430 `__","``std::fstream`` & co. should be constructible from string_view","2021-06 (Virtual)","|Complete|","19","" "`LWG3462 `__","§[formatter.requirements]: Formatter requirements forbid use of ``fc.arg()``","2021-06 (Virtual)","|Nothing To Do|","","" "`LWG3481 `__","``viewable_range`` mishandles lvalue move-only views","2021-06 (Virtual)","|Nothing To Do|","","Superseded by `P2415R2 `__" -"`LWG3506 `__","Missing allocator-extended constructors for ``priority_queue``","2021-06 (Virtual)","|Complete|","14.0","" -"`LWG3517 `__","``join_view::iterator``'s ``iter_swap`` is underconstrained","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3506 `__","Missing allocator-extended constructors for ``priority_queue``","2021-06 (Virtual)","|Complete|","14","" +"`LWG3517 `__","``join_view::iterator``'s ``iter_swap`` is underconstrained","2021-06 (Virtual)","|Complete|","14","" "`LWG3518 `__","Exception requirements on char trait operations unclear","2021-06 (Virtual)","|Nothing To Do|","","" "`LWG3519 `__","Incomplete synopses for ```` classes","2021-06 (Virtual)","","","" -"`LWG3520 `__","``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator``","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3520 `__","``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator``","2021-06 (Virtual)","|Complete|","14","" "`LWG3521 `__","Overly strict requirements on ``qsort`` and ``bsearch``","2021-06 (Virtual)","|Nothing To Do|","","" -"`LWG3522 `__","Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructors","2021-06 (Virtual)","|Complete|","14.0","" -"`LWG3523 `__","``iota_view::sentinel`` is not always ``iota_view``'s sentinel","2021-06 (Virtual)","|Complete|","17.0","" +"`LWG3522 `__","Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructors","2021-06 (Virtual)","|Complete|","14","" +"`LWG3523 `__","``iota_view::sentinel`` is not always ``iota_view``'s sentinel","2021-06 (Virtual)","|Complete|","17","" "`LWG3526 `__","Return types of ``uses_allocator_construction_args`` unspecified","2021-06 (Virtual)","","","" "`LWG3527 `__","``uses_allocator_construction_args`` handles rvalue pairs of rvalue references incorrectly","2021-06 (Virtual)","","","" -"`LWG3528 `__","``make_from_tuple`` can perform (the equivalent of) a C-style cast","2021-06 (Virtual)","|Complete|","19.0","" -"`LWG3529 `__","``priority_queue(first, last)`` should construct ``c`` with ``(first, last)``","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3528 `__","``make_from_tuple`` can perform (the equivalent of) a C-style cast","2021-06 (Virtual)","|Complete|","19","" +"`LWG3529 `__","``priority_queue(first, last)`` should construct ``c`` with ``(first, last)``","2021-06 (Virtual)","|Complete|","14","" "`LWG3530 `__","``BUILTIN-PTR-MEOW`` should not opt the type out of syntactic checks","2021-06 (Virtual)","","","" "`LWG3532 `__","``split_view::inner-iterator::operator++(int)`` should depend on ``Base``","2021-06 (Virtual)","","","" -"`LWG3533 `__","Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators``","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3533 `__","Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators``","2021-06 (Virtual)","|Complete|","14","" "`LWG3536 `__","Should ``chrono::from_stream()`` assign zero to duration for failure?","2021-06 (Virtual)","","","" -"`LWG3539 `__","``format_to`` must not copy models of ``output_iterator``","2021-06 (Virtual)","|Complete|","14.0","" -"`LWG3540 `__","§[format.arg] There should be no const in ``basic_format_arg(const T* p)``","2021-06 (Virtual)","|Complete|","14.0","" -"`LWG3541 `__","``indirectly_readable_traits`` should be SFINAE-friendly for all types","2021-06 (Virtual)","|Complete|","14.0","" -"`LWG3542 `__","``basic_format_arg`` mishandles ``basic_string_view`` with custom traits","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3539 `__","``format_to`` must not copy models of ``output_iterator``","2021-06 (Virtual)","|Complete|","14","" +"`LWG3540 `__","§[format.arg] There should be no const in ``basic_format_arg(const T* p)``","2021-06 (Virtual)","|Complete|","14","" +"`LWG3541 `__","``indirectly_readable_traits`` should be SFINAE-friendly for all types","2021-06 (Virtual)","|Complete|","14","" +"`LWG3542 `__","``basic_format_arg`` mishandles ``basic_string_view`` with custom traits","2021-06 (Virtual)","|Complete|","14","" "`LWG3543 `__","Definition of when ``counted_iterators`` refer to the same sequence isn't quite right","2021-06 (Virtual)","|Nothing To Do|","","" -"`LWG3544 `__","``format-arg-store::args`` is unintentionally not exposition-only","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3544 `__","``format-arg-store::args`` is unintentionally not exposition-only","2021-06 (Virtual)","|Complete|","14","" "`LWG3546 `__","``common_iterator``'s postfix-proxy is not quite right","2021-06 (Virtual)","","","" -"`LWG3548 `__","``shared_ptr`` construction from ``unique_ptr`` should move (not copy) the deleter","2021-06 (Virtual)","|Complete|","15.0","" -"`LWG3549 `__","``view_interface`` is overspecified to derive from ``view_base``","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3548 `__","``shared_ptr`` construction from ``unique_ptr`` should move (not copy) the deleter","2021-06 (Virtual)","|Complete|","15","" +"`LWG3549 `__","``view_interface`` is overspecified to derive from ``view_base``","2021-06 (Virtual)","|Complete|","14","" "`LWG3551 `__","``borrowed_{iterator,subrange}_t`` are overspecified","2021-06 (Virtual)","|Nothing To Do|","","" "`LWG3552 `__","Parallel specialized memory algorithms should require forward iterators","2021-06 (Virtual)","","","" "`LWG3553 `__","Useless constraint in ``split_view::outer-iterator::value_type::begin()``","2021-06 (Virtual)","","","" "`LWG3555 `__","``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying range","2021-06 (Virtual)","","","" "","","","","","" "`LWG2191 `__","Incorrect specification of ``match_results(match_results&&)``","2021-10 (Virtual)","|Nothing To Do|","","" -"`LWG2381 `__","Inconsistency in parsing floating point numbers","2021-10 (Virtual)","|Complete|","19.0","" -"`LWG2762 `__","``unique_ptr operator*()`` should be ``noexcept``","2021-10 (Virtual)","|Complete|","19.0","" +"`LWG2381 `__","Inconsistency in parsing floating point numbers","2021-10 (Virtual)","|Complete|","19","" +"`LWG2762 `__","``unique_ptr operator*()`` should be ``noexcept``","2021-10 (Virtual)","|Complete|","19","" "`LWG3121 `__","``tuple`` constructor constraints for ``UTypes&&...`` overloads","2021-10 (Virtual)","","","" "`LWG3123 `__","``duration`` constructor from representation shouldn't be effectively non-throwing","2021-10 (Virtual)","","","" -"`LWG3146 `__","Excessive unwrapping in ``std::ref/cref``","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3146 `__","Excessive unwrapping in ``std::ref/cref``","2021-10 (Virtual)","|Complete|","14","" "`LWG3152 `__","``common_type`` and ``common_reference`` have flaws in common","2021-10 (Virtual)","","","" -"`LWG3293 `__","``move_iterator operator+()`` has incorrect constraints","2021-10 (Virtual)","|Complete|","15.0","" +"`LWG3293 `__","``move_iterator operator+()`` has incorrect constraints","2021-10 (Virtual)","|Complete|","15","" "`LWG3361 `__","``safe_range`` case","2021-10 (Virtual)","|Nothing To Do|","","" -"`LWG3392 `__","``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinel","2021-10 (Virtual)","|Complete|","14.0","" -"`LWG3407 `__","Some problems with the wording changes of P1739R4","2021-10 (Virtual)","|Complete|","15.0","" -"`LWG3422 `__","Issues of ``seed_seq``'s constructors","2021-10 (Virtual)","|Complete|","14.0","" -"`LWG3470 `__","``convertible-to-non-slicing`` seems to reject valid case","2021-10 (Virtual)","|Complete|","14.0","" -"`LWG3480 `__","``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 ranges","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3392 `__","``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinel","2021-10 (Virtual)","|Complete|","14","" +"`LWG3407 `__","Some problems with the wording changes of P1739R4","2021-10 (Virtual)","|Complete|","15","" +"`LWG3422 `__","Issues of ``seed_seq``'s constructors","2021-10 (Virtual)","|Complete|","14","" +"`LWG3470 `__","``convertible-to-non-slicing`` seems to reject valid case","2021-10 (Virtual)","|Complete|","14","" +"`LWG3480 `__","``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 ranges","2021-10 (Virtual)","|Complete|","14","" "`LWG3498 `__","Inconsistent ``noexcept``-specifiers for ``basic_syncbuf``","2021-10 (Virtual)","","","" -"`LWG3535 `__","``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie","2021-10 (Virtual)","|Complete|","15.0","" +"`LWG3535 `__","``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie","2021-10 (Virtual)","|Complete|","15","" "`LWG3554 `__","``chrono::parse`` needs ``const charT*`` and ``basic_string_view`` overloads","2021-10 (Virtual)","","","" -"`LWG3557 `__","The ``static_cast`` expression in ``convertible_to`` has the wrong operand","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3557 `__","The ``static_cast`` expression in ``convertible_to`` has the wrong operand","2021-10 (Virtual)","|Complete|","14","" "`LWG3559 `__","Semantic requirements of ``sized_range`` is circular","2021-10 (Virtual)","|Nothing To Do|","","" "`LWG3560 `__","``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges``","2021-10 (Virtual)","","","" "`LWG3561 `__","Issue with internal counter in ``discard_block_engine``","2021-10 (Virtual)","","","" "`LWG3563 `__","``keys_view`` example is broken","2021-10 (Virtual)","","","" -"`LWG3566 `__","Constraint recursion for ``operator<=>(optional, U)``","2021-10 (Virtual)","|Complete|","17.0","" -"`LWG3567 `__","Formatting move-only iterators take two","2021-10 (Virtual)","|Complete|","16.0","" -"`LWG3568 `__","``basic_istream_view`` needs to initialize ``value_``","2021-10 (Virtual)","|Complete|","16.0","" -"`LWG3570 `__","``basic_osyncstream::emit`` should be an unformatted output function","2021-10 (Virtual)","|Complete|","18.0","" +"`LWG3566 `__","Constraint recursion for ``operator<=>(optional, U)``","2021-10 (Virtual)","|Complete|","17","" +"`LWG3567 `__","Formatting move-only iterators take two","2021-10 (Virtual)","|Complete|","16","" +"`LWG3568 `__","``basic_istream_view`` needs to initialize ``value_``","2021-10 (Virtual)","|Complete|","16","" +"`LWG3570 `__","``basic_osyncstream::emit`` should be an unformatted output function","2021-10 (Virtual)","|Complete|","18","" "`LWG3571 `__","``flush_emit`` should set ``badbit`` if the ``emit`` call fails","2021-10 (Virtual)","","","" -"`LWG3572 `__","``copyable-box`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0","" -"`LWG3573 `__","Missing Throws element for ``basic_string_view(It begin, End end)``","2021-10 (Virtual)","|Complete|","14.0","" -"`LWG3574 `__","``common_iterator`` should be completely ``constexpr``-able","2021-10 (Virtual)","|Complete|","14.0","" -"`LWG3580 `__","``iota_view``'s ``iterator``'s binary ``operator+`` should be improved","2021-10 (Virtual)","|Complete|","14.0","" -"`LWG3581 `__","The range constructor makes ``basic_string_view`` not trivially move constructible","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3572 `__","``copyable-box`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14","" +"`LWG3573 `__","Missing Throws element for ``basic_string_view(It begin, End end)``","2021-10 (Virtual)","|Complete|","14","" +"`LWG3574 `__","``common_iterator`` should be completely ``constexpr``-able","2021-10 (Virtual)","|Complete|","14","" +"`LWG3580 `__","``iota_view``'s ``iterator``'s binary ``operator+`` should be improved","2021-10 (Virtual)","|Complete|","14","" +"`LWG3581 `__","The range constructor makes ``basic_string_view`` not trivially move constructible","2021-10 (Virtual)","|Complete|","14","" "`LWG3585 `__","``variant`` converting assignment with immovable alternative","2021-10 (Virtual)","","","" -"`LWG3589 `__","The ``const`` lvalue reference overload of ``get`` for ``subrange`` does not constrain ``I`` to be ``copyable`` when ``N == 0``","2021-10 (Virtual)","|Complete|","14.0","" -"`LWG3590 `__","``split_view::base() const &`` is overconstrained","2021-10 (Virtual)","|Complete|","16.0","" +"`LWG3589 `__","The ``const`` lvalue reference overload of ``get`` for ``subrange`` does not constrain ``I`` to be ``copyable`` when ``N == 0``","2021-10 (Virtual)","|Complete|","14","" +"`LWG3590 `__","``split_view::base() const &`` is overconstrained","2021-10 (Virtual)","|Complete|","16","" "`LWG3591 `__","``lazy_split_view::inner-iterator::base() &&`` invalidates outer iterators","2021-10 (Virtual)","","","" "`LWG3592 `__","``lazy_split_view`` needs to check the simpleness of Pattern","2021-10 (Virtual)","","","" "`LWG3593 `__","Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept``","2021-10 (Virtual)","","","" -"`LWG3595 `__","Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3595 `__","Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14","" "","","","","","" "`LWG3088 `__","``forward_list::merge`` behaviour unclear when passed ``*this``","2022-02 (Virtual)","","","" "`LWG3471 `__","``polymorphic_allocator::allocate`` does not satisfy ``Cpp17Allocator`` requirements","2022-02 (Virtual)","","","" @@ -144,81 +144,81 @@ "`LWG3601 `__","common_iterator's postfix-proxy needs ``indirectly_readable`` ","2022-02 (Virtual)","","","" "`LWG3607 `__","``contiguous_iterator`` should not be allowed to have custom ``iter_move`` and ``iter_swap`` behavior","2022-02 (Virtual)","|Nothing To Do|","","" "`LWG3610 `__","``iota_view::size`` sometimes rejects integer-class types","2022-02 (Virtual)","","","" -"`LWG3612 `__","Inconsistent pointer alignment in ``std::format`` ","2022-02 (Virtual)","|Complete|","14.0","" -"`LWG3616 `__","LWG 3498 seems to miss the non-member ``swap`` for ``basic_syncbuf`` ","2022-02 (Virtual)","|Complete|","18.0","" -"`LWG3618 `__","Unnecessary ``iter_move`` for ``transform_view::iterator`` ","2022-02 (Virtual)","|Complete|","19.0","" +"`LWG3612 `__","Inconsistent pointer alignment in ``std::format`` ","2022-02 (Virtual)","|Complete|","14","" +"`LWG3616 `__","LWG 3498 seems to miss the non-member ``swap`` for ``basic_syncbuf`` ","2022-02 (Virtual)","|Complete|","18","" +"`LWG3618 `__","Unnecessary ``iter_move`` for ``transform_view::iterator`` ","2022-02 (Virtual)","|Complete|","19","" "`LWG3619 `__","Specification of ``vformat_to`` contains ill-formed ``formatted_size`` calls","2022-02 (Virtual)","|Nothing To Do|","","" -"`LWG3621 `__","Remove feature-test macro ``__cpp_lib_monadic_optional`` ","2022-02 (Virtual)","|Complete|","15.0","" +"`LWG3621 `__","Remove feature-test macro ``__cpp_lib_monadic_optional`` ","2022-02 (Virtual)","|Complete|","15","" "`LWG3632 `__","``unique_ptr`` ""Mandates: This constructor is not selected by class template argument deduction""","2022-02 (Virtual)","|Nothing To Do|","","" -"`LWG3643 `__","Missing ``constexpr`` in ``std::counted_iterator`` ","2022-02 (Virtual)","|Complete|","19.0","" -"`LWG3648 `__","``format`` should not print ``bool`` with ``'c'`` ","2022-02 (Virtual)","|Complete|","15.0","" +"`LWG3643 `__","Missing ``constexpr`` in ``std::counted_iterator`` ","2022-02 (Virtual)","|Complete|","19","" +"`LWG3648 `__","``format`` should not print ``bool`` with ``'c'`` ","2022-02 (Virtual)","|Complete|","15","" "`LWG3649 `__","[fund.ts.v2] Reinstate and bump ``__cpp_lib_experimental_memory_resource`` feature test macro","2022-02 (Virtual)","","","" "`LWG3650 `__","Are ``std::basic_string`` 's ``iterator`` and ``const_iterator`` constexpr iterators?","2022-02 (Virtual)","|Nothing To Do|","","" -"`LWG3654 `__","``basic_format_context::arg(size_t)`` should be ``noexcept`` ","2022-02 (Virtual)","|Complete|","15.0","" -"`LWG3657 `__","``std::hash`` is not enabled","2022-02 (Virtual)","|Complete|","17.0","" -"`LWG3660 `__","``iterator_traits::pointer`` should conform to §[iterator.traits]","2022-02 (Virtual)","|Complete|","14.0","" +"`LWG3654 `__","``basic_format_context::arg(size_t)`` should be ``noexcept`` ","2022-02 (Virtual)","|Complete|","15","" +"`LWG3657 `__","``std::hash`` is not enabled","2022-02 (Virtual)","|Complete|","17","" +"`LWG3660 `__","``iterator_traits::pointer`` should conform to §[iterator.traits]","2022-02 (Virtual)","|Complete|","14","" "`LWG3661 `__","``constinit atomic> a(nullptr);`` should work","2022-02 (Virtual)","","","" "","","","","","" -"`LWG3564 `__","``transform_view::iterator::value_type`` and ``iterator_category`` should use ``const F&``","2022-07 (Virtual)","|Complete|","20.0","" +"`LWG3564 `__","``transform_view::iterator::value_type`` and ``iterator_category`` should use ``const F&``","2022-07 (Virtual)","|Complete|","20","" "`LWG3617 `__","``function``/``packaged_task`` deduction guides and deducing ``this``","2022-07 (Virtual)","","","" -"`LWG3656 `__","Inconsistent bit operations returning a count","2022-07 (Virtual)","|Complete|","15.0","" -"`LWG3659 `__","Consider ``ATOMIC_FLAG_INIT`` undeprecation","2022-07 (Virtual)","|Complete|","15.0","" +"`LWG3656 `__","Inconsistent bit operations returning a count","2022-07 (Virtual)","|Complete|","15","" +"`LWG3659 `__","Consider ``ATOMIC_FLAG_INIT`` undeprecation","2022-07 (Virtual)","|Complete|","15","" "`LWG3670 `__","``Cpp17InputIterators`` don't have integer-class difference types","2022-07 (Virtual)","","","" -"`LWG3671 `__","``atomic_fetch_xor`` missing from ``stdatomic.h``","2022-07 (Virtual)","|Complete|","20.0","" -"`LWG3672 `__","``common_iterator::operator->()`` should return by value","2022-07 (Virtual)","|Complete|","19.0","" -"`LWG3683 `__","``operator==`` for ``polymorphic_allocator`` cannot deduce template argument in common cases","2022-07 (Virtual)","|Complete|","20.0","" -"`LWG3687 `__","``expected`` move constructor should move","2022-07 (Virtual)","|Complete|","16.0","" -"`LWG3692 `__","``zip_view::iterator``'s ``operator<=>`` is overconstrained","2022-07 (Virtual)","|Complete|","20.0","" -"`LWG3701 `__","Make ``formatter, charT>`` requirement explicit","2022-07 (Virtual)","|Complete|","15.0","" +"`LWG3671 `__","``atomic_fetch_xor`` missing from ``stdatomic.h``","2022-07 (Virtual)","|Complete|","20","" +"`LWG3672 `__","``common_iterator::operator->()`` should return by value","2022-07 (Virtual)","|Complete|","19","" +"`LWG3683 `__","``operator==`` for ``polymorphic_allocator`` cannot deduce template argument in common cases","2022-07 (Virtual)","|Complete|","20","" +"`LWG3687 `__","``expected`` move constructor should move","2022-07 (Virtual)","|Complete|","16","" +"`LWG3692 `__","``zip_view::iterator``'s ``operator<=>`` is overconstrained","2022-07 (Virtual)","|Complete|","20","" +"`LWG3701 `__","Make ``formatter, charT>`` requirement explicit","2022-07 (Virtual)","|Complete|","15","" "`LWG3702 `__","Should ``zip_transform_view::iterator`` remove ``operator<``","2022-07 (Virtual)","","","" -"`LWG3703 `__","Missing requirements for ``expected`` requires ``is_void``","2022-07 (Virtual)","|Complete|","16.0","" +"`LWG3703 `__","Missing requirements for ``expected`` requires ``is_void``","2022-07 (Virtual)","|Complete|","16","" "`LWG3704 `__","LWG 2059 added overloads that might be ill-formed for sets","2022-07 (Virtual)","","","" -"`LWG3705 `__","Hashability shouldn't depend on basic_string's allocator","2022-07 (Virtual)","|Complete|","16.0","" +"`LWG3705 `__","Hashability shouldn't depend on basic_string's allocator","2022-07 (Virtual)","|Complete|","16","" "`LWG3707 `__","chunk_view::outer-iterator::value_type::size should return unsigned type","2022-07 (Virtual)","","","" -"`LWG3708 `__","``take_while_view::sentinel``'s conversion constructor should move","2022-07 (Virtual)","|Complete|","16.0","" +"`LWG3708 `__","``take_while_view::sentinel``'s conversion constructor should move","2022-07 (Virtual)","|Complete|","16","" "`LWG3709 `__","LWG-3703 was underly ambitious","2022-07 (Virtual)","","","" "`LWG3710 `__","The ``end`` of ``chunk_view`` for input ranges can be ``const``","2022-07 (Virtual)","","","" "`LWG3711 `__","Missing preconditions for slide_view constructor","2022-07 (Virtual)","","","" "`LWG3712 `__","``chunk_view`` and ``slide_view`` should not be ``default_initializable``","2022-07 (Virtual)","","","" "`LWG3713 `__","Sorted with respect to comparator (only)","2022-07 (Virtual)","|Nothing To Do|","","" -"`LWG3715 `__","``view_interface::empty`` is overconstrained","2022-07 (Virtual)","|Complete|","19.0","" -"`LWG3719 `__","Directory iterators should be usable with default sentinel","2022-07 (Virtual)","|Complete|","17.0","" -"`LWG3721 `__","Allow an ``arg-id`` with a value of zero for ``width`` in ``std-format-spec``","2022-07 (Virtual)","|Complete|","16.0","" -"`LWG3724 `__","``decay-copy`` should be constrained","2022-07 (Virtual)","|Complete|","14.0","" +"`LWG3715 `__","``view_interface::empty`` is overconstrained","2022-07 (Virtual)","|Complete|","19","" +"`LWG3719 `__","Directory iterators should be usable with default sentinel","2022-07 (Virtual)","|Complete|","17","" +"`LWG3721 `__","Allow an ``arg-id`` with a value of zero for ``width`` in ``std-format-spec``","2022-07 (Virtual)","|Complete|","16","" +"`LWG3724 `__","``decay-copy`` should be constrained","2022-07 (Virtual)","|Complete|","14","" "","","","","","" "`LWG3028 `__","Container requirements tables should distinguish ``const`` and non-``const`` variables","2022-11 (Kona)","","","" "`LWG3118 `__","``fpos`` equality comparison unspecified","2022-11 (Kona)","","","" "`LWG3177 `__","Limit permission to specialize variable templates to program-defined types","2022-11 (Kona)","|Nothing To Do|","","" "`LWG3515 `__","§[stacktrace.basic.nonmem]: ``operator<<`` should be less templatized","2022-11 (Kona)","","","" -"`LWG3545 `__","``std::pointer_traits`` should be SFINAE-friendly","2022-11 (Kona)","|Complete|","18.0","" +"`LWG3545 `__","``std::pointer_traits`` should be SFINAE-friendly","2022-11 (Kona)","|Complete|","18","" "`LWG3569 `__","``join_view`` fails to support ranges of ranges with non-default_initializable iterators","2022-11 (Kona)","","","" -"`LWG3594 `__","``inout_ptr`` — inconsistent ``release()`` in destructor","2022-11 (Kona)","|Complete|","19.0","" +"`LWG3594 `__","``inout_ptr`` — inconsistent ``release()`` in destructor","2022-11 (Kona)","|Complete|","19","" "`LWG3597 `__","Unsigned integer types don't model advanceable","2022-11 (Kona)","","","" "`LWG3600 `__","Making ``istream_iterator`` copy constructor trivial is an ABI break","2022-11 (Kona)","","","" -"`LWG3629 `__","``make_error_code`` and ``make_error_condition`` are customization points","2022-11 (Kona)","|Complete|","16.0","" -"`LWG3636 `__","``formatter::format`` should be ``const``-qualified","2022-11 (Kona)","|Complete|","16.0","" -"`LWG3646 `__","``std::ranges::view_interface::size`` returns a signed type","2022-11 (Kona)","|Complete|","16.0","" -"`LWG3677 `__","Is a cv-qualified ``pair`` specially handled in uses-allocator construction?","2022-11 (Kona)","|Complete|","18.0","" +"`LWG3629 `__","``make_error_code`` and ``make_error_condition`` are customization points","2022-11 (Kona)","|Complete|","16","" +"`LWG3636 `__","``formatter::format`` should be ``const``-qualified","2022-11 (Kona)","|Complete|","16","" +"`LWG3646 `__","``std::ranges::view_interface::size`` returns a signed type","2022-11 (Kona)","|Complete|","16","" +"`LWG3677 `__","Is a cv-qualified ``pair`` specially handled in uses-allocator construction?","2022-11 (Kona)","|Complete|","18","" "`LWG3717 `__","``common_view::end`` should improve ``random_access_range`` case","2022-11 (Kona)","","","" "`LWG3732 `__","``prepend_range`` and ``append_range`` can't be amortized constant time","2022-11 (Kona)","|Nothing To Do|","","" -"`LWG3736 `__","``move_iterator`` missing ``disable_sized_sentinel_for`` specialization","2022-11 (Kona)","|Complete|","19.0","" +"`LWG3736 `__","``move_iterator`` missing ``disable_sized_sentinel_for`` specialization","2022-11 (Kona)","|Complete|","19","" "`LWG3737 `__","``take_view::sentinel`` should provide ``operator-``","2022-11 (Kona)","","","" -"`LWG3738 `__","Missing preconditions for ``take_view`` constructor","2022-11 (Kona)","|Complete|","16.0","" +"`LWG3738 `__","Missing preconditions for ``take_view`` constructor","2022-11 (Kona)","|Complete|","16","" "`LWG3743 `__","``ranges::to``'s reserve may be ill-formed","2022-11 (Kona)","","","" -"`LWG3745 `__","``std::atomic_wait`` and its friends lack ``noexcept``","2022-11 (Kona)","|Complete|","16.0","" -"`LWG3746 `__","``optional``'s spaceship with ``U`` with a type derived from optional causes infinite constraint meta-recursion","2022-11 (Kona)","|Complete|","17.0","" +"`LWG3745 `__","``std::atomic_wait`` and its friends lack ``noexcept``","2022-11 (Kona)","|Complete|","16","" +"`LWG3746 `__","``optional``'s spaceship with ``U`` with a type derived from optional causes infinite constraint meta-recursion","2022-11 (Kona)","|Complete|","17","" "`LWG3747 `__","``ranges::uninitialized_copy_n``, ``ranges::uninitialized_move_n``, and ``ranges::destroy_n`` should use ``std::move``","2022-11 (Kona)","","","" "`LWG3750 `__","Too many papers bump ``__cpp_lib_format``","2022-11 (Kona)","|Partial|","","Only ``__cpp_lib_format_ranges`` is fully implemented" "`LWG3751 `__","Missing feature macro for ``flat_set``","2022-11 (Kona)","","","" "`LWG3753 `__","Clarify entity vs. freestanding entity","2022-11 (Kona)","","","" "`LWG3754 `__","Class template expected synopsis contains declarations that do not match the detailed description","2022-11 (Kona)","|Nothing To Do|","","" -"`LWG3755 `__","``tuple-for-each`` can call ``user-defined`` ``operator,``","2022-11 (Kona)","|Complete|","17.0","" +"`LWG3755 `__","``tuple-for-each`` can call ``user-defined`` ``operator,``","2022-11 (Kona)","|Complete|","17","" "`LWG3757 `__","What's the effect of ``std::forward_like(x)``?","2022-11 (Kona)","","","" -"`LWG3759 `__","``ranges::rotate_copy`` should use ``std::move``","2022-11 (Kona)","|Complete|","15.0","" +"`LWG3759 `__","``ranges::rotate_copy`` should use ``std::move``","2022-11 (Kona)","|Complete|","15","" "`LWG3760 `__","``cartesian_product_view::iterator``'s ``parent_`` is never valid","2022-11 (Kona)","","","" "`LWG3761 `__","``cartesian_product_view::iterator::operator-`` should pass by reference","2022-11 (Kona)","","","" "`LWG3762 `__","``generator::iterator::operator==`` should pass by reference","2022-11 (Kona)","","","" -"`LWG3764 `__","``reference_wrapper::operator()`` should propagate noexcept","2022-11 (Kona)","|Complete|","17.0","" +"`LWG3764 `__","``reference_wrapper::operator()`` should propagate noexcept","2022-11 (Kona)","|Complete|","17","" "`LWG3765 `__","``const_sentinel`` should be constrained","2022-11 (Kona)","","","" "`LWG3766 `__","``view_interface::cbegin`` is underconstrained","2022-11 (Kona)","","","" "`LWG3770 `__","``const_sentinel_t`` is missing","2022-11 (Kona)","","","" @@ -227,11 +227,11 @@ "`LWG3775 `__","Broken dependencies in the ``Cpp17Allocator`` requirements","2022-11 (Kona)","","","" "`LWG3778 `__","``vector`` missing exception specifications","2022-11 (Kona)","|Complete|","3.7","" "`LWG3781 `__","The exposition-only alias templates ``cont-key-type`` and ``cont-mapped-type`` should be removed","2022-11 (Kona)","|Nothing To Do|","","" -"`LWG3782 `__","Should ```` declare ``::lerp``?","2022-11 (Kona)","|Complete|","17.0","" -"`LWG3784 `__","std.compat should not provide ``::byte`` and its friends","2022-11 (Kona)","|Complete|","19.0","" +"`LWG3782 `__","Should ```` declare ``::lerp``?","2022-11 (Kona)","|Complete|","17","" +"`LWG3784 `__","std.compat should not provide ``::byte`` and its friends","2022-11 (Kona)","|Complete|","19","" "`LWG3785 `__","``ranges::to`` is over-constrained on the destination type being a range","2022-11 (Kona)","","","" "`LWG3788 `__","``jthread::operator=(jthread&&)`` postconditions are unimplementable under self-assignment","2022-11 (Kona)","","","" -"`LWG3792 `__","``__cpp_lib_constexpr_algorithms`` should also be defined in ````","2022-11 (Kona)","|Complete|","16.0","" +"`LWG3792 `__","``__cpp_lib_constexpr_algorithms`` should also be defined in ````","2022-11 (Kona)","|Complete|","16","" "`LWG3795 `__","Self-move-assignment of ``std::future`` and ``std::shared_future`` have unimplementable postconditions","2022-11 (Kona)","","","" "`LWG3796 `__","``movable-box`` as member should use ``default-initialization`` instead of ``copy-initialization``","2022-11 (Kona)","","","" "`LWG3798 `__","Rvalue reference and ``iterator_category``","2022-11 (Kona)","|Partial|","","``join_with_view``, ``zip_transform_view``, and ``adjacent_transform_view`` haven't been done yet since these types aren't implemented yet" @@ -250,59 +250,59 @@ "`LWG3032 `__","``ValueSwappable`` requirement missing for ``push_heap`` and ``make_heap``","2023-02 (Issaquah)","","","" "`LWG3085 `__","``char_traits::copy`` precondition too weak","2023-02 (Issaquah)","","","" "`LWG3664 `__","`LWG 3392 `__ ``broke std::ranges::distance(a, a+3)``","2023-02 (Issaquah)","","","" -"`LWG3720 `__","Restrict the valid types of ``arg-id`` for width and precision in ``std-format-spec``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3720 `__","Restrict the valid types of ``arg-id`` for width and precision in ``std-format-spec``","2023-02 (Issaquah)","|Complete|","17","" "`LWG3756 `__","Is the ``std::atomic_flag`` class signal-safe?","2023-02 (Issaquah)","","","" "`LWG3769 `__","``basic_const_iterator::operator==`` causes infinite constraint recursion","2023-02 (Issaquah)","","","" "`LWG3807 `__","The feature test macro for ``ranges::find_last`` should be renamed","2023-02 (Issaquah)","","","" "`LWG3811 `__","``views::as_const`` on ``ref_view`` should return ``ref_view``","2023-02 (Issaquah)","","","" "`LWG3820 `__","``cartesian_product_view::iterator::prev`` is not quite right","2023-02 (Issaquah)","","","" -"`LWG3825 `__","Missing compile-time argument ``id`` check in ``basic_format_parse_context::next_arg_id``","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3204 `__","``sub_match::swap`` only swaps the base class","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3733 `__","``ranges::to`` misuses ``cpp17-input-iterator``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3825 `__","Missing compile-time argument ``id`` check in ``basic_format_parse_context::next_arg_id``","2023-02 (Issaquah)","|Complete|","17","" +"`LWG3204 `__","``sub_match::swap`` only swaps the base class","2023-02 (Issaquah)","|Complete|","17","" +"`LWG3733 `__","``ranges::to`` misuses ``cpp17-input-iterator``","2023-02 (Issaquah)","|Complete|","17","" "`LWG3742 `__","``deque::prepend_range`` needs to permute","2023-02 (Issaquah)","","","" "`LWG3790 `__","`P1467 `__ accidentally changed ``nexttoward``'s signature","2023-02 (Issaquah)","","","" "`LWG3819 `__","``reference_meows_from_temporary`` should not use ``is_meowible``","2023-02 (Issaquah)","","","" -"`LWG3821 `__","``uses_allocator_construction_args`` should have overload for ``pair-like``","2023-02 (Issaquah)","|Complete|","18.0","" +"`LWG3821 `__","``uses_allocator_construction_args`` should have overload for ``pair-like``","2023-02 (Issaquah)","|Complete|","18","" "`LWG3834 `__","Missing ``constexpr`` for ``std::intmax_t`` math functions in ````","2023-02 (Issaquah)","","","" -"`LWG3839 `__","``range_formatter``'s ``set_separator``, ``set_brackets``, and ``underlying`` functions should be ``noexcept``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3839 `__","``range_formatter``'s ``set_separator``, ``set_brackets``, and ``underlying`` functions should be ``noexcept``","2023-02 (Issaquah)","|Complete|","17","" "`LWG3841 `__","```` should not be ""all freestanding""","2023-02 (Issaquah)","","","" -"`LWG3842 `__","Unclear wording for ``precision`` in ``chrono-format-spec``","2023-02 (Issaquah)","|Complete|","16.0","" +"`LWG3842 `__","Unclear wording for ``precision`` in ``chrono-format-spec``","2023-02 (Issaquah)","|Complete|","16","" "`LWG3848 `__","``adjacent_view``, ``adjacent_transform_view`` and ``slide_view`` missing ``base`` accessor","2023-02 (Issaquah)","","","" "`LWG3849 `__","``cartesian_product_view::iterator``'s default constructor is overconstrained","2023-02 (Issaquah)","","","" "`LWG3850 `__","``views::as_const`` on ``empty_view`` should return ``empty_view``","2023-02 (Issaquah)","","","" "`LWG3851 `__","``chunk_view::inner-iterator`` missing custom ``iter_move`` and ``iter_swap``","2023-02 (Issaquah)","","","" "`LWG3853 `__","``basic_const_iterator::operator->`` is ill-formed","2023-02 (Issaquah)","","","" -"`LWG3857 `__","``basic_string_view`` should allow explicit conversion when only traits vary","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3860 `__","``range_common_reference_t`` is missing","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3866 `__","Bad Mandates for ``expected::transform_error`` overloads","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3867 `__","Should ``std::basic_osyncstream``'s move assignment operator be ``noexcept``?","2023-02 (Issaquah)","|Complete|","18.0","" +"`LWG3857 `__","``basic_string_view`` should allow explicit conversion when only traits vary","2023-02 (Issaquah)","|Complete|","17","" +"`LWG3860 `__","``range_common_reference_t`` is missing","2023-02 (Issaquah)","|Complete|","17","" +"`LWG3866 `__","Bad Mandates for ``expected::transform_error`` overloads","2023-02 (Issaquah)","|Complete|","17","" +"`LWG3867 `__","Should ``std::basic_osyncstream``'s move assignment operator be ``noexcept``?","2023-02 (Issaquah)","|Complete|","18","" "`LWG3441 `__","Misleading note about calls to customization points","2023-02 (Issaquah)","","","" "`LWG3622 `__","Misspecified transitivity of equivalence in §[unord.req.general]","2023-02 (Issaquah)","","","" -"`LWG3631 `__","``basic_format_arg(T&&)`` should use ``remove_cvref_t`` throughout","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3645 `__","``resize_and_overwrite`` is overspecified to call its callback with lvalues","2023-02 (Issaquah)","|Complete|","14.0","" -"`LWG3655 `__","The ``INVOKE`` operation and union types","2023-02 (Issaquah)","|Complete|","18.0","" -"`LWG3723 `__","``priority_queue::push_range`` needs to ``append_range``","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3734 `__","Inconsistency in ``inout_ptr`` and ``out_ptr`` for empty case","2023-02 (Issaquah)","|Complete|","19.0","" -"`LWG3772 `__","``repeat_view``'s ``piecewise`` constructor is missing Postconditions","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3631 `__","``basic_format_arg(T&&)`` should use ``remove_cvref_t`` throughout","2023-02 (Issaquah)","|Complete|","17","" +"`LWG3645 `__","``resize_and_overwrite`` is overspecified to call its callback with lvalues","2023-02 (Issaquah)","|Complete|","14","" +"`LWG3655 `__","The ``INVOKE`` operation and union types","2023-02 (Issaquah)","|Complete|","18","" +"`LWG3723 `__","``priority_queue::push_range`` needs to ``append_range``","2023-02 (Issaquah)","|Complete|","17","" +"`LWG3734 `__","Inconsistency in ``inout_ptr`` and ``out_ptr`` for empty case","2023-02 (Issaquah)","|Complete|","19","" +"`LWG3772 `__","``repeat_view``'s ``piecewise`` constructor is missing Postconditions","2023-02 (Issaquah)","|Complete|","17","" "`LWG3786 `__","Flat maps' deduction guide needs to default ``Allocator`` to be useful","2023-02 (Issaquah)","","","" "`LWG3803 `__","``flat_foo`` constructors taking ``KeyContainer`` lack ``KeyCompare`` parameter","2023-02 (Issaquah)","","","" -"`LWG3810 `__","CTAD for ``std::basic_format_args``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3810 `__","CTAD for ``std::basic_format_args``","2023-02 (Issaquah)","|Complete|","17","" "`LWG3827 `__","Deprecate ```` and ```` macros","2023-02 (Issaquah)","","","" "`LWG3828 `__","Sync ``intmax_t`` and ``uintmax_t`` with C2x","2023-02 (Issaquah)","|Nothing To Do|","","" -"`LWG3833 `__","Remove specialization ``template struct formatter``","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3836 `__","``std::expected`` conversion constructor ``expected(const expected&)`` should take precedence over ``expected(U&&)`` with operator ``bool``","2023-02 (Issaquah)","|Complete|","18.0","" -"`LWG3843 `__","``std::expected::value() &`` assumes ``E`` is copy constructible","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3847 `__","``ranges::to`` can still return views","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3833 `__","Remove specialization ``template struct formatter``","2023-02 (Issaquah)","|Complete|","17","" +"`LWG3836 `__","``std::expected`` conversion constructor ``expected(const expected&)`` should take precedence over ``expected(U&&)`` with operator ``bool``","2023-02 (Issaquah)","|Complete|","18","" +"`LWG3843 `__","``std::expected::value() &`` assumes ``E`` is copy constructible","2023-02 (Issaquah)","|Complete|","17","" +"`LWG3847 `__","``ranges::to`` can still return views","2023-02 (Issaquah)","|Complete|","17","" "`LWG3862 `__","``basic_const_iterator``'s ``common_type`` specialization is underconstrained","2023-02 (Issaquah)","","","" -"`LWG3865 `__","Sorting a range of ``pairs``","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3869 `__","Deprecate ``std::errc`` constants related to UNIX STREAMS","2023-02 (Issaquah)","|Complete|","19.0","" -"`LWG3870 `__","Remove ``voidify``","2023-02 (Issaquah)","|Complete|","20.0","" +"`LWG3865 `__","Sorting a range of ``pairs``","2023-02 (Issaquah)","|Complete|","17","" +"`LWG3869 `__","Deprecate ``std::errc`` constants related to UNIX STREAMS","2023-02 (Issaquah)","|Complete|","19","" +"`LWG3870 `__","Remove ``voidify``","2023-02 (Issaquah)","|Complete|","20","" "`LWG3871 `__","Adjust note about ``terminate``","2023-02 (Issaquah)","","","" "`LWG3872 `__","``basic_const_iterator`` should have custom ``iter_move``","2023-02 (Issaquah)","","","" -"`LWG3875 `__","``std::ranges::repeat_view::iterator`` may be ill-formed","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3875 `__","``std::ranges::repeat_view::iterator`` may be ill-formed","2023-02 (Issaquah)","|Complete|","17","" "`LWG3876 `__","Default constructor of ``std::layout_XX::mapping`` misses precondition","2023-02 (Issaquah)","","","" -"`LWG3877 `__","Incorrect constraints on ``const``-qualified monadic overloads for ``std::expected``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3877 `__","Incorrect constraints on ``const``-qualified monadic overloads for ``std::expected``","2023-02 (Issaquah)","|Complete|","17","" "`LWG3878 `__","import ``std;`` should guarantee initialization of standard iostreams objects","2023-02 (Issaquah)","","","" "`LWG3879 `__","``erase_if`` for ``flat_{,multi}set`` is incorrectly specified","2023-02 (Issaquah)","","","" "`LWG3880 `__","Clarify ``operator+=`` complexity for ``{chunk,stride}_view::iterator``","2023-02 (Issaquah)","","","" -"`LWG3881 `__","Incorrect formatting of container adapters backed by ``std::string``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3881 `__","Incorrect formatting of container adapters backed by ``std::string``","2023-02 (Issaquah)","|Complete|","17","" diff --git a/libcxx/docs/Status/Cxx23Papers.csv b/libcxx/docs/Status/Cxx23Papers.csv index 6f1626da73507..4a4fbe9bec222 100644 --- a/libcxx/docs/Status/Cxx23Papers.csv +++ b/libcxx/docs/Status/Cxx23Papers.csv @@ -1,123 +1,123 @@ "Paper #","Paper Name","Meeting","Status","First released version","Notes" "`P0881R7 `__","A Proposal to add stacktrace library","2020-11 (Virtual)","","","" -"`P0943R6 `__","Support C atomics in C++","2020-11 (Virtual)","|Complete|","15.0","" -"`P1048R1 `__","A proposal for a type trait to detect scoped enumerations","2020-11 (Virtual)","|Complete|","12.0","" -"`P1679R3 `__","string contains function","2020-11 (Virtual)","|Complete|","12.0","" +"`P0943R6 `__","Support C atomics in C++","2020-11 (Virtual)","|Complete|","15","" +"`P1048R1 `__","A proposal for a type trait to detect scoped enumerations","2020-11 (Virtual)","|Complete|","12","" +"`P1679R3 `__","string contains function","2020-11 (Virtual)","|Complete|","12","" "","","","","","" -"`P1682R3 `__","std::to_underlying for enumerations","2021-02 (Virtual)","|Complete|","13.0","" -"`P2017R1 `__","Conditionally borrowed ranges","2021-02 (Virtual)","|Complete|","16.0","" +"`P1682R3 `__","std::to_underlying for enumerations","2021-02 (Virtual)","|Complete|","13","" +"`P2017R1 `__","Conditionally borrowed ranges","2021-02 (Virtual)","|Complete|","16","" "`P2160R1 `__","Locks lock lockables","2021-02 (Virtual)","|Nothing To Do|","","" -"`P2162R2 `__","Inheriting from std::variant","2021-02 (Virtual)","|Complete|","13.0","" +"`P2162R2 `__","Inheriting from std::variant","2021-02 (Virtual)","|Complete|","13","" "`P2212R2 `__","Relax Requirements for time_point::clock","2021-02 (Virtual)","|Nothing To Do|","","" "`P2259R1 `__","Repairing input range adaptors and counted_iterator","2021-02 (Virtual)","","","" "","","","","","" -"`P0401R6 `__","Providing size feedback in the Allocator interface","2021-06 (Virtual)","|Complete|","15.0","" +"`P0401R6 `__","Providing size feedback in the Allocator interface","2021-06 (Virtual)","|Complete|","15","" "`P0448R4 `__","A strstream replacement using span as buffer","2021-06 (Virtual)","","","" -"`P1132R8 `__","out_ptr - a scalable output pointer abstraction","2021-06 (Virtual)","|Complete|","19.0","" -"`P1328R1 `__","Making std::type_info::operator== constexpr","2021-06 (Virtual)","|Complete|","17.0","" -"`P1425R4 `__","Iterators pair constructors for stack and queue","2021-06 (Virtual)","|Complete|","14.0","" -"`P1518R2 `__","Stop overconstraining allocators in container deduction guides","2021-06 (Virtual)","|Complete|","13.0","" -"`P1659R3 `__","starts_with and ends_with","2021-06 (Virtual)","|Complete|","19.0","" -"`P1951R1 `__","Default Arguments for pair Forwarding Constructor","2021-06 (Virtual)","|Complete|","14.0","" -"`P1989R2 `__","Range constructor for std::string_view","2021-06 (Virtual)","|Complete|","14.0","" -"`P2136R3 `__","invoke_r","2021-06 (Virtual)","|Complete|","17.0","" -"`P2166R1 `__","A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr","2021-06 (Virtual)","|Complete|","13.0","" +"`P1132R8 `__","out_ptr - a scalable output pointer abstraction","2021-06 (Virtual)","|Complete|","19","" +"`P1328R1 `__","Making std::type_info::operator== constexpr","2021-06 (Virtual)","|Complete|","17","" +"`P1425R4 `__","Iterators pair constructors for stack and queue","2021-06 (Virtual)","|Complete|","14","" +"`P1518R2 `__","Stop overconstraining allocators in container deduction guides","2021-06 (Virtual)","|Complete|","13","" +"`P1659R3 `__","starts_with and ends_with","2021-06 (Virtual)","|Complete|","19","" +"`P1951R1 `__","Default Arguments for pair Forwarding Constructor","2021-06 (Virtual)","|Complete|","14","" +"`P1989R2 `__","Range constructor for std::string_view","2021-06 (Virtual)","|Complete|","14","" +"`P2136R3 `__","invoke_r","2021-06 (Virtual)","|Complete|","17","" +"`P2166R1 `__","A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr","2021-06 (Virtual)","|Complete|","13","" "","","","","","" "`P0288R9 `__","``any_invocable``","2021-10 (Virtual)","","","" -"`P0798R8 `__","Monadic operations for ``std::optional``","2021-10 (Virtual)","|Complete|","14.0","" -"`P0849R8 `__","``auto(x)``: ``DECAY_COPY`` in the language","2021-10 (Virtual)","|Complete|","14.0","" -"`P1072R10 `__","``basic_string::resize_and_overwrite``","2021-10 (Virtual)","|Complete|","14.0","" -"`P1147R1 `__","Printing ``volatile`` Pointers","2021-10 (Virtual)","|Complete|","14.0","" -"`P1272R4 `__","Byteswapping for fun&&nuf","2021-10 (Virtual)","|Complete|","14.0","" +"`P0798R8 `__","Monadic operations for ``std::optional``","2021-10 (Virtual)","|Complete|","14","" +"`P0849R8 `__","``auto(x)``: ``DECAY_COPY`` in the language","2021-10 (Virtual)","|Complete|","14","" +"`P1072R10 `__","``basic_string::resize_and_overwrite``","2021-10 (Virtual)","|Complete|","14","" +"`P1147R1 `__","Printing ``volatile`` Pointers","2021-10 (Virtual)","|Complete|","14","" +"`P1272R4 `__","Byteswapping for fun&&nuf","2021-10 (Virtual)","|Complete|","14","" "`P1675R2 `__","``rethrow_exception`` must be allowed to copy","2021-10 (Virtual)","|Nothing To Do|","","" "`P2077R3 `__","Heterogeneous erasure overloads for associative containers","2021-10 (Virtual)","","","" -"`P2251R1 `__","Require ``span`` & ``basic_string_view`` to be Trivially Copyable","2021-10 (Virtual)","|Complete|","14.0","" +"`P2251R1 `__","Require ``span`` & ``basic_string_view`` to be Trivially Copyable","2021-10 (Virtual)","|Complete|","14","" "`P2301R1 `__","Add a ``pmr`` alias for ``std::stacktrace``","2021-10 (Virtual)","","","" "`P2321R2 `__","``zip``","2021-10 (Virtual)","|In Progress|","","" "`P2340R1 `__","Clarifying the status of the 'C headers'","2021-10 (Virtual)","|Nothing To Do|","","" "`P2393R1 `__","Cleaning up ``integer``-class types","2021-10 (Virtual)","","","" -"`P2401R0 `__","Add a conditional ``noexcept`` specification to ``std::exchange``","2021-10 (Virtual)","|Complete|","14.0","" +"`P2401R0 `__","Add a conditional ``noexcept`` specification to ``std::exchange``","2021-10 (Virtual)","|Complete|","14","" "","","","","","" -"`P0323R12 `__","``std::expected``","2022-02 (Virtual)","|Complete|","16.0","" +"`P0323R12 `__","``std::expected``","2022-02 (Virtual)","|Complete|","16","" "`P0533R9 `__","``constexpr`` for ```` and ````","2022-02 (Virtual)","|In Progress|","","``isfinite``, ``isinf``, ``isnan`` and ``isnormal`` are implemented" -"`P0627R6 `__","Function to mark unreachable code","2022-02 (Virtual)","|Complete|","15.0","" -"`P1206R7 `__","``ranges::to``: A function to convert any range to a container","2022-02 (Virtual)","|Complete|","17.0","" +"`P0627R6 `__","Function to mark unreachable code","2022-02 (Virtual)","|Complete|","15","" +"`P1206R7 `__","``ranges::to``: A function to convert any range to a container","2022-02 (Virtual)","|Complete|","17","" "`P1413R3 `__","Deprecate ``std::aligned_storage`` and ``std::aligned_union``","2022-02 (Virtual)","|Complete|","","``std::aligned_storage_t`` and ``std::aligned_union_t`` are marked deprecated, but clang doesn't issue a diagnostic for deprecated using template declarations." "`P2255R2 `__","A type trait to detect reference binding to temporary","2022-02 (Virtual)","","","" -"`P2273R3 `__","Making ``std::unique_ptr`` constexpr","2022-02 (Virtual)","|Complete|","16.0","" -"`P2387R3 `__","Pipe support for user-defined range adaptors","2022-02 (Virtual)","|Complete|","19.0","" +"`P2273R3 `__","Making ``std::unique_ptr`` constexpr","2022-02 (Virtual)","|Complete|","16","" +"`P2387R3 `__","Pipe support for user-defined range adaptors","2022-02 (Virtual)","|Complete|","19","" "`P2440R1 `__","``ranges::iota``, ``ranges::shift_left`` and ``ranges::shift_right``","2022-02 (Virtual)","","","" "`P2441R2 `__","``views::join_with``","2022-02 (Virtual)","|In Progress|","","" "`P2442R1 `__","Windowing range adaptors: ``views::chunk`` and ``views::slide``","2022-02 (Virtual)","","","" -"`P2443R1 `__","``views::chunk_by``","2022-02 (Virtual)","|Complete|","18.0","" +"`P2443R1 `__","``views::chunk_by``","2022-02 (Virtual)","|Complete|","18","" "","","","","","" -"`P0009R18 `__","mdspan: A Non-Owning Multidimensional Array Reference","2022-07 (Virtual)","|Complete|","18.0","" +"`P0009R18 `__","mdspan: A Non-Owning Multidimensional Array Reference","2022-07 (Virtual)","|Complete|","18","" "`P0429R9 `__","A Standard ``flat_map``","2022-07 (Virtual)","|In progress|","","" -"`P1169R4 `__","``static operator()``","2022-07 (Virtual)","|Complete|","16.0","" +"`P1169R4 `__","``static operator()``","2022-07 (Virtual)","|Complete|","16","" "`P1222R4 `__","A Standard ``flat_set``","2022-07 (Virtual)","","","" -"`P1223R5 `__","``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()``","2022-07 (Virtual)","|Complete|","19.0","" +"`P1223R5 `__","``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()``","2022-07 (Virtual)","|Complete|","19","" "`P1467R9 `__","Extended ``floating-point`` types and standard names","2022-07 (Virtual)","","","" "`P1642R11 `__","Freestanding ``[utilities]``, ``[ranges]``, and ``[iterators]``","2022-07 (Virtual)","","","" "`P1899R3 `__","``stride_view``","2022-07 (Virtual)","","","" -"`P2093R14 `__","Formatted output","2022-07 (Virtual)","|Complete|","18.0","" +"`P2093R14 `__","Formatted output","2022-07 (Virtual)","|Complete|","18","" "`P2165R4 `__","Compatibility between ``tuple``, ``pair`` and ``tuple-like`` objects","2022-07 (Virtual)","|Partial|","","Only the part for ``zip_view`` is implemented." "`P2278R4 `__","``cbegin`` should always return a constant iterator","2022-07 (Virtual)","","","" -"`P2286R8 `__","Formatting Ranges","2022-07 (Virtual)","|Complete|","16.0","" -"`P2291R3 `__","Add Constexpr Modifiers to Functions ``to_chars`` and ``from_chars`` for Integral Types in ```` Header","2022-07 (Virtual)","|Complete|","16.0","" -"`P2302R4 `__","``std::ranges::contains``","2022-07 (Virtual)","|Complete|","19.0","" +"`P2286R8 `__","Formatting Ranges","2022-07 (Virtual)","|Complete|","16","" +"`P2291R3 `__","Add Constexpr Modifiers to Functions ``to_chars`` and ``from_chars`` for Integral Types in ```` Header","2022-07 (Virtual)","|Complete|","16","" +"`P2302R4 `__","``std::ranges::contains``","2022-07 (Virtual)","|Complete|","19","" "`P2322R6 `__","``ranges::fold``","2022-07 (Virtual)","","","" "`P2374R4 `__","``views::cartesian_product``","2022-07 (Virtual)","","","" "`P2404R3 `__","Move-only types for ``equality_comparable_with``, ``totally_ordered_with``, and ``three_way_comparable_with``","2022-07 (Virtual)","","","" "`P2408R5 `__","Ranges iterators as inputs to non-Ranges algorithms","2022-07 (Virtual)","","","" -"`P2417R2 `__","A more ``constexpr`` ``bitset``","2022-07 (Virtual)","|Complete|","16.0","" +"`P2417R2 `__","A more ``constexpr`` ``bitset``","2022-07 (Virtual)","|Complete|","16","" "`P2419R2 `__","Clarify handling of encodings in localized formatting of chrono types","2022-07 (Virtual)","","","" -"`P2438R2 `__","``std::string::substr() &&``","2022-07 (Virtual)","|Complete|","16.0","" -"`P2445R1 `__","``forward_like``","2022-07 (Virtual)","|Complete|","16.0","" -"`P2446R2 `__","``views::as_rvalue``","2022-07 (Virtual)","|Complete|","16.0","" +"`P2438R2 `__","``std::string::substr() &&``","2022-07 (Virtual)","|Complete|","16","" +"`P2445R1 `__","``forward_like``","2022-07 (Virtual)","|Complete|","16","" +"`P2446R2 `__","``views::as_rvalue``","2022-07 (Virtual)","|Complete|","16","" "`P2460R2 `__","Relax requirements on ``wchar_t`` to match existing practices","2022-07 (Virtual)","|Nothing To Do|","","" -"`P2465R3 `__","Standard Library Modules ``std`` and ``std.compat``","2022-07 (Virtual)","|Complete|","19.0","" -"`P2467R1 `__","Support exclusive mode for ``fstreams``","2022-07 (Virtual)","|Complete|","18.0","" -"`P2474R2 `__","``views::repeat``","2022-07 (Virtual)","|Complete|","17.0","" -"`P2494R2 `__","Relaxing range adaptors to allow for move only types","2022-07 (Virtual)","|Complete|","17.0","" -"`P2499R0 `__","``string_view`` range constructor should be ``explicit``","2022-07 (Virtual)","|Complete|","16.0","" +"`P2465R3 `__","Standard Library Modules ``std`` and ``std.compat``","2022-07 (Virtual)","|Complete|","19","" +"`P2467R1 `__","Support exclusive mode for ``fstreams``","2022-07 (Virtual)","|Complete|","18","" +"`P2474R2 `__","``views::repeat``","2022-07 (Virtual)","|Complete|","17","" +"`P2494R2 `__","Relaxing range adaptors to allow for move only types","2022-07 (Virtual)","|Complete|","17","" +"`P2499R0 `__","``string_view`` range constructor should be ``explicit``","2022-07 (Virtual)","|Complete|","16","" "`P2502R2 `__","``std::generator``: Synchronous Coroutine Generator for Ranges","2022-07 (Virtual)","","","" -"`P2508R1 `__","Exposing ``std::basic-format-string``","2022-07 (Virtual)","|Complete|","15.0","" +"`P2508R1 `__","Exposing ``std::basic-format-string``","2022-07 (Virtual)","|Complete|","15","" "`P2513R4 `__","``char8_t`` Compatibility and Portability Fixes","2022-07 (Virtual)","","","" "`P2517R1 `__","Add a conditional ``noexcept`` specification to ``std::apply``","2022-07 (Virtual)","|Complete|","3.9","" -"`P2520R0 `__","``move_iterator`` should be a random access iterator","2022-07 (Virtual)","|Complete|","17.0","Implemented as a DR in C++20" +"`P2520R0 `__","``move_iterator`` should be a random access iterator","2022-07 (Virtual)","|Complete|","17","Implemented as a DR in C++20" "`P2540R1 `__","Empty Product for certain Views","2022-07 (Virtual)","","","" -"`P2549R1 `__","``std::unexpected`` should have ``error()`` as member accessor","2022-07 (Virtual)","|Complete|","16.0","" -"`P2585R0 `__","Improving default container formatting","2022-07 (Virtual)","|Complete|","17.0","" +"`P2549R1 `__","``std::unexpected`` should have ``error()`` as member accessor","2022-07 (Virtual)","|Complete|","16","" +"`P2585R0 `__","Improving default container formatting","2022-07 (Virtual)","|Complete|","17","" "`P2590R2 `__","Explicit lifetime management","2022-07 (Virtual)","","","" -"`P2599R2 `__","``mdspan::size_type`` should be ``index_type``","2022-07 (Virtual)","|Complete|","18.0","" -"`P2604R0 `__","mdspan: rename pointer and contiguous","2022-07 (Virtual)","|Complete|","18.0","" -"`P2613R1 `__","Add the missing ``empty`` to ``mdspan``","2022-07 (Virtual)","|Complete|","18.0","" +"`P2599R2 `__","``mdspan::size_type`` should be ``index_type``","2022-07 (Virtual)","|Complete|","18","" +"`P2604R0 `__","mdspan: rename pointer and contiguous","2022-07 (Virtual)","|Complete|","18","" +"`P2613R1 `__","Add the missing ``empty`` to ``mdspan``","2022-07 (Virtual)","|Complete|","18","" "","","","","","" "`P1202R5 `__","Asymmetric Fences","2022-11 (Kona)","","","" -"`P1264R2 `__","Revising the wording of ``stream`` input operations","2022-11 (Kona)","|Complete|","9.0","" +"`P1264R2 `__","Revising the wording of ``stream`` input operations","2022-11 (Kona)","|Complete|","9","" "`P1478R8 `__","``Byte-wise`` ``atomic`` ``memcpy``","2022-11 (Kona)","","","" -"`P2167R3 `__","Improved Proposed Wording for LWG 2114","2022-11 (Kona)","|Complete|","20.0","The `[cmp.alg] `__ part is implemented as a DR against C++20. MSVC STL does the same. Other parts are Nothing To Do." +"`P2167R3 `__","Improved Proposed Wording for LWG 2114","2022-11 (Kona)","|Complete|","20","The `[cmp.alg] `__ part is implemented as a DR against C++20. MSVC STL does the same. Other parts are Nothing To Do." "`P2396R1 `__","Concurrency TS 2 fixes ","2022-11 (Kona)","","","" -"`P2505R5 `__","Monadic Functions for ``std::expected``","2022-11 (Kona)","|Complete|","17.0","" -"`P2539R4 `__","Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?","2022-11 (Kona)","|Complete|","18.0","" -"`P2602R2 `__","Poison Pills are Too Toxic","2022-11 (Kona)","|Complete|","19.0","Implemented as a DR in C++20" +"`P2505R5 `__","Monadic Functions for ``std::expected``","2022-11 (Kona)","|Complete|","17","" +"`P2539R4 `__","Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?","2022-11 (Kona)","|Complete|","18","" +"`P2602R2 `__","Poison Pills are Too Toxic","2022-11 (Kona)","|Complete|","19","Implemented as a DR in C++20" "`P2708R1 `__","No Further Fundamentals TSes","2022-11 (Kona)","|Nothing To Do|","","" "","","","","","" "`P0290R4 `__","``apply()`` for ``synchronized_value``","2023-02 (Issaquah)","","","" "`P2770R0 `__","Stashing stashing ``iterators`` for proper flattening","2023-02 (Issaquah)","|Partial|","","``join_with_view`` hasn't been done yet since this type isn't implemented yet" "`P2164R9 `__","``views::enumerate``","2023-02 (Issaquah)","","","" "`P2711R1 `__","Making multi-param constructors of ``views`` ``explicit``","2023-02 (Issaquah)","|In Progress|","","``join_with_view`` hasn't been done yet since this type isn't implemented yet" -"`P2609R3 `__","Relaxing Ranges Just A Smidge","2023-02 (Issaquah)","|Complete|","20.0","Implemented as a DR in C++20. Other implementations will do the same." -"`P2713R1 `__","Escaping improvements in ``std::format``","2023-02 (Issaquah)","|Complete|","19.0","" -"`P2675R1 `__","``format``'s width estimation is too approximate and not forward compatible","2023-02 (Issaquah)","|Complete|","17.0","" -"`P2572R1 `__","``std::format`` fill character allowances","2023-02 (Issaquah)","|Complete|","17.0","" +"`P2609R3 `__","Relaxing Ranges Just A Smidge","2023-02 (Issaquah)","|Complete|","20","Implemented as a DR in C++20. Other implementations will do the same." +"`P2713R1 `__","Escaping improvements in ``std::format``","2023-02 (Issaquah)","|Complete|","19","" +"`P2675R1 `__","``format``'s width estimation is too approximate and not forward compatible","2023-02 (Issaquah)","|Complete|","17","" +"`P2572R1 `__","``std::format`` fill character allowances","2023-02 (Issaquah)","|Complete|","17","" "`P2693R1 `__","Formatting ``thread::id`` and ``stacktrace``","2023-02 (Issaquah)","|Partial|","","The formatter for ``stacktrace`` is not implemented, since ``stacktrace`` is not implemented yet" "`P2679R2 `__","Fixing ``std::start_lifetime_as`` for arrays","2023-02 (Issaquah)","","","" -"`P2674R1 `__","A trait for implicit lifetime types","2023-02 (Issaquah)","|Complete|","20.0","" +"`P2674R1 `__","A trait for implicit lifetime types","2023-02 (Issaquah)","|Complete|","20","" "`P2655R3 `__","``common_reference_t`` of ``reference_wrapper`` Should Be a Reference Type","2023-02 (Issaquah)","","","" -"`P2652R2 `__","Disallow User Specialization of ``allocator_traits``","2023-02 (Issaquah)","|Complete|","19.0","" +"`P2652R2 `__","Disallow User Specialization of ``allocator_traits``","2023-02 (Issaquah)","|Complete|","19","" "`P2787R1 `__","``pmr::generator`` - Promise Types are not Values","2023-02 (Issaquah)","","","" -"`P2614R2 `__","Deprecate ``numeric_limits::has_denorm``","2023-02 (Issaquah)","|Complete|","18.0","" +"`P2614R2 `__","Deprecate ``numeric_limits::has_denorm``","2023-02 (Issaquah)","|Complete|","18","" "`P2588R3 `__","``barrier``’s phase completion guarantees","2023-02 (Issaquah)","","","" "`P2763R1 `__","``layout_stride`` static extents default constructor fix","2023-02 (Issaquah)","","","" -"`P2736R2 `__","Referencing The Unicode Standard","2023-02 (Issaquah)","|Complete|","19.0","" +"`P2736R2 `__","Referencing The Unicode Standard","2023-02 (Issaquah)","|Complete|","19","" diff --git a/libcxx/docs/Status/Cxx2cIssues.csv b/libcxx/docs/Status/Cxx2cIssues.csv index 247e8a91fa49b..a0d2ccdc34d08 100644 --- a/libcxx/docs/Status/Cxx2cIssues.csv +++ b/libcxx/docs/Status/Cxx2cIssues.csv @@ -1,71 +1,71 @@ "Issue #","Issue Name","Meeting","Status","First released version","Notes" -"`LWG2994 `__","Needless UB for ``basic_string`` and ``basic_string_view``","2023-06 (Varna)","|Complete|","5.0","" +"`LWG2994 `__","Needless UB for ``basic_string`` and ``basic_string_view``","2023-06 (Varna)","|Complete|","5","" "`LWG3884 `__","``flat_foo`` is missing allocator-extended copy/move constructors","2023-06 (Varna)","","","" "`LWG3885 `__","``op`` should be in [zombie.names]","2023-06 (Varna)","|Nothing To Do|","","" -"`LWG3887 `__","Version macro for ``allocate_at_least``","2023-06 (Varna)","|Complete|","19.0","" +"`LWG3887 `__","Version macro for ``allocate_at_least``","2023-06 (Varna)","|Complete|","19","" "`LWG3893 `__","LWG 3661 broke ``atomic> a; a = nullptr;``","2023-06 (Varna)","","","" "`LWG3894 `__","``generator::promise_type::yield_value(ranges::elements_of)`` should not be ``noexcept``","2023-06 (Varna)","","","" -"`LWG3903 `__","span destructor is redundantly noexcept","2023-06 (Varna)","|Complete|","7.0","" +"`LWG3903 `__","span destructor is redundantly noexcept","2023-06 (Varna)","|Complete|","7","" "`LWG3904 `__","``lazy_split_view::outer-iterator``'s const-converting constructor isn't setting ``trailing_empty_``","2023-06 (Varna)","","","" "`LWG3905 `__","Type of ``std::fexcept_t``","2023-06 (Varna)","|Complete|","3.4","" "`LWG3912 `__","``enumerate_view::iterator::operator-`` should be ``noexcept``","2023-06 (Varna)","","","" "`LWG3914 `__","Inconsistent template-head of ``ranges::enumerate_view``","2023-06 (Varna)","","","" "`LWG3915 `__","Redundant paragraph about expression variations","2023-06 (Varna)","","","" -"`LWG3925 `__","Concept ``formattable``'s definition is incorrect","2023-06 (Varna)","|Complete|","17.0","" +"`LWG3925 `__","Concept ``formattable``'s definition is incorrect","2023-06 (Varna)","|Complete|","17","" "`LWG3927 `__","Unclear preconditions for ``operator[]`` for sequence containers","2023-06 (Varna)","|Nothing To Do|","","" "`LWG3935 `__","``template constexpr complex& operator=(const complex&)`` has no specification","2023-06 (Varna)","|Complete|","3.4","" -"`LWG3938 `__","Cannot use ``std::expected`` monadic ops with move-only ``error_type``","2023-06 (Varna)","|Complete|","18.0","" -"`LWG3940 `__","``std::expected::value()`` also needs ``E`` to be copy constructible","2023-06 (Varna)","|Complete|","18.0","" +"`LWG3938 `__","Cannot use ``std::expected`` monadic ops with move-only ``error_type``","2023-06 (Varna)","|Complete|","18","" +"`LWG3940 `__","``std::expected::value()`` also needs ``E`` to be copy constructible","2023-06 (Varna)","|Complete|","18","" "","","","","","" "`LWG2392 `__","""character type"" is used but not defined","2023-11 (Kona)","","","" "`LWG3203 `__","``span`` element access invalidation","2023-11 (Kona)","|Nothing To Do|","","" -"`LWG3305 `__","``any_cast``","2023-11 (Kona)","|Complete|","18.0","" +"`LWG3305 `__","``any_cast``","2023-11 (Kona)","|Complete|","18","" "`LWG3431 `__","``<=>`` for containers should require ``three_way_comparable`` instead of ``<=>``","2023-11 (Kona)","","","" "`LWG3749 `__","``common_iterator`` should handle integer-class difference types","2023-11 (Kona)","","","" "`LWG3809 `__","Is ``std::subtract_with_carry_engine`` supposed to work","2023-11 (Kona)","","","" -"`LWG3892 `__","Incorrect formatting of nested ranges and tuples","2023-11 (Kona)","|Complete|","17.0","" -"`LWG3897 `__","``inout_ptr`` will not update raw pointer to 0","2023-11 (Kona)","|Complete|","19.0","" +"`LWG3892 `__","Incorrect formatting of nested ranges and tuples","2023-11 (Kona)","|Complete|","17","" +"`LWG3897 `__","``inout_ptr`` will not update raw pointer to 0","2023-11 (Kona)","|Complete|","19","" "`LWG3946 `__","The definition of ``const_iterator_t`` should be reworked","2023-11 (Kona)","","","" "`LWG3947 `__","Unexpected constraints on ``adjacent_transform_view::base()``","2023-11 (Kona)","","","" "`LWG3948 `__","``possibly-const-range and as-const-pointer`` should be ``noexcept``","2023-11 (Kona)","","","" "`LWG3949 `__","``std::atomic``'s trivial destructor dropped in C++17 spec wording","2023-11 (Kona)","","","" -"`LWG3951 `__","[expected.object.swap]: Using ``value()`` instead of ``has_value()``","2023-11 (Kona)","|Complete|","16.0","" -"`LWG3953 `__","``iter_move`` for ``common_iterator`` and ``counted_iterator`` should return ``decltype(auto)``","2023-11 (Kona)","|Complete|","20.0","" +"`LWG3951 `__","[expected.object.swap]: Using ``value()`` instead of ``has_value()``","2023-11 (Kona)","|Complete|","16","" +"`LWG3953 `__","``iter_move`` for ``common_iterator`` and ``counted_iterator`` should return ``decltype(auto)``","2023-11 (Kona)","|Complete|","20","" "`LWG3957 `__","[container.alloc.reqmts] The value category of v should be claimed","2023-11 (Kona)","","","" -"`LWG3965 `__","Incorrect example in [format.string.escaped] p3 for formatting of combining characters","2023-11 (Kona)","|Complete|","19.0","" +"`LWG3965 `__","Incorrect example in [format.string.escaped] p3 for formatting of combining characters","2023-11 (Kona)","|Complete|","19","" "`LWG3970 `__","[mdspan.syn] Missing definition of ``full_extent_t`` and ``full_extent``","2023-11 (Kona)","","","" "`LWG3973 `__","Monadic operations should be ADL-proof","2023-11 (Kona)","","","" "`LWG3974 `__","``mdspan::operator[]`` should not copy ``OtherIndexTypes``","2023-11 (Kona)","","","" "`LWG3987 `__","Including ```` doesn't provide ``std::begin``/``end``","2023-11 (Kona)","","","" "`LWG3990 `__","Program-defined specializations of ``std::tuple`` and ``std::variant`` can't be properly supported","2023-11 (Kona)","","","" -"`LWG4001 `__","``iota_view`` should provide ``empty``","2023-11 (Kona)","|Complete|","19.0","" +"`LWG4001 `__","``iota_view`` should provide ``empty``","2023-11 (Kona)","|Complete|","19","" "","","","","","" "`LWG3767 `__","``codecvt`` incorrectly added to locale","2024-03 (Tokyo)","","","" "`LWG3919 `__","``enumerate_view`` may invoke UB for sized common non-forward underlying ranges","2024-03 (Tokyo)","","","" -"`LWG3950 `__","``std::basic_string_view`` comparison operators are overspecified","2024-03 (Tokyo)","|Complete|","18.0","" +"`LWG3950 `__","``std::basic_string_view`` comparison operators are overspecified","2024-03 (Tokyo)","|Complete|","18","" "`LWG3975 `__","Specializations of ``basic_format_context`` should not be permitted","2024-03 (Tokyo)","|Nothing To Do|","","" -"`LWG3984 `__","``ranges::to``'s recursion branch may be ill-formed","2024-03 (Tokyo)","|Complete|","19.0","" +"`LWG3984 `__","``ranges::to``'s recursion branch may be ill-formed","2024-03 (Tokyo)","|Complete|","19","" "`LWG4011 `__","``""Effects: Equivalent to return""`` in ``[span.elem]``","2024-03 (Tokyo)","|Nothing To Do|","","" "`LWG4012 `__","``common_view::begin/end`` are missing the ``simple-view`` check","2024-03 (Tokyo)","","","" "`LWG4013 `__","``lazy_split_view::outer-iterator::value_type`` should not provide default constructor","2024-03 (Tokyo)","","","" -"`LWG4016 `__","container-insertable checks do not match what container-inserter does","2024-03 (Tokyo)","|Complete|","20.0","" -"`LWG4023 `__","Preconditions of ``std::basic_streambuf::setg/setp``","2024-03 (Tokyo)","|Complete|","19.0","" -"`LWG4025 `__","Move assignment operator of ``std::expected`` should not be conditionally deleted","2024-03 (Tokyo)","|Complete|","20.0","" +"`LWG4016 `__","container-insertable checks do not match what container-inserter does","2024-03 (Tokyo)","|Complete|","20","" +"`LWG4023 `__","Preconditions of ``std::basic_streambuf::setg/setp``","2024-03 (Tokyo)","|Complete|","19","" +"`LWG4025 `__","Move assignment operator of ``std::expected`` should not be conditionally deleted","2024-03 (Tokyo)","|Complete|","20","" "`LWG4030 `__","Clarify whether arithmetic expressions in ``[numeric.sat.func]`` are mathematical or C++","2024-03 (Tokyo)","|Nothing To Do|","","" -"`LWG4031 `__","``bad_expected_access`` member functions should be ``noexcept``","2024-03 (Tokyo)","|Complete|","16.0","" -"`LWG4035 `__","``single_view`` should provide ``empty``","2024-03 (Tokyo)","|Complete|","19.0","" +"`LWG4031 `__","``bad_expected_access`` member functions should be ``noexcept``","2024-03 (Tokyo)","|Complete|","16","" +"`LWG4035 `__","``single_view`` should provide ``empty``","2024-03 (Tokyo)","|Complete|","19","" "`LWG4036 `__","``__alignof_is_defined`` is only implicitly specified in C++ and not yet deprecated","2024-03 (Tokyo)","","","" "`LWG4037 `__","Static data members of ``ctype_base`` are not yet required to be usable in constant expressions","2024-03 (Tokyo)","","","" "`LWG4038 `__","``std::text_encoding::aliases_view`` should have constexpr iterators","2024-03 (Tokyo)","","","" "`LWG4043 `__","""ASCII"" is not a registered character encoding","2024-03 (Tokyo)","|Nothing To Do|","","" "`LWG4045 `__","``tuple`` can create dangling references from ``tuple-like``","2024-03 (Tokyo)","","","" -"`LWG4053 `__","Unary call to ``std::views::repeat`` does not decay the argument","2024-03 (Tokyo)","|Complete|","19.0","" -"`LWG4054 `__","Repeating a ``repeat_view`` should repeat the view","2024-03 (Tokyo)","|Complete|","19.0","" +"`LWG4053 `__","Unary call to ``std::views::repeat`` does not decay the argument","2024-03 (Tokyo)","|Complete|","19","" +"`LWG4054 `__","Repeating a ``repeat_view`` should repeat the view","2024-03 (Tokyo)","|Complete|","19","" "","","","","","" "`LWG3944 `__","Formatters converting sequences of ``char`` to sequences of ``wchar_t``","2024-06 (St. Louis)","","","" "`LWG4060 `__","``submdspan`` preconditions do not forbid creating invalid pointer","2024-06 (St. Louis)","","","" -"`LWG4061 `__","Should ``std::basic_format_context`` be default-constructible/copyable/movable?","2024-06 (St. Louis)","|Complete|","19.0","" -"`LWG4071 `__","``reference_wrapper`` comparisons are not SFINAE-friendly","2024-06 (St. Louis)","|Complete|","19.0","" +"`LWG4061 `__","Should ``std::basic_format_context`` be default-constructible/copyable/movable?","2024-06 (St. Louis)","|Complete|","19","" +"`LWG4071 `__","``reference_wrapper`` comparisons are not SFINAE-friendly","2024-06 (St. Louis)","|Complete|","19","" "`LWG4074 `__","``compatible-joinable-ranges`` is underconstrained","2024-06 (St. Louis)","","","" "`LWG4076 `__","``concat_view`` should be freestanding","2024-06 (St. Louis)","","","" "`LWG4079 `__","Missing Preconditions in ``concat_view::iterator``\`s conversion constructor","2024-06 (St. Louis)","","","" @@ -74,9 +74,9 @@ "`LWG4096 `__","``views::iota(views::iota(0))`` should be rejected","2024-06 (St. Louis)","","","" "`LWG4098 `__","``views::adjacent<0>`` should reject non-forward ranges","2024-06 (St. Louis)","","","" "`LWG4105 `__","``ranges::ends_with``\`s Returns misses difference casting","2024-06 (St. Louis)","","","" -"`LWG4106 `__","``basic_format_args`` should not be default-constructible","2024-06 (St. Louis)","|Complete|","19.0","" +"`LWG4106 `__","``basic_format_args`` should not be default-constructible","2024-06 (St. Louis)","|Complete|","19","" "","","","","","" -"`LWG3343 `__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","Not Adopted Yet","|Complete|","16.0","" -"`LWG4139 `__","§[time.zone.leap] recursive constraint in <=>","Not Adopted Yet","|Complete|","20.0","" -"`LWG3456 `__","Pattern used by std::from_chars is underspecified (option B)",,"Not Yet Adopted","|Complete|","20.0","" +"`LWG3343 `__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","Not Adopted Yet","|Complete|","16","" +"`LWG4139 `__","§[time.zone.leap] recursive constraint in <=>","Not Adopted Yet","|Complete|","20","" +"`LWG3456 `__","Pattern used by std::from_chars is underspecified (option B)",,"Not Yet Adopted","|Complete|","20","" "","","","","","" diff --git a/libcxx/docs/Status/Cxx2cPapers.csv b/libcxx/docs/Status/Cxx2cPapers.csv index d5d5cdda065ae..6659d815612d0 100644 --- a/libcxx/docs/Status/Cxx2cPapers.csv +++ b/libcxx/docs/Status/Cxx2cPapers.csv @@ -1,13 +1,13 @@ "Paper #","Paper Name","Meeting","Status","First released version","Notes" -"`P2497R0 `__","Testing for success or failure of ```` functions","2023-06 (Varna)","|Complete|","18.0","" +"`P2497R0 `__","Testing for success or failure of ```` functions","2023-06 (Varna)","|Complete|","18","" "`P2592R3 `__","Hashing support for ``std::chrono`` value classes","2023-06 (Varna)","","","" "`P2587R3 `__","``to_string`` or not ``to_string``","2023-06 (Varna)","","","" "`P2562R1 `__","``constexpr`` Stable Sorting","2023-06 (Varna)","","","" "`P2545R4 `__","Read-Copy Update (RCU)","2023-06 (Varna)","","","" "`P2530R3 `__","Hazard Pointers for C++26","2023-06 (Varna)","","","" -"`P2538R1 `__","ADL-proof ``std::projected``","2023-06 (Varna)","|Complete|","18.0","" -"`P2495R3 `__","Interfacing ``stringstream``\s with ``string_view``","2023-06 (Varna)","|Complete|","19.0","" -"`P2510R3 `__","Formatting pointers","2023-06 (Varna)","|Complete|","17.0","Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.)" +"`P2538R1 `__","ADL-proof ``std::projected``","2023-06 (Varna)","|Complete|","18","" +"`P2495R3 `__","Interfacing ``stringstream``\s with ``string_view``","2023-06 (Varna)","|Complete|","19","" +"`P2510R3 `__","Formatting pointers","2023-06 (Varna)","|Complete|","17","Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.)" "`P2198R7 `__","Freestanding Feature-Test Macros and Implementation-Defined Extensions","2023-06 (Varna)","","","" "`P2338R4 `__","Freestanding Library: Character primitives and the C library","2023-06 (Varna)","","","" "`P2013R5 `__","Freestanding Language: Optional ``::operator new``","2023-06 (Varna)","","","" @@ -17,62 +17,62 @@ "`P0792R14 `__","``function_ref``: a type-erased callable reference","2023-06 (Varna)","","","" "`P2874R2 `__","Mandating Annex D Require No More","2023-06 (Varna)","","","" "`P2757R3 `__","Type-checking format args","2023-06 (Varna)","","","" -"`P2637R3 `__","Member ``visit``","2023-06 (Varna)","|Complete|","19.0","Change of ``__cpp_lib_variant`` is completed in LLVM 20. Change of ``__cpp_lib_format`` is blocked by `P2419R2 `__." +"`P2637R3 `__","Member ``visit``","2023-06 (Varna)","|Complete|","19","Change of ``__cpp_lib_variant`` is completed in LLVM 20. Change of ``__cpp_lib_format`` is blocked by `P2419R2 `__." "`P2641R4 `__","Checking if a ``union`` alternative is active","2023-06 (Varna)","","","" -"`P1759R6 `__","Native handles and file streams","2023-06 (Varna)","|Complete|","18.0","" -"`P2697R1 `__","Interfacing ``bitset`` with ``string_view``","2023-06 (Varna)","|Complete|","18.0","" +"`P1759R6 `__","Native handles and file streams","2023-06 (Varna)","|Complete|","18","" +"`P2697R1 `__","Interfacing ``bitset`` with ``string_view``","2023-06 (Varna)","|Complete|","18","" "`P1383R2 `__","More ``constexpr`` for ```` and ````","2023-06 (Varna)","","","" -"`P2734R0 `__","Adding the new SI prefixes","2023-06 (Varna)","|Complete|","17.0","" +"`P2734R0 `__","Adding the new SI prefixes","2023-06 (Varna)","|Complete|","17","" "`P2548R6 `__","``copyable_function``","2023-06 (Varna)","","","" "`P2714R1 `__","Bind front and back to NTTP callables","2023-06 (Varna)","","","" "`P2630R4 `__","``submdspan``","2023-06 (Varna)","","","" "","","","","","" -"`P0543R3 `__","Saturation arithmetic","2023-11 (Kona)","|Complete|","18.0","" +"`P0543R3 `__","Saturation arithmetic","2023-11 (Kona)","|Complete|","18","" "`P2407R5 `__","Freestanding Library: Partial Classes","2023-11 (Kona)","","","" "`P2546R5 `__","Debugging Support","2023-11 (Kona)","","","" -"`P2905R2 `__","Runtime format strings","2023-11 (Kona)","|Complete|","18.0","" -"`P2918R2 `__","Runtime format strings II","2023-11 (Kona)","|Complete|","18.0","" -"`P2909R4 `__","Fix formatting of code units as integers (Dude, where’s my ``char``?)","2023-11 (Kona)","|Complete|","18.0","" +"`P2905R2 `__","Runtime format strings","2023-11 (Kona)","|Complete|","18","" +"`P2918R2 `__","Runtime format strings II","2023-11 (Kona)","|Complete|","18","" +"`P2909R4 `__","Fix formatting of code units as integers (Dude, where’s my ``char``?)","2023-11 (Kona)","|Complete|","18","" "`P0952R2 `__","A new specification for ``std::generate_canonical``","2023-11 (Kona)","","","" -"`P2447R6 `__","``std::span`` over an initializer list","2023-11 (Kona)","|Complete|","18.0","" -"`P2821R5 `__","``span.at()``","2023-11 (Kona)","|Complete|","18.0","" -"`P2868R3 `__","Remove Deprecated ``std::allocator`` Typedef From C++26","2023-11 (Kona)","|Complete|","18.0","" -"`P2870R3 `__","Remove ``basic_string::reserve()`` From C++26","2023-11 (Kona)","|Complete|","18.0","" -"`P2871R3 `__","Remove Deprecated Unicode Conversion Facets from C++26","2023-11 (Kona)","|Complete|","18.0","" -"`P2819R2 `__","Add tuple protocol to complex","2023-11 (Kona)","|Complete|","19.0","" +"`P2447R6 `__","``std::span`` over an initializer list","2023-11 (Kona)","|Complete|","18","" +"`P2821R5 `__","``span.at()``","2023-11 (Kona)","|Complete|","18","" +"`P2868R3 `__","Remove Deprecated ``std::allocator`` Typedef From C++26","2023-11 (Kona)","|Complete|","18","" +"`P2870R3 `__","Remove ``basic_string::reserve()`` From C++26","2023-11 (Kona)","|Complete|","18","" +"`P2871R3 `__","Remove Deprecated Unicode Conversion Facets from C++26","2023-11 (Kona)","|Complete|","18","" +"`P2819R2 `__","Add tuple protocol to complex","2023-11 (Kona)","|Complete|","19","" "`P2937R0 `__","Freestanding: Remove ``strtok``","2023-11 (Kona)","","","" "`P2833R2 `__","Freestanding Library: inout expected span","2023-11 (Kona)","","","" "`P2836R1 `__","``std::basic_const_iterator`` should follow its underlying type's convertibility","2023-11 (Kona)","","","" "`P2264R7 `__","Make ``assert()`` macro user friendly for C and C++","2023-11 (Kona)","","","" "`P1673R13 `__","A free function linear algebra interface based on the BLAS","2023-11 (Kona)","","","" "","","","","","" -"`P2875R4 `__","Undeprecate ``polymorphic_allocator::destroy`` for C++26","2024-03 (Tokyo)","|Complete|","15.0","" -"`P2867R2 `__","Remove Deprecated ``strstreams`` From C++26","2024-03 (Tokyo)","|Complete|","19.0","" +"`P2875R4 `__","Undeprecate ``polymorphic_allocator::destroy`` for C++26","2024-03 (Tokyo)","|Complete|","15","" +"`P2867R2 `__","Remove Deprecated ``strstreams`` From C++26","2024-03 (Tokyo)","|Complete|","19","" "`P2869R4 `__","Remove Deprecated ``shared_ptr`` Atomic Access APIs from C++26","2024-03 (Tokyo)","","","" -"`P2872R3 `__","Remove ``wstring_convert`` From C++26","2024-03 (Tokyo)","|Complete|","19.0","" +"`P2872R3 `__","Remove ``wstring_convert`` From C++26","2024-03 (Tokyo)","|Complete|","19","" "`P3107R5 `__","Permit an efficient implementation of ``std::print``","2024-03 (Tokyo)","","","" -"`P3142R0 `__","Printing Blank Lines with ``println``","2024-03 (Tokyo)","|Complete|","19.0","Implemented as a DR against C++23. (MSVC STL and libstdc++ will do the same.)" +"`P3142R0 `__","Printing Blank Lines with ``println``","2024-03 (Tokyo)","|Complete|","19","Implemented as a DR against C++23. (MSVC STL and libstdc++ will do the same.)" "`P2845R8 `__","Formatting of ``std::filesystem::path``","2024-03 (Tokyo)","","","" "`P0493R5 `__","Atomic minimum/maximum","2024-03 (Tokyo)","","","" "`P2542R8 `__","``views::concat``","2024-03 (Tokyo)","","","" -"`P2591R5 `__","Concatenation of strings and string views","2024-03 (Tokyo)","|Complete|","19.0","" +"`P2591R5 `__","Concatenation of strings and string views","2024-03 (Tokyo)","|Complete|","19","" "`P2248R8 `__","Enabling list-initialization for algorithms","2024-03 (Tokyo)","","","" "`P2810R4 `__","``is_debugger_present`` ``is_replaceable``","2024-03 (Tokyo)","","","" "`P1068R11 `__","Vector API for random number generation","2024-03 (Tokyo)","","","" -"`P2944R3 `__","Comparisons for ``reference_wrapper``","2024-03 (Tokyo)","|Partial|","19.0","Implemented comparisons for ``reference_wrapper`` only" +"`P2944R3 `__","Comparisons for ``reference_wrapper``","2024-03 (Tokyo)","|Partial|","19","Implemented comparisons for ``reference_wrapper`` only" "`P2642R6 `__","Padded ``mdspan`` layouts","2024-03 (Tokyo)","","","" -"`P3029R1 `__","Better ``mdspan``'s CTAD","2024-03 (Tokyo)","|Complete|","19.0","" +"`P3029R1 `__","Better ``mdspan``'s CTAD","2024-03 (Tokyo)","|Complete|","19","" "","","","","","" -"`P2747R2 `__","``constexpr`` placement new","2024-06 (St. Louis)","|Complete|","20.0","" -"`P2997R1 `__","Removing the common reference requirement from the indirectly invocable concepts","2024-06 (St. Louis)","|Complete|","19.0","Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.)" -"`P2389R2 `__","``dextents`` Index Type Parameter","2024-06 (St. Louis)","|Complete|","19.0","" +"`P2747R2 `__","``constexpr`` placement new","2024-06 (St. Louis)","|Complete|","20","" +"`P2997R1 `__","Removing the common reference requirement from the indirectly invocable concepts","2024-06 (St. Louis)","|Complete|","19","Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.)" +"`P2389R2 `__","``dextents`` Index Type Parameter","2024-06 (St. Louis)","|Complete|","19","" "`P3168R2 `__","Give ``std::optional`` Range Support","2024-06 (St. Louis)","","","" "`P3217R0 `__","Adjoints to 'Enabling list-initialization for algorithms': find_last","2024-06 (St. Louis)","","","" -"`P2985R0 `__","A type trait for detecting virtual base classes","2024-06 (St. Louis)","|Complete|","20.0","" +"`P2985R0 `__","A type trait for detecting virtual base classes","2024-06 (St. Louis)","|Complete|","20","" "`P0843R14 `__","``inplace_vector``","2024-06 (St. Louis)","","","" "`P3235R3 `__","``std::print`` more types faster with less memory","2024-06 (St. Louis)","","","" -"`P2968R2 `__","Make ``std::ignore`` a first-class object","2024-06 (St. Louis)","|Complete|","19.0","" +"`P2968R2 `__","Make ``std::ignore`` a first-class object","2024-06 (St. Louis)","|Complete|","19","" "`P2075R6 `__","Philox as an extension of the C++ RNG engines","2024-06 (St. Louis)","","","" -"`P2422R1 `__","Remove ``nodiscard`` annotations from the standard library specification","2024-06 (St. Louis)","|Complete|","19.0","``nodiscard`` attributes were kept as a conforming extension" +"`P2422R1 `__","Remove ``nodiscard`` annotations from the standard library specification","2024-06 (St. Louis)","|Complete|","19","``nodiscard`` attributes were kept as a conforming extension" "`P2300R10 `__","``std::execution``","2024-06 (St. Louis)","","","" "","","","","","" diff --git a/libcxx/docs/Status/FormatIssues.csv b/libcxx/docs/Status/FormatIssues.csv index 3780c1ed5c127..d618fadc3d0ad 100644 --- a/libcxx/docs/Status/FormatIssues.csv +++ b/libcxx/docs/Status/FormatIssues.csv @@ -1,27 +1,27 @@ Number,Name,Standard,Assignee,Status,First released version -`P0645 `_,"Text Formatting","C++20",Mark de Wever,|Complete|,14.0 -`P1652 `_,"Printf corner cases in std::format","C++20",Mark de Wever,|Complete|,14.0 -`P1892 `_,"Extended locale-specific presentation specifiers for std::format","C++20",Mark de Wever,|Complete|,14.0 -`P1868 `_,"width: clarifying units of width and precision in std::format (Implements the unicode support.)","C++20",Mark de Wever,|Complete|,14.0 -`P2216 `_,"std::format improvements","C++20",Mark de Wever,|Complete|,15.0 -`P2418 `__,"Add support for ``std::generator``-like types to ``std::format``","C++20",Mark de Wever,|Complete|,15.0 -"`P2093R14 `__","Formatted output","C++23",Mark de Wever,|Complete|,"18.0" -"`P2286R8 `__","Formatting Ranges","C++23","Mark de Wever","|Complete|",16.0 -"`P2508R1 `__","Exposing ``std::basic-format-string``","C++23","Mark de Wever","|Complete|",15.0 -"`P2585R0 `__","Improving default container formatting","C++23","Mark de Wever","|Complete|",17.0 -"`P2539R4 `__","Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?","C++23","Mark de Wever","|Complete|","18.0" -"`P2713R1 `__","Escaping improvements in ``std::format``","C++23","Mark de Wever","|Complete|",19.0 -"`P2675R1 `__","``format``'s width estimation is too approximate and not forward compatible","C++23","Mark de Wever","|Complete|",17.0 -"`P2572R1 `__","``std::format`` fill character allowances","C++23","Mark de Wever","|Complete|",17.0 +`P0645 `_,"Text Formatting","C++20",Mark de Wever,|Complete|,14 +`P1652 `_,"Printf corner cases in std::format","C++20",Mark de Wever,|Complete|,14 +`P1892 `_,"Extended locale-specific presentation specifiers for std::format","C++20",Mark de Wever,|Complete|,14 +`P1868 `_,"width: clarifying units of width and precision in std::format (Implements the unicode support.)","C++20",Mark de Wever,|Complete|,14 +`P2216 `_,"std::format improvements","C++20",Mark de Wever,|Complete|,15 +`P2418 `__,"Add support for ``std::generator``-like types to ``std::format``","C++20",Mark de Wever,|Complete|,15 +"`P2093R14 `__","Formatted output","C++23",Mark de Wever,|Complete|,"18" +"`P2286R8 `__","Formatting Ranges","C++23","Mark de Wever","|Complete|",16 +"`P2508R1 `__","Exposing ``std::basic-format-string``","C++23","Mark de Wever","|Complete|",15 +"`P2585R0 `__","Improving default container formatting","C++23","Mark de Wever","|Complete|",17 +"`P2539R4 `__","Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?","C++23","Mark de Wever","|Complete|","18" +"`P2713R1 `__","Escaping improvements in ``std::format``","C++23","Mark de Wever","|Complete|",19 +"`P2675R1 `__","``format``'s width estimation is too approximate and not forward compatible","C++23","Mark de Wever","|Complete|",17 +"`P2572R1 `__","``std::format`` fill character allowances","C++23","Mark de Wever","|Complete|",17 "`P2693R1 `__","Formatting ``thread::id`` and ``stacktrace``","C++23","Mark de Wever","|In Progress|" -"`P2510R3 `__","Formatting pointers","C++26","Mark de Wever","|Complete|",17.0 +"`P2510R3 `__","Formatting pointers","C++26","Mark de Wever","|Complete|",17 "`P2757R3 `__","Type-checking format args","C++26","","", -"`P2637R3 `__","Member ``visit``","C++26","Hristo Hristov","|Complete|",19.0 -"`P2905R2 `__","Runtime format strings","C++26 DR","Mark de Wever","|Complete|",18.0 -"`P2918R2 `__","Runtime format strings II","C++26","Mark de Wever","|Complete|",18.0 -"`P2909R4 `__","Fix formatting of code units as integers (Dude, where’s my ``char``?)","C++26 DR","Mark de Wever","|Complete|",18.0 +"`P2637R3 `__","Member ``visit``","C++26","Hristo Hristov","|Complete|",19 +"`P2905R2 `__","Runtime format strings","C++26 DR","Mark de Wever","|Complete|",18 +"`P2918R2 `__","Runtime format strings II","C++26","Mark de Wever","|Complete|",18 +"`P2909R4 `__","Fix formatting of code units as integers (Dude, where’s my ``char``?)","C++26 DR","Mark de Wever","|Complete|",18 "`P3107R5 `__","Permit an efficient implementation of ``std::print``","C++26 DR","Mark de Wever","|In Progress|","" -"`P3142R0 `__","Printing Blank Lines with ``println``","C++26 DR","Hristo Hristov","|Complete|",19.0 +"`P3142R0 `__","Printing Blank Lines with ``println``","C++26 DR","Hristo Hristov","|Complete|",19 "`P2845R8 `__","Formatting of ``std::filesystem::path``","C++26","Mark de Wever","","" `P1361 `_,"Integration of chrono with text formatting","C++20",Mark de Wever,|In Progress|, diff --git a/libcxx/docs/Status/FormatPaper.csv b/libcxx/docs/Status/FormatPaper.csv index fb96b1fff30ad..7f5f46d834d3e 100644 --- a/libcxx/docs/Status/FormatPaper.csv +++ b/libcxx/docs/Status/FormatPaper.csv @@ -1,33 +1,33 @@ Section,Description,Dependencies,Assignee,Status,First released version `P1361 `__ `P2372 `__,"Formatting chrono" -`[time.syn] `_,"Formatter ``chrono::duration``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::sys_time``",,Mark de Wever,|Complete|,17.0 +`[time.syn] `_,"Formatter ``chrono::duration``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::sys_time``",,Mark de Wever,|Complete|,17 `[time.syn] `_,"Formatter ``chrono::utc_time``",A ```` implementation,Mark de Wever,,, `[time.syn] `_,"Formatter ``chrono::tai_time``",A ```` implementation,Mark de Wever,,, `[time.syn] `_,"Formatter ``chrono::gps_time``",A ```` implementation,Mark de Wever,,, -`[time.syn] `_,"Formatter ``chrono::file_time``",,Mark de Wever,|Complete|,17.0 -`[time.syn] `_,"Formatter ``chrono::local_time``",,Mark de Wever,|Complete|,17.0 +`[time.syn] `_,"Formatter ``chrono::file_time``",,Mark de Wever,|Complete|,17 +`[time.syn] `_,"Formatter ``chrono::local_time``",,Mark de Wever,|Complete|,17 `[time.syn] `_,"Formatter ``chrono::local-time-format-t``",,,|Nothing To Do|, -`[time.syn] `_,"Formatter ``chrono::day``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::month``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::year``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::weekday``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::weekday_indexed``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::weekday_last``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::month_day``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::month_day_last``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::month_weekday``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::month_weekday_last``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::year_month``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::year_month_day``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::year_month_day_last``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::year_month_weekday``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::year_month_weekday_last``",,Mark de Wever,|Complete|,16.0 -`[time.syn] `_,"Formatter ``chrono::hh_mm_ss>``",,Mark de Wever,|Complete|,17.0 -`[time.syn] `_,"Formatter ``chrono::sys_info``",,Mark de Wever,|Complete|,19.0 -`[time.syn] `_,"Formatter ``chrono::local_info``",,Mark de Wever,|Complete|,19.0 -`[time.syn] `_,"Formatter ``chrono::zoned_time``",,Mark de Wever,|Complete|,19.0 +`[time.syn] `_,"Formatter ``chrono::day``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::month``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::year``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::weekday``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::weekday_indexed``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::weekday_last``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::month_day``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::month_day_last``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::month_weekday``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::month_weekday_last``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::year_month``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::year_month_day``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::year_month_day_last``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::year_month_weekday``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::year_month_weekday_last``",,Mark de Wever,|Complete|,16 +`[time.syn] `_,"Formatter ``chrono::hh_mm_ss>``",,Mark de Wever,|Complete|,17 +`[time.syn] `_,"Formatter ``chrono::sys_info``",,Mark de Wever,|Complete|,19 +`[time.syn] `_,"Formatter ``chrono::local_info``",,Mark de Wever,|Complete|,19 +`[time.syn] `_,"Formatter ``chrono::zoned_time``",,Mark de Wever,|Complete|,19 "`P2693R1 `__","Formatting ``thread::id`` and ``stacktrace``" -`[thread.thread.id] `_,"Formatting ``thread::id``",,Mark de Wever,|Complete|,17.0 +`[thread.thread.id] `_,"Formatting ``thread::id``",,Mark de Wever,|Complete|,17 `[stacktrace.format] `_,"Formatting ``stacktrace``",A ```` implementation,Mark de Wever,,