From 844bc1f2764e9620dfedf92eac90404a4f2a4f61 Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Mon, 21 Jul 2025 10:18:43 -0400 Subject: [PATCH] [libc++] Start tracking Github issues in status pages This patch adds another row to the Status pages that cross-references the Github issue. It also ensures that the synchronization script takes that new row into account. This should make it easier to find out about the detailed status of a paper from the status pages by clicking on the link and being taken directly to its associated Github issue. I expect that this should remove the need for many "Notes" which simply duplicate the information of which parts of a paper are implemented: instead we can list that the implementation is partial and users can click on the Github issue to see what's implemented. --- libcxx/docs/Status/Cxx17Issues.csv | 630 +++++++++---------- libcxx/docs/Status/Cxx17Papers.csv | 226 +++---- libcxx/docs/Status/Cxx20Issues.csv | 604 +++++++++--------- libcxx/docs/Status/Cxx20Papers.csv | 412 ++++++------ libcxx/docs/Status/Cxx23Issues.csv | 616 +++++++++--------- libcxx/docs/Status/Cxx23Papers.csv | 244 +++---- libcxx/docs/Status/Cxx2cIssues.csv | 304 ++++----- libcxx/docs/Status/Cxx2cPapers.csv | 318 +++++----- libcxx/utils/synchronize_csv_status_files.py | 44 +- 9 files changed, 1716 insertions(+), 1682 deletions(-) diff --git a/libcxx/docs/Status/Cxx17Issues.csv b/libcxx/docs/Status/Cxx17Issues.csv index 15f4b28575b6a..b01f11b9ca551 100644 --- a/libcxx/docs/Status/Cxx17Issues.csv +++ b/libcxx/docs/Status/Cxx17Issues.csv @@ -1,315 +1,315 @@ -"Issue #","Issue Name","Meeting","Status","First released version","Notes" -"`LWG2016 `__","Allocators must be no-throw swappable","2014-11 (Urbana)","|Complete|","","" -"`LWG2118 `__","``unique_ptr``\ for array does not support cv qualification conversion of actual argument","2014-11 (Urbana)","|Complete|","","" -"`LWG2170 `__","Aggregates cannot be ``DefaultConstructible``\ ","2014-11 (Urbana)","|Complete|","","" -"`LWG2340 `__","Replacement allocation functions declared as inline","2014-11 (Urbana)","|Complete|","","" -"`LWG2354 `__","Unnecessary copying when inserting into maps with braced-init syntax","2014-11 (Urbana)","|Complete|","","" -"`LWG2377 `__","``std::align``\ requirements overly strict","2014-11 (Urbana)","|Complete|","","" -"`LWG2396 `__","``underlying_type``\ doesn't say what to do for an incomplete enumeration type","2014-11 (Urbana)","|Complete|","","" -"`LWG2399 `__","``shared_ptr``\ 's constructor from ``unique_ptr``\ should be constrained","2014-11 (Urbana)","|Complete|","","" -"`LWG2400 `__","``shared_ptr``\ 's ``get_deleter()``\ should use ``addressof()``\ ","2014-11 (Urbana)","|Complete|","","" -"`LWG2401 `__","``std::function``\ needs more noexcept","2014-11 (Urbana)","|Complete|","","" -"`LWG2404 `__","``mismatch()``\ 's complexity needs to be updated","2014-11 (Urbana)","|Complete|","","" -"`LWG2408 `__","SFINAE-friendly ``common_type``\ / ``iterator_traits``\ is missing in C++14","2014-11 (Urbana)","|Complete|","","" -"`LWG2106 `__","``move_iterator``\ wrapping iterators returning prvalues","2014-11 (Urbana)","|Complete|","","" -"`LWG2129 `__","User specializations of ``std::initializer_list``\ ","2014-11 (Urbana)","|Complete|","21","" -"`LWG2212 `__","``tuple_size``\ for ``const pair``\ request header","2014-11 (Urbana)","|Complete|","","" -"`LWG2217 `__","``operator==(sub_match, string)``\ slices on embedded '\0's","2014-11 (Urbana)","|Complete|","","" -"`LWG2230 `__","""see below"" for ``initializer_list``\ constructors of unordered containers","2014-11 (Urbana)","|Complete|","","" -"`LWG2233 `__","``bad_function_call::what()``\ unhelpful","2014-11 (Urbana)","|Complete|","","" -"`LWG2266 `__","``vector``\ and ``deque``\ have incorrect insert requirements","2014-11 (Urbana)","|Complete|","","" -"`LWG2325 `__","``minmax_element()``\ 's behavior differing from ``max_element()``\ 's should be noted","2014-11 (Urbana)","|Complete|","","" -"`LWG2361 `__","Apply 2299 resolution throughout library","2014-11 (Urbana)","|Complete|","","" -"`LWG2365 `__","Missing noexcept in ``shared_ptr::shared_ptr(nullptr_t)``\ ","2014-11 (Urbana)","|Complete|","","" -"`LWG2376 `__","``bad_weak_ptr::what()``\ overspecified","2014-11 (Urbana)","|Complete|","","" -"`LWG2387 `__","More nested types that must be accessible and unambiguous","2014-11 (Urbana)","|Complete|","","" -"","","","","","" -"`LWG2059 `__","C++0x ambiguity problem with map::erase","2015-05 (Lenexa)","|Complete|","","" -"`LWG2063 `__","Contradictory requirements for string move assignment","2015-05 (Lenexa)","|Complete|","","" -"`LWG2076 `__","Bad CopyConstructible requirement in set constructors","2015-05 (Lenexa)","|Complete|","","" -"`LWG2160 `__","Unintended destruction ordering-specification of resize","2015-05 (Lenexa)","|Complete|","","" -"`LWG2168 `__","Inconsistent specification of uniform_real_distribution constructor","2015-05 (Lenexa)","|Complete|","","" -"`LWG2239 `__","min/max/minmax requirements","2015-05 (Lenexa)","|Complete|","","" -"`LWG2364 `__","deque and vector pop_back don't specify iterator invalidation requirements","2015-05 (Lenexa)","|Complete|","","" -"`LWG2369 `__","constexpr max(initializer_list) vs max_element","2015-05 (Lenexa)","|Complete|","","" -"`LWG2378 `__","Behaviour of standard exception types","2015-05 (Lenexa)","|Complete|","","" -"`LWG2403 `__","stof() should call strtof() and wcstof()","2015-05 (Lenexa)","|Complete|","","" -"`LWG2406 `__","negative_binomial_distribution should reject p == 1","2015-05 (Lenexa)","|Complete|","","" -"`LWG2407 `__","packaged_task(allocator_arg_t, const Allocator&, F&&) should neither be constrained nor explicit","2015-05 (Lenexa)","|Complete|","","" -"`LWG2411 `__","shared_ptr is only contextually convertible to bool","2015-05 (Lenexa)","|Complete|","","" -"`LWG2415 `__","Inconsistency between unique_ptr and shared_ptr","2015-05 (Lenexa)","|Complete|","","" -"`LWG2420 `__","function does not discard the return value of the target object","2015-05 (Lenexa)","|Complete|","","" -"`LWG2425 `__","``operator delete(void*, size_t)``\ doesn't invalidate pointers sufficiently","2015-05 (Lenexa)","|Complete|","","" -"`LWG2427 `__","Container adaptors as sequence containers, redux","2015-05 (Lenexa)","|Complete|","","" -"`LWG2428 `__","""External declaration"" used without being defined","2015-05 (Lenexa)","|Complete|","","" -"`LWG2433 `__","``uninitialized_copy()``\ /etc. should tolerate overloaded operator&","2015-05 (Lenexa)","|Complete|","","" -"`LWG2434 `__","``shared_ptr::use_count()``\ is efficient","2015-05 (Lenexa)","|Complete|","","" -"`LWG2437 `__","``iterator_traits::reference``\ can and can't be void","2015-05 (Lenexa)","|Complete|","","" -"`LWG2438 `__","``std::iterator``\ inheritance shouldn't be mandated","2015-05 (Lenexa)","|Complete|","","" -"`LWG2439 `__","``unique_copy()``\ sometimes can't fall back to reading its output","2015-05 (Lenexa)","|Complete|","","" -"`LWG2440 `__","``seed_seq::size()``\ should be noexcept","2015-05 (Lenexa)","|Complete|","","" -"`LWG2442 `__","``call_once()``\ shouldn't DECAY_COPY()","2015-05 (Lenexa)","|Complete|","","" -"`LWG2448 `__","Non-normative Container destructor specification","2015-05 (Lenexa)","|Complete|","","" -"`LWG2454 `__","Add ``raw_storage_iterator::base()``\ member","2015-05 (Lenexa)","|Complete|","","" -"`LWG2455 `__","Allocator default construction should be allowed to throw","2015-05 (Lenexa)","|Complete|","","" -"`LWG2458 `__","N3778 and new library deallocation signatures","2015-05 (Lenexa)","|Complete|","","" -"`LWG2459 `__","``std::polar``\ should require a non-negative rho","2015-05 (Lenexa)","|Complete|","","" -"`LWG2464 `__","``try_emplace``\ and ``insert_or_assign``\ misspecified","2015-05 (Lenexa)","|Complete|","","" -"`LWG2467 `__","``is_always_equal``\ has slightly inconsistent default","2015-05 (Lenexa)","|Complete|","","" -"`LWG2470 `__","Allocator's destroy function should be allowed to fail to instantiate","2015-05 (Lenexa)","|Complete|","","" -"`LWG2482 `__","[c.strings] Table 73 mentions nonexistent functions","2015-05 (Lenexa)","|Complete|","","" -"`LWG2488 `__","Placeholders should be allowed and encouraged to be constexpr","2015-05 (Lenexa)","|Complete|","","" -"","","","","","" -"`LWG1169 `__","``num_get``\ not fully compatible with ``strto*``\ ","2015-10 (Kona)","|Complete|","","" -"`LWG2072 `__","Unclear wording about capacity of temporary buffers","2015-10 (Kona)","|Complete|","","" -"`LWG2101 `__","Some transformation types can produce impossible types","2015-10 (Kona)","|Complete|","","" -"`LWG2111 `__","Which ``unexpected``\ /``terminate``\ handler is called from the exception handling runtime?","2015-10 (Kona)","|Complete|","","" -"`LWG2119 `__","Missing ``hash``\ specializations for extended integer types","2015-10 (Kona)","|Complete|","","" -"`LWG2127 `__","Move-construction with ``raw_storage_iterator``\ ","2015-10 (Kona)","|Complete|","","" -"`LWG2133 `__","Attitude to overloaded comma for iterators","2015-10 (Kona)","|Complete|","","" -"`LWG2156 `__","Unordered containers' ``reserve(n)``\ reserves for ``n-1``\ elements","2015-10 (Kona)","|Complete|","","" -"`LWG2218 `__","Unclear how containers use ``allocator_traits::construct()``\ ","2015-10 (Kona)","|Complete|","","" -"`LWG2219 `__","``*INVOKE*``\ -ing a pointer to member with a ``reference_wrapper``\ as the object expression","2015-10 (Kona)","|Complete|","","" -"`LWG2224 `__","Ambiguous status of access to non-live objects","2015-10 (Kona)","|Complete|","","" -"`LWG2234 `__","``assert()``\ should allow usage in constant expressions","2015-10 (Kona)","|Complete|","","" -"`LWG2244 `__","Issue on ``basic_istream::seekg``\ ","2015-10 (Kona)","|Complete|","","" -"`LWG2250 `__","Follow-up On Library Issue 2207","2015-10 (Kona)","|Complete|","","" -"`LWG2259 `__","Issues in 17.6.5.5 rules for member functions","2015-10 (Kona)","|Complete|","","" -"`LWG2273 `__","``regex_match``\ ambiguity","2015-10 (Kona)","|Complete|","","" -"`LWG2336 `__","``is_trivially_constructible``\ /``is_trivially_assignable``\ traits are always false","2015-10 (Kona)","|Complete|","","" -"`LWG2353 `__","``std::next``\ is over-constrained","2015-10 (Kona)","|Complete|","","" -"`LWG2367 `__","``pair``\ and ``tuple``\ are not correctly implemented for ``is_constructible``\ with no args","2015-10 (Kona)","|Complete|","","" -"`LWG2380 `__","May ````\ provide ``long ::abs(long)``\ and ``long long ::abs(long long)``\ ?","2015-10 (Kona)","|Complete|","","" -"`LWG2384 `__","Allocator's ``deallocate``\ function needs better specification","2015-10 (Kona)","|Complete|","","" -"`LWG2385 `__","``function::assign``\ allocator argument doesn't make sense","2015-10 (Kona)","|Complete|","","" -"`LWG2435 `__","``reference_wrapper::operator()``\ 's Remark should be deleted","2015-10 (Kona)","|Complete|","","" -"`LWG2447 `__","Allocators and ``volatile``\ -qualified value types","2015-10 (Kona)","|Complete|","","" -"`LWG2462 `__","``std::ios_base::failure``\ is overspecified","2015-10 (Kona)","|Complete|","","" -"`LWG2466 `__","``allocator_traits::max_size()``\ default behavior is incorrect","2015-10 (Kona)","|Complete|","","" -"`LWG2469 `__","Wrong specification of Requires clause of ``operator[]``\ for ``map``\ and ``unordered_map``\ ","2015-10 (Kona)","|Complete|","","" -"`LWG2473 `__","``basic_filebuf``\ 's relation to C ``FILE``\ semantics","2015-10 (Kona)","|Complete|","","" -"`LWG2476 `__","``scoped_allocator_adaptor``\ is not assignable","2015-10 (Kona)","|Complete|","","" -"`LWG2477 `__","Inconsistency of wordings in ``std::vector::erase()``\ and ``std::deque::erase()``\ ","2015-10 (Kona)","|Complete|","","" -"`LWG2483 `__","``throw_with_nested()``\ should use ``is_final``\ ","2015-10 (Kona)","|Complete|","","" -"`LWG2484 `__","``rethrow_if_nested()``\ is doubly unimplementable","2015-10 (Kona)","|Complete|","","" -"`LWG2485 `__","``get()``\ should be overloaded for ``const tuple&&``\ ","2015-10 (Kona)","|Complete|","","" -"`LWG2486 `__","``mem_fn()``\ should be required to use perfect forwarding","2015-10 (Kona)","|Complete|","","" -"`LWG2487 `__","``bind()``\ should be ``const``\ -overloaded, not *cv*-overloaded","2015-10 (Kona)","|Complete|","","" -"`LWG2489 `__","``mem_fn()``\ should be ``noexcept``\ ","2015-10 (Kona)","|Complete|","","" -"`LWG2492 `__","Clarify requirements for ``comp``\ ","2015-10 (Kona)","|Complete|","","" -"`LWG2495 `__","There is no such thing as an Exception Safety element","2015-10 (Kona)","|Complete|","","" -"","","","","","" -"`LWG2192 `__","Validity and return type of ``std::abs(0u)``\ is unclear","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2276 `__","Missing requirement on ``std::promise::set_exception``\ ","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2296 `__","``std::addressof``\ should be ``constexpr``\ ","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2450 `__","``(greater|less|greater_equal|less_equal)``\ do not yield a total order for pointers","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2520 `__","N4089 broke initializing ``unique_ptr``\ from a ``nullptr``\ ","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2522 `__","[fund.ts.v2] Contradiction in ``set_default_resource``\ specification","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2523 `__","``std::promise``\ synopsis shows two ``set_value_at_thread_exit()``\ 's for no apparent reason","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2537 `__","Constructors for ``priority_queue``\ taking allocators should call ``make_heap``\ ","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2539 `__","[fund.ts.v2] ``invocation_trait``\ definition definition doesn't work for surrogate call functions","2016-02 (Jacksonville)","","","" -"`LWG2545 `__","Simplify wording for ``bind``\ without explicitly specified return type","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2557 `__","Logical operator traits are broken in the zero-argument case","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2558 `__","[fund.ts.v2] Logical operator traits are broken in the zero-argument case","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2559 `__","Error in LWG 2234's resolution","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2560 `__","``is_constructible``\ underspecified when applied to a function type","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2565 `__","``std::function``\ 's move constructor should guarantee nothrow for ``reference_wrapper``\ s and function pointers","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2566 `__","Requirements on the first template parameter of container adaptors","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2571 `__","|sect|\ [map.modifiers]/2 imposes nonsensical requirement on ``insert(InputIterator, InputIterator)``\ ","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2572 `__","The remarks for ``shared_ptr::operator*``\ should apply to *cv*-qualified ``void``\ as well","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2574 `__","[fund.ts.v2] ``std::experimental::function::operator=(F&&)``\ should be constrained","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2575 `__","[fund.ts.v2] ``experimental::function::assign``\ should be removed","2016-02 (Jacksonville)","","","" -"`LWG2576 `__","``istream_iterator``\ and ``ostream_iterator``\ should use ``std::addressof``\ ","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2577 `__","``{shared,unique}_lock``\ should use ``std::addressof``\ ","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2579 `__","Inconsistency wrt Allocators in ``basic_string``\ assignment vs. ``basic_string::assign``\ ","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2581 `__","Specialization of ````\ variable templates should be prohibited","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2582 `__","|sect|\ [res.on.functions]/2's prohibition against incomplete types shouldn't apply to type traits","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2583 `__","There is no way to supply an allocator for ``basic_string(str, pos)``\ ","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2585 `__","``forward_list::resize(size_type, const value_type&)``\ effects incorrect","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2586 `__","Wrong value category used in ``scoped_allocator_adaptor::construct()``\ ","2016-02 (Jacksonville)","|Complete|","","" -"`LWG2590 `__","Aggregate initialization for ``std::array``\ ","2016-02 (Jacksonville)","|Complete|","","" -"","","","","","" -"`LWG2181 `__","Exceptions from seed sequence operations","2016-06 (Oulu)","|Complete|","","" -"`LWG2309 `__","mutex::lock() should not throw device_or_resource_busy","2016-06 (Oulu)","|Complete|","","" -"`LWG2310 `__","Public exposition only member in std::array","2016-06 (Oulu)","|Complete|","","" -"`LWG2312 `__","tuple's constructor constraints need to be phrased more precisely","2016-06 (Oulu)","|Complete|","","" -"`LWG2328 `__","Rvalue stream extraction should use perfect forwarding","2016-06 (Oulu)","|Complete|","","" -"`LWG2393 `__","std::function's Callable definition is broken","2016-06 (Oulu)","|Complete|","","" -"`LWG2422 `__","``std::numeric_limits::is_modulo``\ description: ""most machines"" errata","2016-06 (Oulu)","|Complete|","","" -"`LWG2426 `__","Issue about compare_exchange","2016-06 (Oulu)","|Complete|","","" -"`LWG2436 `__","Comparators for associative containers should always be CopyConstructible","2016-06 (Oulu)","|Complete|","","" -"`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","" -"`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|","","" -"`LWG2551 `__","[fund.ts.v2] ""Exception safety"" cleanup in library fundamentals required","2016-06 (Oulu)","|Complete|","","" -"`LWG2555 `__","[fund.ts.v2] No handling for over-aligned types in optional","2016-06 (Oulu)","|Complete|","","" -"`LWG2573 `__","[fund.ts.v2] std::hash does not work for arrays","2016-06 (Oulu)","","","" -"`LWG2596 `__","vector::data() should use addressof","2016-06 (Oulu)","|Complete|","","" -"`LWG2667 `__","path::root_directory() description is confusing","2016-06 (Oulu)","|Complete|","","" -"`LWG2669 `__","recursive_directory_iterator effects refers to non-existent functions","2016-06 (Oulu)","|Complete|","","" -"`LWG2670 `__","system_complete refers to undefined variable 'base'","2016-06 (Oulu)","|Complete|","","" -"`LWG2671 `__","Errors in Copy","2016-06 (Oulu)","|Complete|","","" -"`LWG2673 `__","status() effects cannot be implemented as specified","2016-06 (Oulu)","|Complete|","","" -"`LWG2674 `__","Bidirectional iterator requirement on path::iterator is very expensive","2016-06 (Oulu)","|Complete|","","" -"`LWG2683 `__","filesystem::copy() says ""no effects""","2016-06 (Oulu)","|Complete|","","" -"`LWG2684 `__","priority_queue lacking comparator typedef","2016-06 (Oulu)","|Complete|","","" -"`LWG2685 `__","shared_ptr deleters must not throw on move construction","2016-06 (Oulu)","|Complete|","","" -"`LWG2687 `__","{inclusive,exclusive}_scan misspecified","2016-06 (Oulu)","|Complete|","","" -"`LWG2688 `__","clamp misses preconditions and has extraneous condition on result","2016-06 (Oulu)","|Complete|","","" -"`LWG2689 `__","Parallel versions of std::copy and std::move shouldn't be in order","2016-06 (Oulu)","|Nothing To Do|","","" -"`LWG2698 `__","Effect of assign() on iterators/pointers/references","2016-06 (Oulu)","|Complete|","","" -"`LWG2704 `__","recursive_directory_iterator's members should require '``*this`` is dereferenceable'","2016-06 (Oulu)","|Complete|","","" -"`LWG2706 `__","Error reporting for recursive_directory_iterator::pop() is under-specified","2016-06 (Oulu)","|Complete|","","" -"`LWG2707 `__","path construction and assignment should have ""string_type&&"" overloads","2016-06 (Oulu)","|Complete|","","" -"`LWG2709 `__","offsetof is unnecessarily imprecise","2016-06 (Oulu)","|Nothing To Do|","","" -"`LWG2710 `__","""Effects: Equivalent to ..."" doesn't count ""Synchronization:"" as determined semantics","2016-06 (Oulu)","|Complete|","","" -"`LWG2711 `__","path is convertible from approximately everything under the sun","2016-06 (Oulu)","|Complete|","","" -"`LWG2716 `__","Specification of shuffle and sample disallows lvalue URNGs","2016-06 (Oulu)","|Complete|","","" -"`LWG2718 `__","Parallelism bug in [algorithms.parallel.exec] p2","2016-06 (Oulu)","","","" -"`LWG2719 `__","permissions function should not be noexcept due to narrow contract","2016-06 (Oulu)","|Complete|","","" -"`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","" -"`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)","","","" -"`LWG2728 `__","status(p).permissions() and symlink_status(p).permissions() are not specified","2016-06 (Oulu)","|Complete|","","" -"","","","","","" -"`LWG2062 `__","Effect contradictions w/o no-throw guarantee of std::function swaps","2016-11 (Issaquah)","|Complete|","","" -"`LWG2166 `__","Heap property underspecified?","2016-11 (Issaquah)","","","" -"`LWG2221 `__","No formatted output operator for nullptr","2016-11 (Issaquah)","|Complete|","","" -"`LWG2223 `__","shrink_to_fit effect on iterator validity","2016-11 (Issaquah)","|Complete|","","" -"`LWG2261 `__","Are containers required to use their 'pointer' type internally?","2016-11 (Issaquah)","","","" -"`LWG2394 `__","locale::name specification unclear - what is implementation-defined?","2016-11 (Issaquah)","|Complete|","","" -"`LWG2460 `__","LWG issue 2408 and value categories","2016-11 (Issaquah)","|Complete|","","" -"`LWG2468 `__","Self-move-assignment of library types","2016-11 (Issaquah)","","","" -"`LWG2475 `__","Allow overwriting of std::basic_string terminator with charT() to allow cleaner interoperation with legacy APIs","2016-11 (Issaquah)","|Complete|","","" -"`LWG2503 `__","multiline option should be added to syntax_option_type","2016-11 (Issaquah)","|Complete|","","" -"`LWG2510 `__","Tag types should not be DefaultConstructible","2016-11 (Issaquah)","|Complete|","","" -"`LWG2514 `__","Type traits must not be final","2016-11 (Issaquah)","|Complete|","","" -"`LWG2518 `__","[fund.ts.v2] Non-member swap for propagate_const should call member swap","2016-11 (Issaquah)","|Complete|","","" -"`LWG2519 `__","Iterator operator-= has gratuitous undefined behaviour","2016-11 (Issaquah)","|Complete|","","" -"`LWG2521 `__","[fund.ts.v2] weak_ptr's converting move constructor should be modified as well for array support","2016-11 (Issaquah)","","","" -"`LWG2525 `__","[fund.ts.v2] get_memory_resource should be const and noexcept","2016-11 (Issaquah)","","","" -"`LWG2527 `__","[fund.ts.v2] ALLOCATOR_OF for function::operator= has incorrect default","2016-11 (Issaquah)","","","" -"`LWG2531 `__","future::get should explicitly state that the shared state is released","2016-11 (Issaquah)","|Nothing To Do|","","" -"`LWG2534 `__","Constrain rvalue stream operators","2016-11 (Issaquah)","|Complete|","","" -"`LWG2536 `__","What should do?","2016-11 (Issaquah)","|Complete|","","" -"`LWG2540 `__","unordered_multimap::insert hint iterator","2016-11 (Issaquah)","|Complete|","","" -"`LWG2543 `__","LWG 2148 (hash support for enum types) seems under-specified","2016-11 (Issaquah)","|Complete|","","" -"`LWG2544 `__","``istreambuf_iterator(basic_streambuf* s)``\ effects unclear when s is 0","2016-11 (Issaquah)","|Complete|","","" -"`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","" -"`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)","","","" -"`LWG2587 `__","""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do|","","Resolved by `LWG2567 `__" -"`LWG2588 `__","[fund.ts.v2] ""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do|","","Resolved by `LWG2568 `__" -"`LWG2589 `__","match_results can't satisfy the requirements of a container","2016-11 (Issaquah)","|Complete|","","" -"`LWG2591 `__","std::function's member template target() should not lead to undefined behaviour","2016-11 (Issaquah)","|Complete|","","" -"`LWG2598 `__","addressof works on temporaries","2016-11 (Issaquah)","|Complete|","","" -"`LWG2664 `__","operator/ (and other append) semantics not useful if argument has root","2016-11 (Issaquah)","|Complete|","","" -"`LWG2665 `__","remove_filename() post condition is incorrect","2016-11 (Issaquah)","|Complete|","","" -"`LWG2672 `__","Should ``is_empty``\ use error_code in its specification?","2016-11 (Issaquah)","|Complete|","","" -"`LWG2678 `__","std::filesystem enum classes overspecified","2016-11 (Issaquah)","|Complete|","","" -"`LWG2679 `__","Inconsistent Use of Effects and Equivalent To","2016-11 (Issaquah)","|Complete|","","" -"`LWG2680 `__","Add ""Equivalent to"" to filesystem","2016-11 (Issaquah)","|Complete|","","" -"`LWG2681 `__","filesystem::copy() cannot copy symlinks","2016-11 (Issaquah)","|Complete|","","" -"`LWG2686 `__","Why is std::hash specialized for error_code, but not error_condition?","2016-11 (Issaquah)","|Complete|","","" -"`LWG2694 `__","Application of LWG 436 accidentally deleted definition of ""facet""","2016-11 (Issaquah)","|Complete|","","" -"`LWG2696 `__","Interaction between make_shared and enable_shared_from_this is underspecified","2016-11 (Issaquah)","|Nothing To Do|","","" -"`LWG2699 `__","Missing restriction in [numeric.requirements]","2016-11 (Issaquah)","|Complete|","","" -"`LWG2712 `__","copy_file(from, to, ...) has a number of unspecified error conditions","2016-11 (Issaquah)","|Complete|","","" -"`LWG2722 `__","equivalent incorrectly specifies throws clause","2016-11 (Issaquah)","|Complete|","","" -"`LWG2729 `__","Missing SFINAE on std::pair::operator=","2016-11 (Issaquah)","|Complete|","","" -"`LWG2732 `__","Questionable specification of path::operator/= and path::append","2016-11 (Issaquah)","|Complete|","","" -"`LWG2733 `__","[fund.ts.v2] gcd / lcm and bool","2016-11 (Issaquah)","|Complete|","","" -"`LWG2735 `__","std::abs(short), std::abs(signed char) and others should return int instead of double in order to be compatible with C++98 and C","2016-11 (Issaquah)","|Complete|","","" -"`LWG2736 `__","nullopt_t insufficiently constrained","2016-11 (Issaquah)","|Complete|","","" -"`LWG2738 `__","``is_constructible``\ with void types","2016-11 (Issaquah)","|Complete|","","" -"`LWG2739 `__","Issue with time_point non-member subtraction with an unsigned duration","2016-11 (Issaquah)","|Complete|","","" -"`LWG2740 `__","constexpr optional::operator->","2016-11 (Issaquah)","|Complete|","","" -"`LWG2742 `__","Inconsistent string interface taking string_view","2016-11 (Issaquah)","|Complete|","","" -"`LWG2744 `__","any's in_place constructors","2016-11 (Issaquah)","|Complete|","","" -"`LWG2745 `__","[fund.ts.v2] Implementability of LWG 2451","2016-11 (Issaquah)","|Complete|","","" -"`LWG2747 `__","Possibly redundant std::move in [alg.foreach]","2016-11 (Issaquah)","|Complete|","","" -"`LWG2748 `__","swappable traits for optionals","2016-11 (Issaquah)","|Complete|","","" -"`LWG2749 `__","swappable traits for variants","2016-11 (Issaquah)","|Complete|","","" -"`LWG2750 `__","[fund.ts.v2] LWG 2451 conversion constructor constraint","2016-11 (Issaquah)","|Nothing To Do|","","" -"`LWG2752 `__","""Throws:"" clauses of async and packaged_task are unimplementable","2016-11 (Issaquah)","|Nothing To Do|","","" -"`LWG2755 `__","[string.view.io] uses non-existent basic_string_view::to_string function","2016-11 (Issaquah)","|Complete|","","" -"`LWG2756 `__","C++ WP optional should 'forward' T's implicit conversions","2016-11 (Issaquah)","|Complete|","","" -"`LWG2758 `__","std::string{}.assign(""ABCDE"", 0, 1) is ambiguous","2016-11 (Issaquah)","|Complete|","","" -"`LWG2759 `__","gcd / lcm and bool for the WP","2016-11 (Issaquah)","|Complete|","","" -"`LWG2760 `__","non-const basic_string::data should not invalidate iterators","2016-11 (Issaquah)","|Complete|","","" -"`LWG2765 `__","Did LWG 1123 go too far?","2016-11 (Issaquah)","|Complete|","","" -"`LWG2767 `__","not_fn call_wrapper can form invalid types","2016-11 (Issaquah)","|Complete|","","" -"`LWG2770 `__","``tuple_size`` specialization is not SFINAE compatible and breaks decomposition declarations","2016-11 (Issaquah)","|Complete|","21","" -"`LWG2771 `__","Broken Effects of some basic_string::compare functions in terms of basic_string_view","2016-11 (Issaquah)","|Complete|","","" -"`LWG2773 `__","Making std::ignore constexpr","2016-11 (Issaquah)","|Complete|","","" -"`LWG2777 `__","basic_string_view::copy should use char_traits::copy","2016-11 (Issaquah)","|Complete|","","" -"`LWG2778 `__","basic_string_view is missing constexpr","2016-11 (Issaquah)","|Complete|","","" -"","","","","","" -"`LWG2260 `__","Missing requirement for Allocator::pointer","2017-02 (Kona)","|Complete|","","" -"`LWG2676 `__","Provide filesystem::path overloads for File-based streams","2017-02 (Kona)","|Complete|","","" -"`LWG2768 `__","any_cast and move semantics","2017-02 (Kona)","|Complete|","","" -"`LWG2769 `__","Redundant const in the return type of any_cast(const any&)","2017-02 (Kona)","|Complete|","","" -"`LWG2781 `__","Contradictory requirements for std::function and std::reference_wrapper","2017-02 (Kona)","|Complete|","","" -"`LWG2782 `__","scoped_allocator_adaptor constructors must be constrained","2017-02 (Kona)","|Complete|","","" -"`LWG2784 `__","Resolution to LWG 2484 is missing ""otherwise, no effects"" and is hard to parse","2017-02 (Kona)","|Complete|","","" -"`LWG2785 `__","quoted should work with basic_string_view","2017-02 (Kona)","|Complete|","","" -"`LWG2786 `__","Annex C should mention shared_ptr changes for array support","2017-02 (Kona)","|Complete|","","" -"`LWG2787 `__","|sect|\ [file_status.cons] doesn't match class definition","2017-02 (Kona)","|Complete|","","" -"`LWG2788 `__","basic_string range mutators unintentionally require a default constructible allocator","2017-02 (Kona)","|Complete|","","" -"`LWG2789 `__","Equivalence of contained objects","2017-02 (Kona)","|Complete|","","" -"`LWG2790 `__","Missing specification of istreambuf_iterator::operator->","2017-02 (Kona)","|Complete|","","" -"`LWG2794 `__","Missing requirements for allocator pointers","2017-02 (Kona)","|Nothing To Do|","","" -"`LWG2795 `__","|sect|\ [global.functions] provides incorrect example of ADL use","2017-02 (Kona)","|Complete|","","" -"`LWG2796 `__","tuple should be a literal type","2017-02 (Kona)","|Complete|","","" -"`LWG2801 `__","Default-constructibility of unique_ptr","2017-02 (Kona)","|Complete|","","" -"`LWG2802 `__","shared_ptr constructor requirements for a deleter","2017-02 (Kona)","|Complete|","","" -"`LWG2804 `__","Unconditional constexpr default constructor for istream_iterator","2017-02 (Kona)","|Complete|","","" -"`LWG2806 `__","Base class of bad_optional_access","2017-02 (Kona)","|Complete|","","" -"`LWG2807 `__","std::invoke should use ``std::is_nothrow_callable``\ ","2017-02 (Kona)","|Complete|","","" -"`LWG2812 `__","Range access is available with ","2017-02 (Kona)","|Complete|","","" -"`LWG2824 `__","list::sort should say that the order of elements is unspecified if an exception is thrown","2017-02 (Kona)","|Complete|","","" -"`LWG2826 `__","string_view iterators use old wording","2017-02 (Kona)","|Complete|","","" -"`LWG2834 `__","Resolution LWG 2223 is missing wording about end iterators","2017-02 (Kona)","|Complete|","","" -"`LWG2835 `__","LWG 2536 seems to misspecify ","2017-02 (Kona)","|Complete|","","" -"`LWG2837 `__","gcd and lcm should support a wider range of input values","2017-02 (Kona)","|Complete|","","" -"`LWG2838 `__","is_literal_type specification needs a little cleanup","2017-02 (Kona)","|Complete|","","" -"`LWG2842 `__","in_place_t check for optional::optional(U&&) should decay U","2017-02 (Kona)","|Complete|","","" -"`LWG2850 `__","std::function move constructor does unnecessary work","2017-02 (Kona)","|Complete|","","" -"`LWG2853 `__","Possible inconsistency in specification of erase in [vector.modifiers]","2017-02 (Kona)","|Complete|","","" -"`LWG2855 `__","std::throw_with_nested(""string_literal"")","2017-02 (Kona)","|Complete|","","" -"`LWG2857 `__","{variant,optional,any}::emplace should return the constructed value","2017-02 (Kona)","|Complete|","","" -"`LWG2861 `__","basic_string should require that charT match traits::char_type","2017-02 (Kona)","|Complete|","","" -"`LWG2866 `__","Incorrect derived classes constraints","2017-02 (Kona)","|Nothing To Do|","","" -"`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","" -"`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","" -"`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|","","" -"`LWG2903 `__","The form of initialization for the emplace-constructors is not specified","2017-02 (Kona)","|Complete|","","" -"`LWG2904 `__","Make variant move-assignment more exception safe","2017-02 (Kona)","|Complete|","","" -"`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","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|","","" -"`LWG2955 `__","``to_chars / from_chars``\ depend on ``std::string``\ ","2017-07 (Toronto)","|Nothing To Do|","","Resolved by `P0682R1 `__" -"`LWG2956 `__","``filesystem::canonical()``\ still defined in terms of ``absolute(p, base)``\ ","2017-07 (Toronto)","|Complete|","","" +"Issue #","Issue Name","Meeting","Status","First released version","Github issue","Notes" +"`LWG2016 `__","Allocators must be no-throw swappable","2014-11 (Urbana)","|Complete|","","`#103224 `__","" +"`LWG2118 `__","``unique_ptr``\ for array does not support cv qualification conversion of actual argument","2014-11 (Urbana)","|Complete|","","`#103225 `__","" +"`LWG2170 `__","Aggregates cannot be ``DefaultConstructible``\ ","2014-11 (Urbana)","|Complete|","","`#103226 `__","" +"`LWG2340 `__","Replacement allocation functions declared as inline","2014-11 (Urbana)","|Complete|","","`#103227 `__","" +"`LWG2354 `__","Unnecessary copying when inserting into maps with braced-init syntax","2014-11 (Urbana)","|Complete|","","`#103228 `__","" +"`LWG2377 `__","``std::align``\ requirements overly strict","2014-11 (Urbana)","|Complete|","","`#103229 `__","" +"`LWG2396 `__","``underlying_type``\ doesn't say what to do for an incomplete enumeration type","2014-11 (Urbana)","|Complete|","","`#103230 `__","" +"`LWG2399 `__","``shared_ptr``\ 's constructor from ``unique_ptr``\ should be constrained","2014-11 (Urbana)","|Complete|","","`#103231 `__","" +"`LWG2400 `__","``shared_ptr``\ 's ``get_deleter()``\ should use ``addressof()``\ ","2014-11 (Urbana)","|Complete|","","`#103232 `__","" +"`LWG2401 `__","``std::function``\ needs more noexcept","2014-11 (Urbana)","|Complete|","","`#103233 `__","" +"`LWG2404 `__","``mismatch()``\ 's complexity needs to be updated","2014-11 (Urbana)","|Complete|","","`#103234 `__","" +"`LWG2408 `__","SFINAE-friendly ``common_type``\ / ``iterator_traits``\ is missing in C++14","2014-11 (Urbana)","|Complete|","","`#103235 `__","" +"`LWG2106 `__","``move_iterator``\ wrapping iterators returning prvalues","2014-11 (Urbana)","|Complete|","","`#103236 `__","" +"`LWG2129 `__","User specializations of ``std::initializer_list``\ ","2014-11 (Urbana)","|Complete|","21","`#103237 `__","" +"`LWG2212 `__","``tuple_size``\ for ``const pair``\ request header","2014-11 (Urbana)","|Complete|","","`#103238 `__","" +"`LWG2217 `__","``operator==(sub_match, string)``\ slices on embedded '\0's","2014-11 (Urbana)","|Complete|","","`#103239 `__","" +"`LWG2230 `__","""see below"" for ``initializer_list``\ constructors of unordered containers","2014-11 (Urbana)","|Complete|","","`#103240 `__","" +"`LWG2233 `__","``bad_function_call::what()``\ unhelpful","2014-11 (Urbana)","|Complete|","","`#103241 `__","" +"`LWG2266 `__","``vector``\ and ``deque``\ have incorrect insert requirements","2014-11 (Urbana)","|Complete|","","`#103242 `__","" +"`LWG2325 `__","``minmax_element()``\ 's behavior differing from ``max_element()``\ 's should be noted","2014-11 (Urbana)","|Complete|","","`#103243 `__","" +"`LWG2361 `__","Apply 2299 resolution throughout library","2014-11 (Urbana)","|Complete|","","`#103244 `__","" +"`LWG2365 `__","Missing noexcept in ``shared_ptr::shared_ptr(nullptr_t)``\ ","2014-11 (Urbana)","|Complete|","","`#103246 `__","" +"`LWG2376 `__","``bad_weak_ptr::what()``\ overspecified","2014-11 (Urbana)","|Complete|","","`#103247 `__","" +"`LWG2387 `__","More nested types that must be accessible and unambiguous","2014-11 (Urbana)","|Complete|","","`#103248 `__","" +"","","","","","","" +"`LWG2059 `__","C++0x ambiguity problem with map::erase","2015-05 (Lenexa)","|Complete|","","`#103249 `__","" +"`LWG2063 `__","Contradictory requirements for string move assignment","2015-05 (Lenexa)","|Complete|","","`#103250 `__","" +"`LWG2076 `__","Bad CopyConstructible requirement in set constructors","2015-05 (Lenexa)","|Complete|","","`#103251 `__","" +"`LWG2160 `__","Unintended destruction ordering-specification of resize","2015-05 (Lenexa)","|Complete|","","`#103252 `__","" +"`LWG2168 `__","Inconsistent specification of uniform_real_distribution constructor","2015-05 (Lenexa)","|Complete|","","`#103253 `__","" +"`LWG2239 `__","min/max/minmax requirements","2015-05 (Lenexa)","|Complete|","","`#103254 `__","" +"`LWG2364 `__","deque and vector pop_back don't specify iterator invalidation requirements","2015-05 (Lenexa)","|Complete|","","`#103255 `__","" +"`LWG2369 `__","constexpr max(initializer_list) vs max_element","2015-05 (Lenexa)","|Complete|","","`#103256 `__","" +"`LWG2378 `__","Behaviour of standard exception types","2015-05 (Lenexa)","|Complete|","","`#103257 `__","" +"`LWG2403 `__","stof() should call strtof() and wcstof()","2015-05 (Lenexa)","|Complete|","","`#103258 `__","" +"`LWG2406 `__","negative_binomial_distribution should reject p == 1","2015-05 (Lenexa)","|Complete|","","`#103259 `__","" +"`LWG2407 `__","packaged_task(allocator_arg_t, const Allocator&, F&&) should neither be constrained nor explicit","2015-05 (Lenexa)","|Complete|","","`#103260 `__","" +"`LWG2411 `__","shared_ptr is only contextually convertible to bool","2015-05 (Lenexa)","|Complete|","","`#103261 `__","" +"`LWG2415 `__","Inconsistency between unique_ptr and shared_ptr","2015-05 (Lenexa)","|Complete|","","`#103262 `__","" +"`LWG2420 `__","function does not discard the return value of the target object","2015-05 (Lenexa)","|Complete|","","`#103263 `__","" +"`LWG2425 `__","``operator delete(void*, size_t)``\ doesn't invalidate pointers sufficiently","2015-05 (Lenexa)","|Complete|","","`#103264 `__","" +"`LWG2427 `__","Container adaptors as sequence containers, redux","2015-05 (Lenexa)","|Complete|","","`#103265 `__","" +"`LWG2428 `__","""External declaration"" used without being defined","2015-05 (Lenexa)","|Complete|","","`#103266 `__","" +"`LWG2433 `__","``uninitialized_copy()``\ /etc. should tolerate overloaded operator&","2015-05 (Lenexa)","|Complete|","","`#103267 `__","" +"`LWG2434 `__","``shared_ptr::use_count()``\ is efficient","2015-05 (Lenexa)","|Complete|","","`#103268 `__","" +"`LWG2437 `__","``iterator_traits::reference``\ can and can't be void","2015-05 (Lenexa)","|Complete|","","`#103269 `__","" +"`LWG2438 `__","``std::iterator``\ inheritance shouldn't be mandated","2015-05 (Lenexa)","|Complete|","","`#103270 `__","" +"`LWG2439 `__","``unique_copy()``\ sometimes can't fall back to reading its output","2015-05 (Lenexa)","|Complete|","","`#103271 `__","" +"`LWG2440 `__","``seed_seq::size()``\ should be noexcept","2015-05 (Lenexa)","|Complete|","","`#103272 `__","" +"`LWG2442 `__","``call_once()``\ shouldn't DECAY_COPY()","2015-05 (Lenexa)","|Complete|","","`#103274 `__","" +"`LWG2448 `__","Non-normative Container destructor specification","2015-05 (Lenexa)","|Complete|","","`#103276 `__","" +"`LWG2454 `__","Add ``raw_storage_iterator::base()``\ member","2015-05 (Lenexa)","|Complete|","","`#103277 `__","" +"`LWG2455 `__","Allocator default construction should be allowed to throw","2015-05 (Lenexa)","|Complete|","","`#103278 `__","" +"`LWG2458 `__","N3778 and new library deallocation signatures","2015-05 (Lenexa)","|Complete|","","`#103279 `__","" +"`LWG2459 `__","``std::polar``\ should require a non-negative rho","2015-05 (Lenexa)","|Complete|","","`#103280 `__","" +"`LWG2464 `__","``try_emplace``\ and ``insert_or_assign``\ misspecified","2015-05 (Lenexa)","|Complete|","","`#103281 `__","" +"`LWG2467 `__","``is_always_equal``\ has slightly inconsistent default","2015-05 (Lenexa)","|Complete|","","`#103282 `__","" +"`LWG2470 `__","Allocator's destroy function should be allowed to fail to instantiate","2015-05 (Lenexa)","|Complete|","","`#103283 `__","" +"`LWG2482 `__","[c.strings] Table 73 mentions nonexistent functions","2015-05 (Lenexa)","|Complete|","","`#103284 `__","" +"`LWG2488 `__","Placeholders should be allowed and encouraged to be constexpr","2015-05 (Lenexa)","|Complete|","","`#103285 `__","" +"","","","","","","" +"`LWG1169 `__","``num_get``\ not fully compatible with ``strto*``\ ","2015-10 (Kona)","|Complete|","","`#103286 `__","" +"`LWG2072 `__","Unclear wording about capacity of temporary buffers","2015-10 (Kona)","|Complete|","","`#103287 `__","" +"`LWG2101 `__","Some transformation types can produce impossible types","2015-10 (Kona)","|Complete|","","`#103288 `__","" +"`LWG2111 `__","Which ``unexpected``\ /``terminate``\ handler is called from the exception handling runtime?","2015-10 (Kona)","|Complete|","","`#103289 `__","" +"`LWG2119 `__","Missing ``hash``\ specializations for extended integer types","2015-10 (Kona)","|Complete|","","`#103290 `__","" +"`LWG2127 `__","Move-construction with ``raw_storage_iterator``\ ","2015-10 (Kona)","|Complete|","","`#103291 `__","" +"`LWG2133 `__","Attitude to overloaded comma for iterators","2015-10 (Kona)","|Complete|","","`#103292 `__","" +"`LWG2156 `__","Unordered containers' ``reserve(n)``\ reserves for ``n-1``\ elements","2015-10 (Kona)","|Complete|","","`#103293 `__","" +"`LWG2218 `__","Unclear how containers use ``allocator_traits::construct()``\ ","2015-10 (Kona)","|Complete|","","`#103294 `__","" +"`LWG2219 `__","``*INVOKE*``\ -ing a pointer to member with a ``reference_wrapper``\ as the object expression","2015-10 (Kona)","|Complete|","","`#103295 `__","" +"`LWG2224 `__","Ambiguous status of access to non-live objects","2015-10 (Kona)","|Complete|","","`#103296 `__","" +"`LWG2234 `__","``assert()``\ should allow usage in constant expressions","2015-10 (Kona)","|Complete|","","`#103297 `__","" +"`LWG2244 `__","Issue on ``basic_istream::seekg``\ ","2015-10 (Kona)","|Complete|","","`#103312 `__","" +"`LWG2250 `__","Follow-up On Library Issue 2207","2015-10 (Kona)","|Complete|","","`#103313 `__","" +"`LWG2259 `__","Issues in 17.6.5.5 rules for member functions","2015-10 (Kona)","|Complete|","","`#103314 `__","" +"`LWG2273 `__","``regex_match``\ ambiguity","2015-10 (Kona)","|Complete|","","`#103315 `__","" +"`LWG2336 `__","``is_trivially_constructible``\ /``is_trivially_assignable``\ traits are always false","2015-10 (Kona)","|Complete|","","`#103316 `__","" +"`LWG2353 `__","``std::next``\ is over-constrained","2015-10 (Kona)","|Complete|","","`#103317 `__","" +"`LWG2367 `__","``pair``\ and ``tuple``\ are not correctly implemented for ``is_constructible``\ with no args","2015-10 (Kona)","|Complete|","","`#103318 `__","" +"`LWG2380 `__","May ````\ provide ``long ::abs(long)``\ and ``long long ::abs(long long)``\ ?","2015-10 (Kona)","|Complete|","","`#103319 `__","" +"`LWG2384 `__","Allocator's ``deallocate``\ function needs better specification","2015-10 (Kona)","|Complete|","","`#103320 `__","" +"`LWG2385 `__","``function::assign``\ allocator argument doesn't make sense","2015-10 (Kona)","|Complete|","","`#103321 `__","" +"`LWG2435 `__","``reference_wrapper::operator()``\ 's Remark should be deleted","2015-10 (Kona)","|Complete|","","`#103322 `__","" +"`LWG2447 `__","Allocators and ``volatile``\ -qualified value types","2015-10 (Kona)","|Complete|","","`#103323 `__","" +"`LWG2462 `__","``std::ios_base::failure``\ is overspecified","2015-10 (Kona)","|Complete|","","`#103324 `__","" +"`LWG2466 `__","``allocator_traits::max_size()``\ default behavior is incorrect","2015-10 (Kona)","|Complete|","","`#103325 `__","" +"`LWG2469 `__","Wrong specification of Requires clause of ``operator[]``\ for ``map``\ and ``unordered_map``\ ","2015-10 (Kona)","|Complete|","","`#103326 `__","" +"`LWG2473 `__","``basic_filebuf``\ 's relation to C ``FILE``\ semantics","2015-10 (Kona)","|Complete|","","`#103327 `__","" +"`LWG2476 `__","``scoped_allocator_adaptor``\ is not assignable","2015-10 (Kona)","|Complete|","","`#103328 `__","" +"`LWG2477 `__","Inconsistency of wordings in ``std::vector::erase()``\ and ``std::deque::erase()``\ ","2015-10 (Kona)","|Complete|","","`#103329 `__","" +"`LWG2483 `__","``throw_with_nested()``\ should use ``is_final``\ ","2015-10 (Kona)","|Complete|","","`#103330 `__","" +"`LWG2484 `__","``rethrow_if_nested()``\ is doubly unimplementable","2015-10 (Kona)","|Complete|","","`#103331 `__","" +"`LWG2485 `__","``get()``\ should be overloaded for ``const tuple&&``\ ","2015-10 (Kona)","|Complete|","","`#103332 `__","" +"`LWG2486 `__","``mem_fn()``\ should be required to use perfect forwarding","2015-10 (Kona)","|Complete|","","`#103333 `__","" +"`LWG2487 `__","``bind()``\ should be ``const``\ -overloaded, not *cv*-overloaded","2015-10 (Kona)","|Complete|","","`#103334 `__","" +"`LWG2489 `__","``mem_fn()``\ should be ``noexcept``\ ","2015-10 (Kona)","|Complete|","","`#103335 `__","" +"`LWG2492 `__","Clarify requirements for ``comp``\ ","2015-10 (Kona)","|Complete|","","`#103336 `__","" +"`LWG2495 `__","There is no such thing as an Exception Safety element","2015-10 (Kona)","|Complete|","","`#103337 `__","" +"","","","","","","" +"`LWG2192 `__","Validity and return type of ``std::abs(0u)``\ is unclear","2016-02 (Jacksonville)","|Complete|","","`#103338 `__","" +"`LWG2276 `__","Missing requirement on ``std::promise::set_exception``\ ","2016-02 (Jacksonville)","|Complete|","","`#103339 `__","" +"`LWG2296 `__","``std::addressof``\ should be ``constexpr``\ ","2016-02 (Jacksonville)","|Complete|","","`#103340 `__","" +"`LWG2450 `__","``(greater|less|greater_equal|less_equal)``\ do not yield a total order for pointers","2016-02 (Jacksonville)","|Complete|","","`#103341 `__","" +"`LWG2520 `__","N4089 broke initializing ``unique_ptr``\ from a ``nullptr``\ ","2016-02 (Jacksonville)","|Complete|","","`#103342 `__","" +"`LWG2522 `__","[fund.ts.v2] Contradiction in ``set_default_resource``\ specification","2016-02 (Jacksonville)","|Complete|","","`#103344 `__","" +"`LWG2523 `__","``std::promise``\ synopsis shows two ``set_value_at_thread_exit()``\ 's for no apparent reason","2016-02 (Jacksonville)","|Complete|","","`#103345 `__","" +"`LWG2537 `__","Constructors for ``priority_queue``\ taking allocators should call ``make_heap``\ ","2016-02 (Jacksonville)","|Complete|","","`#103346 `__","" +"`LWG2539 `__","[fund.ts.v2] ``invocation_trait``\ definition definition doesn't work for surrogate call functions","2016-02 (Jacksonville)","","","`#99954 `__","" +"`LWG2545 `__","Simplify wording for ``bind``\ without explicitly specified return type","2016-02 (Jacksonville)","|Complete|","","`#103347 `__","" +"`LWG2557 `__","Logical operator traits are broken in the zero-argument case","2016-02 (Jacksonville)","|Complete|","","`#103348 `__","" +"`LWG2558 `__","[fund.ts.v2] Logical operator traits are broken in the zero-argument case","2016-02 (Jacksonville)","|Complete|","","`#103349 `__","" +"`LWG2559 `__","Error in LWG 2234's resolution","2016-02 (Jacksonville)","|Complete|","","`#103350 `__","" +"`LWG2560 `__","``is_constructible``\ underspecified when applied to a function type","2016-02 (Jacksonville)","|Complete|","","`#103351 `__","" +"`LWG2565 `__","``std::function``\ 's move constructor should guarantee nothrow for ``reference_wrapper``\ s and function pointers","2016-02 (Jacksonville)","|Complete|","","`#103352 `__","" +"`LWG2566 `__","Requirements on the first template parameter of container adaptors","2016-02 (Jacksonville)","|Complete|","","`#103353 `__","" +"`LWG2571 `__","|sect|\ [map.modifiers]/2 imposes nonsensical requirement on ``insert(InputIterator, InputIterator)``\ ","2016-02 (Jacksonville)","|Complete|","","`#103354 `__","" +"`LWG2572 `__","The remarks for ``shared_ptr::operator*``\ should apply to *cv*-qualified ``void``\ as well","2016-02 (Jacksonville)","|Complete|","","`#103355 `__","" +"`LWG2574 `__","[fund.ts.v2] ``std::experimental::function::operator=(F&&)``\ should be constrained","2016-02 (Jacksonville)","|Complete|","","`#103356 `__","" +"`LWG2575 `__","[fund.ts.v2] ``experimental::function::assign``\ should be removed","2016-02 (Jacksonville)","","","`#99959 `__","" +"`LWG2576 `__","``istream_iterator``\ and ``ostream_iterator``\ should use ``std::addressof``\ ","2016-02 (Jacksonville)","|Complete|","","`#103357 `__","" +"`LWG2577 `__","``{shared,unique}_lock``\ should use ``std::addressof``\ ","2016-02 (Jacksonville)","|Complete|","","`#103358 `__","" +"`LWG2579 `__","Inconsistency wrt Allocators in ``basic_string``\ assignment vs. ``basic_string::assign``\ ","2016-02 (Jacksonville)","|Complete|","","`#103359 `__","" +"`LWG2581 `__","Specialization of ````\ variable templates should be prohibited","2016-02 (Jacksonville)","|Complete|","","`#103360 `__","" +"`LWG2582 `__","|sect|\ [res.on.functions]/2's prohibition against incomplete types shouldn't apply to type traits","2016-02 (Jacksonville)","|Complete|","","`#103361 `__","" +"`LWG2583 `__","There is no way to supply an allocator for ``basic_string(str, pos)``\ ","2016-02 (Jacksonville)","|Complete|","","`#103362 `__","" +"`LWG2585 `__","``forward_list::resize(size_type, const value_type&)``\ effects incorrect","2016-02 (Jacksonville)","|Complete|","","`#103363 `__","" +"`LWG2586 `__","Wrong value category used in ``scoped_allocator_adaptor::construct()``\ ","2016-02 (Jacksonville)","|Complete|","","`#103364 `__","" +"`LWG2590 `__","Aggregate initialization for ``std::array``\ ","2016-02 (Jacksonville)","|Complete|","","`#103365 `__","" +"","","","","","","" +"`LWG2181 `__","Exceptions from seed sequence operations","2016-06 (Oulu)","|Complete|","","`#103367 `__","" +"`LWG2309 `__","mutex::lock() should not throw device_or_resource_busy","2016-06 (Oulu)","|Complete|","","`#103368 `__","" +"`LWG2310 `__","Public exposition only member in std::array","2016-06 (Oulu)","|Complete|","","`#103369 `__","" +"`LWG2312 `__","tuple's constructor constraints need to be phrased more precisely","2016-06 (Oulu)","|Complete|","","`#103370 `__","" +"`LWG2328 `__","Rvalue stream extraction should use perfect forwarding","2016-06 (Oulu)","|Complete|","","`#103372 `__","" +"`LWG2393 `__","std::function's Callable definition is broken","2016-06 (Oulu)","|Complete|","","`#103373 `__","" +"`LWG2422 `__","``std::numeric_limits::is_modulo``\ description: ""most machines"" errata","2016-06 (Oulu)","|Complete|","","`#103374 `__","" +"`LWG2426 `__","Issue about compare_exchange","2016-06 (Oulu)","|Complete|","","`#103375 `__","" +"`LWG2436 `__","Comparators for associative containers should always be CopyConstructible","2016-06 (Oulu)","|Complete|","","`#103376 `__","" +"`LWG2441 `__","Exact-width atomic typedefs should be provided","2016-06 (Oulu)","|Complete|","","`#103378 `__","" +"`LWG2451 `__","[fund.ts.v2] optional should 'forward' T's implicit conversions","2016-06 (Oulu)","|Nothing To Do|","","`#103379 `__","" +"`LWG2509 `__","[fund.ts.v2] any_cast doesn't work with rvalue reference targets and cannot move with a value target","2016-06 (Oulu)","|Complete|","","`#103380 `__","" +"`LWG2516 `__","[fund.ts.v2] Public ""exposition only"" members in observer_ptr","2016-06 (Oulu)","|Complete|","18","`#103381 `__","" +"`LWG2542 `__","Missing const requirements for associative containers","2016-06 (Oulu)","","","`#99960 `__","" +"`LWG2549 `__","Tuple EXPLICIT constructor templates that take tuple parameters end up taking references to temporaries and will create dangling references","2016-06 (Oulu)","|Complete|","","`#103382 `__","" +"`LWG2550 `__","Wording of unordered container's clear() method complexity","2016-06 (Oulu)","|Complete|","","`#103383 `__","" +"`LWG2551 `__","[fund.ts.v2] ""Exception safety"" cleanup in library fundamentals required","2016-06 (Oulu)","|Complete|","","`#103384 `__","" +"`LWG2555 `__","[fund.ts.v2] No handling for over-aligned types in optional","2016-06 (Oulu)","|Complete|","","`#103385 `__","" +"`LWG2573 `__","[fund.ts.v2] std::hash does not work for arrays","2016-06 (Oulu)","","","`#99961 `__","" +"`LWG2596 `__","vector::data() should use addressof","2016-06 (Oulu)","|Complete|","","`#103386 `__","" +"`LWG2667 `__","path::root_directory() description is confusing","2016-06 (Oulu)","|Complete|","","`#103387 `__","" +"`LWG2669 `__","recursive_directory_iterator effects refers to non-existent functions","2016-06 (Oulu)","|Complete|","","`#103402 `__","" +"`LWG2670 `__","system_complete refers to undefined variable 'base'","2016-06 (Oulu)","|Complete|","","`#103404 `__","" +"`LWG2671 `__","Errors in Copy","2016-06 (Oulu)","|Complete|","","`#103405 `__","" +"`LWG2673 `__","status() effects cannot be implemented as specified","2016-06 (Oulu)","|Complete|","","`#103406 `__","" +"`LWG2674 `__","Bidirectional iterator requirement on path::iterator is very expensive","2016-06 (Oulu)","|Complete|","","`#103407 `__","" +"`LWG2683 `__","filesystem::copy() says ""no effects""","2016-06 (Oulu)","|Complete|","","`#103408 `__","" +"`LWG2684 `__","priority_queue lacking comparator typedef","2016-06 (Oulu)","|Complete|","","`#103412 `__","" +"`LWG2685 `__","shared_ptr deleters must not throw on move construction","2016-06 (Oulu)","|Complete|","","`#103413 `__","" +"`LWG2687 `__","{inclusive,exclusive}_scan misspecified","2016-06 (Oulu)","|Complete|","","`#99963 `__","" +"`LWG2688 `__","clamp misses preconditions and has extraneous condition on result","2016-06 (Oulu)","|Complete|","","`#103414 `__","" +"`LWG2689 `__","Parallel versions of std::copy and std::move shouldn't be in order","2016-06 (Oulu)","|Nothing To Do|","","`#103415 `__","" +"`LWG2698 `__","Effect of assign() on iterators/pointers/references","2016-06 (Oulu)","|Complete|","","`#103416 `__","" +"`LWG2704 `__","recursive_directory_iterator's members should require '``*this`` is dereferenceable'","2016-06 (Oulu)","|Complete|","","`#103417 `__","" +"`LWG2706 `__","Error reporting for recursive_directory_iterator::pop() is under-specified","2016-06 (Oulu)","|Complete|","","`#103418 `__","" +"`LWG2707 `__","path construction and assignment should have ""string_type&&"" overloads","2016-06 (Oulu)","|Complete|","","`#103419 `__","" +"`LWG2709 `__","offsetof is unnecessarily imprecise","2016-06 (Oulu)","|Nothing To Do|","","`#99965 `__","" +"`LWG2710 `__","""Effects: Equivalent to ..."" doesn't count ""Synchronization:"" as determined semantics","2016-06 (Oulu)","|Complete|","","`#103420 `__","" +"`LWG2711 `__","path is convertible from approximately everything under the sun","2016-06 (Oulu)","|Complete|","","`#103421 `__","" +"`LWG2716 `__","Specification of shuffle and sample disallows lvalue URNGs","2016-06 (Oulu)","|Complete|","","`#103422 `__","" +"`LWG2718 `__","Parallelism bug in [algorithms.parallel.exec] p2","2016-06 (Oulu)","","","`#99966 `__","" +"`LWG2719 `__","permissions function should not be noexcept due to narrow contract","2016-06 (Oulu)","|Complete|","","`#103423 `__","" +"`LWG2720 `__","permissions function incorrectly specified for symlinks","2016-06 (Oulu)","|Complete|","","`#103424 `__","" +"`LWG2721 `__","remove_all has incorrect post conditions","2016-06 (Oulu)","|Complete|","","`#103425 `__","" +"`LWG2723 `__","Do directory_iterator and recursive_directory_iterator become the end iterator upon error?","2016-06 (Oulu)","|Complete|","","`#103426 `__","" +"`LWG2724 `__","The protected virtual member functions of memory_resource should be private","2016-06 (Oulu)","|Complete|","16","`#103427 `__","" +"`LWG2725 `__","filesystem::exists(const path&, error_code&) error reporting","2016-06 (Oulu)","|Complete|","","`#103428 `__","" +"`LWG2726 `__","``[recursive_]directory_iterator::increment(error_code&)`` is underspecified","2016-06 (Oulu)","|Complete|","","`#103429 `__","" +"`LWG2727 `__","Parallel algorithms with constexpr specifier","2016-06 (Oulu)","","","`#99968 `__","" +"`LWG2728 `__","status(p).permissions() and symlink_status(p).permissions() are not specified","2016-06 (Oulu)","|Complete|","","`#103430 `__","" +"","","","","","","" +"`LWG2062 `__","Effect contradictions w/o no-throw guarantee of std::function swaps","2016-11 (Issaquah)","|Complete|","","`#103431 `__","" +"`LWG2166 `__","Heap property underspecified?","2016-11 (Issaquah)","","","`#99969 `__","" +"`LWG2221 `__","No formatted output operator for nullptr","2016-11 (Issaquah)","|Complete|","","`#103432 `__","" +"`LWG2223 `__","shrink_to_fit effect on iterator validity","2016-11 (Issaquah)","|Complete|","","`#103433 `__","" +"`LWG2261 `__","Are containers required to use their 'pointer' type internally?","2016-11 (Issaquah)","","","`#99970 `__","" +"`LWG2394 `__","locale::name specification unclear - what is implementation-defined?","2016-11 (Issaquah)","|Complete|","","`#103434 `__","" +"`LWG2460 `__","LWG issue 2408 and value categories","2016-11 (Issaquah)","|Complete|","","`#103435 `__","" +"`LWG2468 `__","Self-move-assignment of library types","2016-11 (Issaquah)","","","`#99971 `__","" +"`LWG2475 `__","Allow overwriting of std::basic_string terminator with charT() to allow cleaner interoperation with legacy APIs","2016-11 (Issaquah)","|Complete|","","`#103436 `__","" +"`LWG2503 `__","multiline option should be added to syntax_option_type","2016-11 (Issaquah)","|Complete|","","`#103437 `__","" +"`LWG2510 `__","Tag types should not be DefaultConstructible","2016-11 (Issaquah)","|Complete|","","`#103438 `__","" +"`LWG2514 `__","Type traits must not be final","2016-11 (Issaquah)","|Complete|","","`#103439 `__","" +"`LWG2518 `__","[fund.ts.v2] Non-member swap for propagate_const should call member swap","2016-11 (Issaquah)","|Complete|","","`#103440 `__","" +"`LWG2519 `__","Iterator operator-= has gratuitous undefined behaviour","2016-11 (Issaquah)","|Complete|","","`#103442 `__","" +"`LWG2521 `__","[fund.ts.v2] weak_ptr's converting move constructor should be modified as well for array support","2016-11 (Issaquah)","","","`#99972 `__","" +"`LWG2525 `__","[fund.ts.v2] get_memory_resource should be const and noexcept","2016-11 (Issaquah)","","","`#99973 `__","" +"`LWG2527 `__","[fund.ts.v2] ALLOCATOR_OF for function::operator= has incorrect default","2016-11 (Issaquah)","","","`#99974 `__","" +"`LWG2531 `__","future::get should explicitly state that the shared state is released","2016-11 (Issaquah)","|Nothing To Do|","","`#103443 `__","" +"`LWG2534 `__","Constrain rvalue stream operators","2016-11 (Issaquah)","|Complete|","","`#103444 `__","" +"`LWG2536 `__","What should do?","2016-11 (Issaquah)","|Complete|","","`#103448 `__","" +"`LWG2540 `__","unordered_multimap::insert hint iterator","2016-11 (Issaquah)","|Complete|","","`#103449 `__","" +"`LWG2543 `__","LWG 2148 (hash support for enum types) seems under-specified","2016-11 (Issaquah)","|Complete|","","`#103450 `__","" +"`LWG2544 `__","``istreambuf_iterator(basic_streambuf* s)``\ effects unclear when s is 0","2016-11 (Issaquah)","|Complete|","","`#103452 `__","" +"`LWG2556 `__","Wide contract for future::share()","2016-11 (Issaquah)","|Complete|","","`#103453 `__","" +"`LWG2562 `__","Consistent total ordering of pointers by comparison functors","2016-11 (Issaquah)","","","`#99975 `__","" +"`LWG2567 `__","Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraits","2016-11 (Issaquah)","|Complete|","","`#103454 `__","" +"`LWG2568 `__","[fund.ts.v2] Specification of logical operator traits uses BaseCharacteristic, which is defined only for UnaryTypeTraits and BinaryTypeTraits","2016-11 (Issaquah)","|Complete|","15","`#103455 `__","" +"`LWG2569 `__","conjunction and disjunction requirements are too strict","2016-11 (Issaquah)","|Complete|","15","`#103456 `__","" +"`LWG2570 `__","[fund.ts.v2] conjunction and disjunction requirements are too strict","2016-11 (Issaquah)","","","`#99977 `__","" +"`LWG2578 `__","Iterator requirements should reference iterator traits","2016-11 (Issaquah)","|Complete|","","`#103457 `__","" +"`LWG2584 `__"," ECMAScript IdentityEscape is ambiguous","2016-11 (Issaquah)","","","`#99976 `__","" +"`LWG2587 `__","""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do|","","`#103460 `__","Resolved by `LWG2567 `__" +"`LWG2588 `__","[fund.ts.v2] ""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do|","","`#103461 `__","Resolved by `LWG2568 `__" +"`LWG2589 `__","match_results can't satisfy the requirements of a container","2016-11 (Issaquah)","|Complete|","","`#103462 `__","" +"`LWG2591 `__","std::function's member template target() should not lead to undefined behaviour","2016-11 (Issaquah)","|Complete|","","`#103463 `__","" +"`LWG2598 `__","addressof works on temporaries","2016-11 (Issaquah)","|Complete|","","`#103464 `__","" +"`LWG2664 `__","operator/ (and other append) semantics not useful if argument has root","2016-11 (Issaquah)","|Complete|","","`#103465 `__","" +"`LWG2665 `__","remove_filename() post condition is incorrect","2016-11 (Issaquah)","|Complete|","","`#103466 `__","" +"`LWG2672 `__","Should ``is_empty``\ use error_code in its specification?","2016-11 (Issaquah)","|Complete|","","`#103467 `__","" +"`LWG2678 `__","std::filesystem enum classes overspecified","2016-11 (Issaquah)","|Complete|","","`#103468 `__","" +"`LWG2679 `__","Inconsistent Use of Effects and Equivalent To","2016-11 (Issaquah)","|Complete|","","`#103469 `__","" +"`LWG2680 `__","Add ""Equivalent to"" to filesystem","2016-11 (Issaquah)","|Complete|","","`#103470 `__","" +"`LWG2681 `__","filesystem::copy() cannot copy symlinks","2016-11 (Issaquah)","|Complete|","","`#103472 `__","" +"`LWG2686 `__","Why is std::hash specialized for error_code, but not error_condition?","2016-11 (Issaquah)","|Complete|","","`#103505 `__","" +"`LWG2694 `__","Application of LWG 436 accidentally deleted definition of ""facet""","2016-11 (Issaquah)","|Complete|","","`#103506 `__","" +"`LWG2696 `__","Interaction between make_shared and enable_shared_from_this is underspecified","2016-11 (Issaquah)","|Nothing To Do|","","`#103507 `__","" +"`LWG2699 `__","Missing restriction in [numeric.requirements]","2016-11 (Issaquah)","|Complete|","","`#103508 `__","" +"`LWG2712 `__","copy_file(from, to, ...) has a number of unspecified error conditions","2016-11 (Issaquah)","|Complete|","","`#103509 `__","" +"`LWG2722 `__","equivalent incorrectly specifies throws clause","2016-11 (Issaquah)","|Complete|","","`#103510 `__","" +"`LWG2729 `__","Missing SFINAE on std::pair::operator=","2016-11 (Issaquah)","|Complete|","","`#103512 `__","" +"`LWG2732 `__","Questionable specification of path::operator/= and path::append","2016-11 (Issaquah)","|Complete|","","`#103513 `__","" +"`LWG2733 `__","[fund.ts.v2] gcd / lcm and bool","2016-11 (Issaquah)","|Complete|","","`#103514 `__","" +"`LWG2735 `__","std::abs(short), std::abs(signed char) and others should return int instead of double in order to be compatible with C++98 and C","2016-11 (Issaquah)","|Complete|","","`#103515 `__","" +"`LWG2736 `__","nullopt_t insufficiently constrained","2016-11 (Issaquah)","|Complete|","","`#103516 `__","" +"`LWG2738 `__","``is_constructible``\ with void types","2016-11 (Issaquah)","|Complete|","","`#103517 `__","" +"`LWG2739 `__","Issue with time_point non-member subtraction with an unsigned duration","2016-11 (Issaquah)","|Complete|","","`#103518 `__","" +"`LWG2740 `__","constexpr optional::operator->","2016-11 (Issaquah)","|Complete|","","`#103520 `__","" +"`LWG2742 `__","Inconsistent string interface taking string_view","2016-11 (Issaquah)","|Complete|","","`#103521 `__","" +"`LWG2744 `__","any's in_place constructors","2016-11 (Issaquah)","|Complete|","","`#103522 `__","" +"`LWG2745 `__","[fund.ts.v2] Implementability of LWG 2451","2016-11 (Issaquah)","|Complete|","","`#103523 `__","" +"`LWG2747 `__","Possibly redundant std::move in [alg.foreach]","2016-11 (Issaquah)","|Complete|","","`#103524 `__","" +"`LWG2748 `__","swappable traits for optionals","2016-11 (Issaquah)","|Complete|","","`#103525 `__","" +"`LWG2749 `__","swappable traits for variants","2016-11 (Issaquah)","|Complete|","","`#103526 `__","" +"`LWG2750 `__","[fund.ts.v2] LWG 2451 conversion constructor constraint","2016-11 (Issaquah)","|Nothing To Do|","","`#103527 `__","" +"`LWG2752 `__","""Throws:"" clauses of async and packaged_task are unimplementable","2016-11 (Issaquah)","|Nothing To Do|","","`#103528 `__","" +"`LWG2755 `__","[string.view.io] uses non-existent basic_string_view::to_string function","2016-11 (Issaquah)","|Complete|","","`#103531 `__","" +"`LWG2756 `__","C++ WP optional should 'forward' T's implicit conversions","2016-11 (Issaquah)","|Complete|","","`#103532 `__","" +"`LWG2758 `__","std::string{}.assign(""ABCDE"", 0, 1) is ambiguous","2016-11 (Issaquah)","|Complete|","","`#103533 `__","" +"`LWG2759 `__","gcd / lcm and bool for the WP","2016-11 (Issaquah)","|Complete|","","`#103534 `__","" +"`LWG2760 `__","non-const basic_string::data should not invalidate iterators","2016-11 (Issaquah)","|Complete|","","`#103535 `__","" +"`LWG2765 `__","Did LWG 1123 go too far?","2016-11 (Issaquah)","|Complete|","","`#103536 `__","" +"`LWG2767 `__","not_fn call_wrapper can form invalid types","2016-11 (Issaquah)","|Complete|","","`#103537 `__","" +"`LWG2770 `__","``tuple_size`` specialization is not SFINAE compatible and breaks decomposition declarations","2016-11 (Issaquah)","|Complete|","21","`#148254 `__","" +"`LWG2771 `__","Broken Effects of some basic_string::compare functions in terms of basic_string_view","2016-11 (Issaquah)","|Complete|","","`#103539 `__","" +"`LWG2773 `__","Making std::ignore constexpr","2016-11 (Issaquah)","|Complete|","","`#103541 `__","" +"`LWG2777 `__","basic_string_view::copy should use char_traits::copy","2016-11 (Issaquah)","|Complete|","","`#103542 `__","" +"`LWG2778 `__","basic_string_view is missing constexpr","2016-11 (Issaquah)","|Complete|","","`#103543 `__","" +"","","","","","","" +"`LWG2260 `__","Missing requirement for Allocator::pointer","2017-02 (Kona)","|Complete|","","`#103544 `__","" +"`LWG2676 `__","Provide filesystem::path overloads for File-based streams","2017-02 (Kona)","|Complete|","","`#103545 `__","" +"`LWG2768 `__","any_cast and move semantics","2017-02 (Kona)","|Complete|","","`#103546 `__","" +"`LWG2769 `__","Redundant const in the return type of any_cast(const any&)","2017-02 (Kona)","|Complete|","","`#103538 `__","" +"`LWG2781 `__","Contradictory requirements for std::function and std::reference_wrapper","2017-02 (Kona)","|Complete|","","`#103548 `__","" +"`LWG2782 `__","scoped_allocator_adaptor constructors must be constrained","2017-02 (Kona)","|Complete|","","`#103549 `__","" +"`LWG2784 `__","Resolution to LWG 2484 is missing ""otherwise, no effects"" and is hard to parse","2017-02 (Kona)","|Complete|","","`#103550 `__","" +"`LWG2785 `__","quoted should work with basic_string_view","2017-02 (Kona)","|Complete|","","`#103553 `__","" +"`LWG2786 `__","Annex C should mention shared_ptr changes for array support","2017-02 (Kona)","|Complete|","","`#103554 `__","" +"`LWG2787 `__","|sect|\ [file_status.cons] doesn't match class definition","2017-02 (Kona)","|Complete|","","`#103555 `__","" +"`LWG2788 `__","basic_string range mutators unintentionally require a default constructible allocator","2017-02 (Kona)","|Complete|","","`#103556 `__","" +"`LWG2789 `__","Equivalence of contained objects","2017-02 (Kona)","|Complete|","","`#103557 `__","" +"`LWG2790 `__","Missing specification of istreambuf_iterator::operator->","2017-02 (Kona)","|Complete|","","`#103558 `__","" +"`LWG2794 `__","Missing requirements for allocator pointers","2017-02 (Kona)","|Nothing To Do|","","`#103559 `__","" +"`LWG2795 `__","|sect|\ [global.functions] provides incorrect example of ADL use","2017-02 (Kona)","|Complete|","","`#103560 `__","" +"`LWG2796 `__","tuple should be a literal type","2017-02 (Kona)","|Complete|","","`#103561 `__","" +"`LWG2801 `__","Default-constructibility of unique_ptr","2017-02 (Kona)","|Complete|","","`#103562 `__","" +"`LWG2802 `__","shared_ptr constructor requirements for a deleter","2017-02 (Kona)","|Complete|","","`#103563 `__","" +"`LWG2804 `__","Unconditional constexpr default constructor for istream_iterator","2017-02 (Kona)","|Complete|","","`#103565 `__","" +"`LWG2806 `__","Base class of bad_optional_access","2017-02 (Kona)","|Complete|","","`#103566 `__","" +"`LWG2807 `__","std::invoke should use ``std::is_nothrow_callable``\ ","2017-02 (Kona)","|Complete|","","`#103567 `__","" +"`LWG2812 `__","Range access is available with ","2017-02 (Kona)","|Complete|","","`#103568 `__","" +"`LWG2824 `__","list::sort should say that the order of elements is unspecified if an exception is thrown","2017-02 (Kona)","|Complete|","","`#103569 `__","" +"`LWG2826 `__","string_view iterators use old wording","2017-02 (Kona)","|Complete|","","`#103570 `__","" +"`LWG2834 `__","Resolution LWG 2223 is missing wording about end iterators","2017-02 (Kona)","|Complete|","","`#103571 `__","" +"`LWG2835 `__","LWG 2536 seems to misspecify ","2017-02 (Kona)","|Complete|","","`#103572 `__","" +"`LWG2837 `__","gcd and lcm should support a wider range of input values","2017-02 (Kona)","|Complete|","","`#103573 `__","" +"`LWG2838 `__","is_literal_type specification needs a little cleanup","2017-02 (Kona)","|Complete|","","`#103574 `__","" +"`LWG2842 `__","in_place_t check for optional::optional(U&&) should decay U","2017-02 (Kona)","|Complete|","","`#103575 `__","" +"`LWG2850 `__","std::function move constructor does unnecessary work","2017-02 (Kona)","|Complete|","","`#103576 `__","" +"`LWG2853 `__","Possible inconsistency in specification of erase in [vector.modifiers]","2017-02 (Kona)","|Complete|","","`#103577 `__","" +"`LWG2855 `__","std::throw_with_nested(""string_literal"")","2017-02 (Kona)","|Complete|","","`#103578 `__","" +"`LWG2857 `__","{variant,optional,any}::emplace should return the constructed value","2017-02 (Kona)","|Complete|","","`#103579 `__","" +"`LWG2861 `__","basic_string should require that charT match traits::char_type","2017-02 (Kona)","|Complete|","","`#103580 `__","" +"`LWG2866 `__","Incorrect derived classes constraints","2017-02 (Kona)","|Nothing To Do|","","`#103581 `__","" +"`LWG2868 `__","Missing specification of bad_any_cast::what()","2017-02 (Kona)","|Complete|","","`#103582 `__","" +"`LWG2872 `__","Add definition for direct-non-list-initialization","2017-02 (Kona)","|Complete|","","`#103583 `__","" +"`LWG2873 `__","Add noexcept to several shared_ptr related functions","2017-02 (Kona)","|Complete|","","`#103584 `__","" +"`LWG2874 `__","Constructor ``shared_ptr::shared_ptr(Y*)``\ should be constrained","2017-02 (Kona)","|Complete|","13","`#103585 `__","" +"`LWG2875 `__","shared_ptr::shared_ptr(Y\*, D, [|hellip|\ ]) constructors should be constrained","2017-02 (Kona)","|Complete|","","`#103586 `__","" +"`LWG2876 `__","``shared_ptr::shared_ptr(const weak_ptr&)``\ constructor should be constrained","2017-02 (Kona)","|Complete|","14","`#103587 `__","" +"`LWG2878 `__","Missing DefaultConstructible requirement for istream_iterator default constructor","2017-02 (Kona)","|Complete|","","`#103588 `__","" +"`LWG2890 `__","The definition of 'object state' applies only to class types","2017-02 (Kona)","|Complete|","","`#103589 `__","" +"`LWG2900 `__","The copy and move constructors of optional are not constexpr","2017-02 (Kona)","|Complete|","","`#103591 `__","" +"`LWG2903 `__","The form of initialization for the emplace-constructors is not specified","2017-02 (Kona)","|Complete|","","`#103593 `__","" +"`LWG2904 `__","Make variant move-assignment more exception safe","2017-02 (Kona)","|Complete|","","`#103594 `__","" +"`LWG2905 `__","is_constructible_v, P, D const &> should be false when D is not copy constructible","2017-02 (Kona)","|Complete|","","`#103595 `__","" +"`LWG2908 `__","The less-than operator for shared pointers could do more","2017-02 (Kona)","|Complete|","","`#103596 `__","" +"`LWG2911 `__","An is_aggregate type trait is needed","2017-02 (Kona)","|Complete|","","`#103597 `__","" +"`LWG2921 `__","packaged_task and type-erased allocators","2017-02 (Kona)","|Complete|","20","`#103598 `__","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|","","`#103599 `__","" +"","","","","","","" +"`LWG2901 `__","Variants cannot properly support allocators","2017-07 (Toronto)","|Complete|","","`#103600 `__","" +"`LWG2955 `__","``to_chars / from_chars``\ depend on ``std::string``\ ","2017-07 (Toronto)","|Nothing To Do|","","`#103601 `__","Resolved by `P0682R1 `__" +"`LWG2956 `__","``filesystem::canonical()``\ still defined in terms of ``absolute(p, base)``\ ","2017-07 (Toronto)","|Complete|","","`#103602 `__","" diff --git a/libcxx/docs/Status/Cxx17Papers.csv b/libcxx/docs/Status/Cxx17Papers.csv index 24fc7f718c360..933dd77baf938 100644 --- a/libcxx/docs/Status/Cxx17Papers.csv +++ b/libcxx/docs/Status/Cxx17Papers.csv @@ -1,113 +1,113 @@ -"Paper #","Paper Name","Meeting","Status","First released version","Notes" -"`N3911 `__","TransformationTrait Alias ``void_t``\ .","2014-11 (Urbana)","|Complete|","3.6","" -"`N4089 `__","Safe conversions in ``unique_ptr``\ .","2014-11 (Urbana)","|Complete|","5","" -"`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","" -"`N4258 `__","Cleaning-up noexcept in the Library.","2014-11 (Urbana)","|Complete|","21","" -"`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","" -"","","","","","" -"`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","" -"`N4510 `__","Minimal incomplete type support for standard containers, revision 4","2015-05 (Lenexa)","|Complete|","3.6","" -"","","","","","" -"`P0004R1 `__","Remove Deprecated iostreams aliases.","2015-10 (Kona)","|Complete|","3.8","" -"`P0006R0 `__","Adopt Type Traits Variable Templates for C++17.","2015-10 (Kona)","|Complete|","3.8","" -"`P0092R1 `__","Polishing ","2015-10 (Kona)","|Complete|","3.8","" -"`P0007R1 `__","Constant View: A proposal for a ``std::as_const``\ helper function template.","2015-10 (Kona)","|Complete|","3.8","" -"`P0156R0 `__","Variadic lock_guard(rev 3).","2015-10 (Kona)","|Nothing To Do|","","Pulled at the 2017-01 meeting in Kona" -"`P0074R0 `__","Making ``std::owner_less``\ more flexible","2015-10 (Kona)","|Complete|","3.8","" -"`P0013R1 `__","Logical type traits rev 2","2015-10 (Kona)","|Complete|","3.8","" -"","","","","","" -"`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","" -"`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","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","" -"`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","" -"`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","" -"`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","" -"`P0175R1 `__","Synopses for the C library","2016-06 (Oulu)","|Nothing To Do|","n/a","" -"`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","" -"`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","" -"`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","" -"`P0067R5 `__","Elementary string conversions, revision 5","2016-11 (Issaquah)","|Partial|","","For integer types, ``std::(to|from)_chars`` has been available since v7; for ``float`` and ``double``, ``std::to_chars`` since v14 and ``std::from_chars`` since v20. Support is complete except for ``long double``." -"`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","" -"`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","" -"`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","" -"`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","" -"`P0270R3 `__","Removing C dependencies from signal handler wording","2017-02 (Kona)","|Nothing To Do|","","" -"`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","" -"`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","" -"`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","" -"`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","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","" +"Paper #","Paper Name","Meeting","Status","First released version","Github issue","Notes" +"`N3911 `__","TransformationTrait Alias ``void_t``\ .","2014-11 (Urbana)","|Complete|","3.6","`#103603 `__","" +"`N4089 `__","Safe conversions in ``unique_ptr``\ .","2014-11 (Urbana)","|Complete|","5","`#99936 `__","" +"`N4169 `__","A proposal to add invoke function template","2014-11 (Urbana)","|Complete|","3.7","`#103604 `__","" +"`N4190 `__","Removing auto_ptr, random_shuffle(), And Old Stuff.","2014-11 (Urbana)","|Complete|","15","`#103605 `__","" +"`N4258 `__","Cleaning-up noexcept in the Library.","2014-11 (Urbana)","|Complete|","21","`#99937 `__","" +"`N4259 `__","Wording for std::uncaught_exceptions","2014-11 (Urbana)","|Complete|","3.7","`#103606 `__","``std::uncaught_exception`` is deprecated since LLVM 20" +"`N4277 `__","TriviallyCopyable ``reference_wrapper``\ .","2014-11 (Urbana)","|Complete|","3.2","`#103608 `__","" +"`N4279 `__","Improved insertion interface for unique-key maps.","2014-11 (Urbana)","|Complete|","3.7","`#103609 `__","" +"`N4280 `__","Non-member size() and more","2014-11 (Urbana)","|Complete|","3.6","`#103610 `__","" +"`N4284 `__","Contiguous Iterators.","2014-11 (Urbana)","|Complete|","3.6","`#103611 `__","" +"`N4285 `__","Cleanup for exception-specification and throw-expression.","2014-11 (Urbana)","|Complete|","4","`#103612 `__","" +"","","","","","","" +"`N4387 `__","improving pair and tuple","2015-05 (Lenexa)","|Complete|","4","`#103613 `__","" +"`N4389 `__","bool_constant","2015-05 (Lenexa)","|Complete|","3.7","`#103614 `__","" +"`N4508 `__","shared_mutex for C++17","2015-05 (Lenexa)","|Complete|","3.7","`#103615 `__","" +"`N4366 `__","LWG 2228 missing SFINAE rule","2015-05 (Lenexa)","|Complete|","3.1","`#103616 `__","" +"`N4510 `__","Minimal incomplete type support for standard containers, revision 4","2015-05 (Lenexa)","|Complete|","3.6","`#103617 `__","" +"","","","","","","" +"`P0004R1 `__","Remove Deprecated iostreams aliases.","2015-10 (Kona)","|Complete|","3.8","`#103618 `__","" +"`P0006R0 `__","Adopt Type Traits Variable Templates for C++17.","2015-10 (Kona)","|Complete|","3.8","`#103619 `__","" +"`P0092R1 `__","Polishing ","2015-10 (Kona)","|Complete|","3.8","`#103620 `__","" +"`P0007R1 `__","Constant View: A proposal for a ``std::as_const``\ helper function template.","2015-10 (Kona)","|Complete|","3.8","`#103621 `__","" +"`P0156R0 `__","Variadic lock_guard(rev 3).","2015-10 (Kona)","|Nothing To Do|","","`#103622 `__","Pulled at the 2017-01 meeting in Kona" +"`P0074R0 `__","Making ``std::owner_less``\ more flexible","2015-10 (Kona)","|Complete|","3.8","`#103623 `__","" +"`P0013R1 `__","Logical type traits rev 2","2015-10 (Kona)","|Complete|","3.8","`#103624 `__","" +"","","","","","","" +"`P0024R2 `__","The Parallelism TS Should be Standardized","2016-02 (Jacksonville)","|Partial|","","`#99938 `__","" +"`P0226R1 `__","Mathematical Special Functions for C++17","2016-02 (Jacksonville)","|In Progress|","","`#99939 `__","Progress is tracked `here `__" +"`P0220R1 `__","Adopt Library Fundamentals V1 TS Components for C++17","2016-02 (Jacksonville)","|Complete|","16","`#103625 `__","" +"`P0218R1 `__","Adopt the File System TS for C++17","2016-02 (Jacksonville)","|Complete|","7","`#103626 `__","" +"`P0033R1 `__","Re-enabling shared_from_this","2016-02 (Jacksonville)","|Complete|","3.9","`#103627 `__","" +"`P0005R4 `__","Adopt not_fn from Library Fundamentals 2 for C++17","2016-02 (Jacksonville)","|Complete|","3.9","`#103629 `__","" +"`P0152R1 `__","constexpr ``atomic::is_always_lock_free``\ ","2016-02 (Jacksonville)","|Complete|","3.9","`#103630 `__","" +"`P0185R1 `__","Adding [nothrow-]swappable traits","2016-02 (Jacksonville)","|Complete|","3.9","`#103631 `__","" +"`P0253R1 `__","Fixing a design mistake in the searchers interface","2016-02 (Jacksonville)","|Complete|","3.9","`#103632 `__","" +"`P0025R0 `__","An algorithm to ""clamp"" a value between a pair of boundary values","2016-02 (Jacksonville)","|Complete|","3.9","`#103633 `__","" +"`P0154R1 `__","constexpr std::hardware_{constructive,destructive}_interference_size","2016-02 (Jacksonville)","|Complete|","19","`#103634 `__","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","`#103635 `__","" +"`P0031R0 `__","A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access","2016-02 (Jacksonville)","|Complete|","4","`#103636 `__","" +"`P0272R1 `__","Give ``std::string``\ a non-const ``.data()``\ member function","2016-02 (Jacksonville)","|Complete|","3.9","`#103637 `__","" +"`P0077R2 `__","``is_callable``\ , the missing INVOKE related trait","2016-02 (Jacksonville)","|Complete|","3.9","`#103638 `__","" +"","","","","","","" +"`P0032R3 `__","Homogeneous interface for variant, any and optional","2016-06 (Oulu)","|Complete|","4","`#103639 `__","" +"`P0040R3 `__","Extending memory management tools","2016-06 (Oulu)","|Complete|","4","`#103640 `__","" +"`P0063R3 `__","C++17 should refer to C11 instead of C99","2016-06 (Oulu)","|Complete|","7","`#103642 `__","" +"`P0067R3 `__","Elementary string conversions","2016-06 (Oulu)","|Nothing To Do|","n/a","`#103643 `__","Resolved by `P0067R5 `__" +"`P0083R3 `__","Splicing Maps and Sets","2016-06 (Oulu)","|Complete|","8","`#103645 `__","" +"`P0084R2 `__","Emplace Return Type","2016-06 (Oulu)","|Complete|","4","`#103646 `__","" +"`P0088R3 `__","Variant: a type-safe union for C++17","2016-06 (Oulu)","|Complete|","4","`#103647 `__","" +"`P0137R1 `__","Core Issue 1776: Replacement of class objects containing reference members","2016-06 (Oulu)","|Complete|","6","`#103648 `__","" +"`P0163R0 `__","shared_ptr::weak_type","2016-06 (Oulu)","|Complete|","3.9","`#103649 `__","" +"`P0174R2 `__","Deprecating Vestigial Library Parts in C++17","2016-06 (Oulu)","|Complete|","15","`#103650 `__","" +"`P0175R1 `__","Synopses for the C library","2016-06 (Oulu)","|Nothing To Do|","n/a","`#99941 `__","" +"`P0180R2 `__","Reserve a New Library Namespace for Future Standardization","2016-06 (Oulu)","|Nothing To Do|","n/a","`#103651 `__","" +"`P0181R1 `__","Ordered by Default","2016-06 (Oulu)","|Nothing To Do|","n/a","`#103652 `__","Pulled at the 2017-01 meeting in Kona" +"`P0209R2 `__","make_from_tuple: apply for construction","2016-06 (Oulu)","|Complete|","3.9","`#103653 `__","" +"`P0219R1 `__","Relative Paths for Filesystem","2016-06 (Oulu)","|Complete|","7","`#103654 `__","" +"`P0254R2 `__","Integrating std::string_view and std::string","2016-06 (Oulu)","|Complete|","4","`#103655 `__","" +"`P0258R2 `__","has_unique_object_representations","2016-06 (Oulu)","|Complete|","6","`#103656 `__","" +"`P0295R0 `__","Adopt Selected Library Fundamentals V2 Components for C++17","2016-06 (Oulu)","|Complete|","4","`#103657 `__","" +"`P0302R1 `__","Removing Allocator Support in std::function","2016-06 (Oulu)","|Complete|","4","`#103658 `__","" +"`P0307R2 `__","Making Optional Greater Equal Again","2016-06 (Oulu)","|Complete|","4","`#103659 `__","" +"`P0336R1 `__","Better Names for Parallel Execution Policies in C++17","2016-06 (Oulu)","|Complete|","17","`#103660 `__","" +"`P0337R0 `__","Delete ``operator=``\ for polymorphic_allocator","2016-06 (Oulu)","|Complete|","3.9","`#103661 `__","" +"`P0346R1 `__","A Nomenclature Tweak","2016-06 (Oulu)","|Complete|","3.9","`#103662 `__","" +"`P0358R1 `__","Fixes for not_fn","2016-06 (Oulu)","|Complete|","3.9","`#103663 `__","" +"`P0371R1 `__","Temporarily discourage memory_order_consume","2016-06 (Oulu)","|Nothing To Do|","n/a","`#103664 `__","" +"`P0392R0 `__","Adapting string_view by filesystem paths","2016-06 (Oulu)","|Complete|","4","`#103665 `__","" +"`P0393R3 `__","Making Variant Greater Equal","2016-06 (Oulu)","|Complete|","4","`#103666 `__","" +"`P0394R4 `__","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","2016-06 (Oulu)","|Complete|","17","`#103667 `__","" +"","","","","","","" +"`P0003R5 `__","Removing Deprecated Exception Specifications from C++17","2016-11 (Issaquah)","|Complete|","5","`#103668 `__","" +"`P0067R5 `__","Elementary string conversions, revision 5","2016-11 (Issaquah)","|Partial|","","`#99940 `__","For integer types, ``std::(to|from)_chars`` has been available since v7; for ``float`` and ``double``, ``std::to_chars`` since v14 and ``std::from_chars`` since v20. Support is complete except for ``long double``." +"`P0403R1 `__","Literal suffixes for ``basic_string_view``\ ","2016-11 (Issaquah)","|Complete|","4","`#103669 `__","" +"`P0414R2 `__","Merging shared_ptr changes from Library Fundamentals to C++17","2016-11 (Issaquah)","|Complete|","11","`#103670 `__","" +"`P0418R2 `__","Fail or succeed: there is no atomic lattice","2016-11 (Issaquah)","","","`#99942 `__","" +"`P0426R1 `__","Constexpr for ``std::char_traits``\ ","2016-11 (Issaquah)","|Complete|","4","`#103671 `__","" +"`P0435R1 `__","Resolving LWG Issues re ``common_type``\ ","2016-11 (Issaquah)","|Complete|","4","`#103672 `__","" +"`P0502R0 `__","Throwing out of a parallel algorithm terminates - but how?","2016-11 (Issaquah)","","","`#99943 `__","" +"`P0503R0 `__","Correcting library usage of ""literal type""","2016-11 (Issaquah)","|Complete|","4","`#103673 `__","" +"`P0504R0 `__","Revisiting in-place tag types for any/optional/variant","2016-11 (Issaquah)","|Complete|","4","`#103674 `__","" +"`P0505R0 `__","Wording for GB 50 - constexpr for chrono","2016-11 (Issaquah)","|Complete|","4","`#103675 `__","" +"`P0508R0 `__","Wording for GB 58 - structured bindings for node_handles","2016-11 (Issaquah)","|Complete|","7","`#99944 `__","" +"`P0509R1 `__","Updating ""Restrictions on exception handling""","2016-11 (Issaquah)","|Nothing To Do|","n/a","`#103676 `__","" +"`P0510R0 `__","Disallowing references, incomplete types, arrays, and empty variants","2016-11 (Issaquah)","|Complete|","4","`#103677 `__","" +"`P0513R0 `__","Poisoning the Hash","2016-11 (Issaquah)","|Complete|","5","`#103678 `__","" +"`P0516R0 `__","Clarify That shared_future's Copy Operations have Wide Contracts","2016-11 (Issaquah)","|Complete|","4","`#103679 `__","" +"`P0517R0 `__","Make future_error Constructible","2016-11 (Issaquah)","|Complete|","4","`#103680 `__","" +"`P0521R0 `__","Proposed Resolution for CA 14 (shared_ptr use_count/unique)","2016-11 (Issaquah)","|Complete|","18","`#103681 `__","" +"","","","","","","" +"`P0156R2 `__","Variadic Lock guard(rev 5)","2017-02 (Kona)","|Complete|","5","`#103682 `__","" +"`P0270R3 `__","Removing C dependencies from signal handler wording","2017-02 (Kona)","|Nothing To Do|","","`#99946 `__","" +"`P0298R3 `__","A byte type definition","2017-02 (Kona)","|Complete|","5","`#103683 `__","" +"`P0317R1 `__","Directory Entry Caching for Filesystem","2017-02 (Kona)","|Complete|","7","`#103684 `__","" +"`P0430R2 `__","File system library on non-POSIX-like operating systems","2017-02 (Kona)","|Complete|","7","`#103685 `__","" +"`P0433R2 `__","Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library","2017-02 (Kona)","|Complete|","14","`#103686 `__","" +"`P0452R1 `__","Unifying Parallel Algorithms","2017-02 (Kona)","|Partial|","","`#99948 `__","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|","","`#99949 `__","" +"`P0492R2 `__","Proposed Resolution of C++17 National Body Comments for Filesystems","2017-02 (Kona)","|Complete|","7","`#103687 `__","" +"`P0518R1 `__","Allowing copies as arguments to function objects given to parallel algorithms in response to CH11","2017-02 (Kona)","|Nothing To Do|","","`#103689 `__","" +"`P0523R1 `__","Wording for CH 10: Complexity of parallel algorithms","2017-02 (Kona)","|Nothing To Do|","","`#103690 `__","" +"`P0548R1 `__","common_type and duration","2017-02 (Kona)","|Complete|","5","`#103691 `__","" +"`P0558R1 `__","Resolving atomic named base class inconsistencies","2017-02 (Kona)","|Complete|","","`#103693 `__","" +"`P0574R1 `__","Algorithm Complexity Constraints and Parallel Overloads","2017-02 (Kona)","|Nothing To Do|","","`#103694 `__","" +"`P0599R1 `__","noexcept for hash functions","2017-02 (Kona)","|Complete|","5","`#103695 `__","" +"`P0604R0 `__","Resolving GB 55, US 84, US 85, US 86","2017-02 (Kona)","|Complete|","","`#103696 `__","" +"`P0607R0 `__","Inline Variables for the Standard Library","2017-02 (Kona)","|In Progress|","6","`#99951 `__","The parts of P0607 that are not done are the ```` bits" +"`P0618R0 `__","Deprecating ","2017-02 (Kona)","|Complete|","15","`#103697 `__","" +"`P0623R0 `__","Final C++17 Parallel Algorithms Fixes","2017-02 (Kona)","|Nothing To Do|","","`#103698 `__","" +"","","","","","","" +"`P0682R1 `__","Repairing elementary string conversions","2017-07 (Toronto)","","","`#99952 `__","" +"`P0739R0 `__","Some improvements to class template argument deduction integration into the standard library","2017-07 (Toronto)","|Complete|","5","`#103699 `__","" diff --git a/libcxx/docs/Status/Cxx20Issues.csv b/libcxx/docs/Status/Cxx20Issues.csv index 98b49f92bdf7a..67b487fc40555 100644 --- a/libcxx/docs/Status/Cxx20Issues.csv +++ b/libcxx/docs/Status/Cxx20Issues.csv @@ -1,302 +1,302 @@ -"Issue #","Issue Name","Meeting","Status","First released version","Notes" -"`LWG2070 `__","``allocate_shared``\ should use ``allocator_traits::construct``\ ","2017-07 (Toronto)","|Nothing To Do|","","Resolved by `P0674R1 `__" -"`LWG2444 `__","Inconsistent complexity for ``std::sort_heap``\ ","2017-07 (Toronto)","|Nothing To Do|","","" -"`LWG2593 `__","Moved-from state of Allocators","2017-07 (Toronto)","|Nothing To Do|","","" -"`LWG2597 `__","``std::log``\ misspecified for complex numbers","2017-07 (Toronto)","","","" -"`LWG2783 `__","``stack::emplace()``\ and ``queue::emplace()``\ should return ``decltype(auto)``\ ","2017-07 (Toronto)","|Complete|","","" -"`LWG2932 `__","Constraints on parallel algorithm implementations are underspecified","2017-07 (Toronto)","","","" -"`LWG2937 `__","Is ``equivalent(""existing_thing"", ""not_existing_thing"")``\ an error","2017-07 (Toronto)","|Complete|","","" -"`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","" -"`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|","","" -"","","","","","" -"`LWG2779 `__","[networking.ts] Relax requirements on buffer sequence iterators","2017-11 (Albuquerque)","|Nothing To Do|","","" -"`LWG2870 `__","Default value of parameter theta of polar should be dependent","2017-11 (Albuquerque)","|Complete|","","" -"`LWG2935 `__","What should create_directories do when p already exists but is not a directory?","2017-11 (Albuquerque)","|Nothing To Do|","","" -"`LWG2941 `__","[thread.req.timing] wording should apply to both member and namespace-level functions","2017-11 (Albuquerque)","|Nothing To Do|","","" -"`LWG2944 `__","LWG 2905 accidentally removed requirement that construction of the deleter doesn't throw an exception","2017-11 (Albuquerque)","|Nothing To Do|","","" -"`LWG2945 `__","Order of template parameters in optional comparisons","2017-11 (Albuquerque)","|Complete|","","" -"`LWG2948 `__","unique_ptr does not define operator<< for stream output","2017-11 (Albuquerque)","|Complete|","","" -"`LWG2950 `__","std::byte operations are misspecified","2017-11 (Albuquerque)","|Complete|","","" -"`LWG2952 `__","iterator_traits should work for pointers to cv T","2017-11 (Albuquerque)","|Complete|","","" -"`LWG2953 `__","LWG 2853 should apply to deque::erase too","2017-11 (Albuquerque)","|Complete|","","" -"`LWG2958 `__","Moves improperly defined as deleted","2017-11 (Albuquerque)","|Complete|","","" -"`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","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","" -"`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","" -"`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","" -"`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|","","" -"`LWG2243 `__","``istream::putback``\ problem","2018-03 (Jacksonville)","|Complete|","","" -"`LWG2816 `__","``resize_file``\ has impossible postcondition","2018-03 (Jacksonville)","|Nothing To Do|","","" -"`LWG2843 `__","Unclear behavior of ``std::pmr::memory_resource::do_allocate()``\ ","2018-03 (Jacksonville)","|Complete|","","" -"`LWG2849 `__","Why does ``!is_regular_file(from)``\ cause ``copy_file``\ to report a ""file already exists"" error?","2018-03 (Jacksonville)","|Nothing To Do|","","" -"`LWG2851 `__","``std::filesystem``\ enum classes are now underspecified","2018-03 (Jacksonville)","|Nothing To Do|","","" -"`LWG2946 `__","LWG 2758's resolution missed further corrections","2018-03 (Jacksonville)","|Complete|","","" -"`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","" -"`LWG3002 `__","[networking.ts] ``basic_socket_acceptor::is_open()``\ isn't ``noexcept``\ ","2018-03 (Jacksonville)","|Nothing To Do|","","" -"`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)","","","" -"`LWG3007 `__","``allocate_shared``\ should rebind allocator to *cv*-unqualified ``value_type``\ for construction","2018-03 (Jacksonville)","","","" -"`LWG3009 `__","Including ````\ doesn't provide ``std::size/empty/data``\ ","2018-03 (Jacksonville)","|Complete|","","" -"`LWG3010 `__","[networking.ts] ``uses_executor``\ says ""if a type ``T::executor_type``\ exists""","2018-03 (Jacksonville)","|Nothing To Do|","","" -"`LWG3013 `__","``(recursive_)directory_iterator``\ construction and traversal should not be ``noexcept``\ ","2018-03 (Jacksonville)","|Complete|","","" -"`LWG3014 `__","More ``noexcept``\ issues with filesystem operations","2018-03 (Jacksonville)","|Complete|","","" -"`LWG3015 `__","``copy_options::*unspecified*``\ underspecified","2018-03 (Jacksonville)","|Nothing To Do|","","" -"`LWG3017 `__","``list splice``\ functions should use ``addressof``\ ","2018-03 (Jacksonville)","|Complete|","","" -"`LWG3020 `__","[networking.ts] Remove spurious nested ``value_type``\ buffer sequence requirement","2018-03 (Jacksonville)","|Nothing To Do|","","" -"`LWG3026 `__","``filesystem::weakly_canonical``\ still defined in terms of ``canonical(p, base)``\ ","2018-03 (Jacksonville)","|Complete|","","" -"`LWG3030 `__","Who shall meet the requirements of ``try_lock``\ ?","2018-03 (Jacksonville)","|Nothing To Do|","","" -"`LWG3034 `__","P0767R1 breaks previously-standard-layout types","2018-03 (Jacksonville)","|Complete|","","" -"`LWG3035 `__","``std::allocator``\ 's constructors should be ``constexpr``\ ","2018-03 (Jacksonville)","|Complete|","","" -"`LWG3039 `__","Unnecessary ``decay``\ in ``thread``\ and ``packaged_task``\ ","2018-03 (Jacksonville)","|Complete|","","" -"`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","" -"`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","" -"`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","" -"`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)","","","" -"`LWG3076 `__","basic_string CTAD ambiguity","2018-06 (Rapperswil)","|Complete|","","" -"`LWG3079 `__","LWG 2935 forgot to fix the existing_p overloads of create_directory","2018-06 (Rapperswil)","|Nothing To Do|","","" -"`LWG3080 `__","Floating point from_chars pattern specification breaks round-tripping","2018-06 (Rapperswil)","","","" -"`LWG3083 `__","What should ios::iword(-1) do?","2018-06 (Rapperswil)","|Nothing To Do|","","" -"`LWG3094 `__","[time.duration.io]p4 makes surprising claims about encoding","2018-06 (Rapperswil)","","","" -"`LWG3100 `__","Unnecessary and confusing ""empty span"" wording","2018-06 (Rapperswil)","|Nothing To Do|","","" -"`LWG3102 `__","Clarify span iterator and ``const_iterator`` behavior","2018-06 (Rapperswil)","|Complete|","","" -"`LWG3104 `__","Fixing duration division","2018-06 (Rapperswil)","|Complete|","","" -"","","","","","" -"`LWG2183 `__","Muddled allocator requirements for ``match_results``\ constructors","2018-11 (San Diego)","|Complete|","","" -"`LWG2184 `__","Muddled allocator requirements for ``match_results``\ assignments","2018-11 (San Diego)","|Complete|","","" -"`LWG2412 `__","``promise::set_value()``\ and ``promise::get_future()``\ should not race","2018-11 (San Diego)","","","" -"`LWG2499 `__","``operator>>(basic_istream&, CharT*)``\ makes it hard to avoid buffer overflows","2018-11 (San Diego)","|Nothing To Do|","","Resolved by `P0487R1 `__" -"`LWG2682 `__","``filesystem::copy()``\ won't create a symlink to a directory","2018-11 (San Diego)","|Nothing To Do|","","" -"`LWG2697 `__","[concurr.ts] Behavior of ``future/shared_future``\ unwrapping constructor when given an invalid ``future``\ ","2018-11 (San Diego)","","","" -"`LWG2797 `__","Trait precondition violations","2018-11 (San Diego)","|Nothing To Do|","","Resolved by `P1285R0 `__" -"`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","" -"`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","" -"`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","" -"`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","" -"`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 `__" -"`LWG3137 `__","Header for ``__cpp_lib_to_chars``\ ","2018-11 (San Diego)","|Complete|","","" -"`LWG3140 `__","``COMMON_REF``\ is unimplementable as specified","2018-11 (San Diego)","|Nothing To Do|","","" -"`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","" -"`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)","","","" -"`LWG3040 `__","``basic_string_view::starts_with``\ *Effects* are incorrect","2019-02 (Kona)","|Complete|","","" -"`LWG3077 `__","``(push|emplace)_back``\ should invalidate the ``end``\ iterator","2019-02 (Kona)","|Nothing To Do|","","" -"`LWG3087 `__","One final ``&x``\ in |sect|\ [list.ops]","2019-02 (Kona)","|Nothing To Do|","","" -"`LWG3101 `__","``span``\ 's ``Container``\ constructors need another constraint","2019-02 (Kona)","|Complete|","","" -"`LWG3112 `__","``system_error``\ and ``filesystem_error``\ constructors taking a ``string``\ may not be able to meet their postconditions","2019-02 (Kona)","|Nothing To Do|","","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"","","","","","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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 `__","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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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)","|Complete|","21","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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 `__","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","" -"`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","" +"Issue #","Issue Name","Meeting","Status","First released version","Github issue","Notes" +"`LWG2070 `__","``allocate_shared``\ should use ``allocator_traits::construct``\ ","2017-07 (Toronto)","|Nothing To Do|","","`#103733 `__","Resolved by `P0674R1 `__" +"`LWG2444 `__","Inconsistent complexity for ``std::sort_heap``\ ","2017-07 (Toronto)","|Nothing To Do|","","`#103734 `__","" +"`LWG2593 `__","Moved-from state of Allocators","2017-07 (Toronto)","|Nothing To Do|","","`#100220 `__","" +"`LWG2597 `__","``std::log``\ misspecified for complex numbers","2017-07 (Toronto)","","","`#100221 `__","" +"`LWG2783 `__","``stack::emplace()``\ and ``queue::emplace()``\ should return ``decltype(auto)``\ ","2017-07 (Toronto)","|Complete|","","`#103735 `__","" +"`LWG2932 `__","Constraints on parallel algorithm implementations are underspecified","2017-07 (Toronto)","","","`#100222 `__","" +"`LWG2937 `__","Is ``equivalent(""existing_thing"", ""not_existing_thing"")``\ an error","2017-07 (Toronto)","|Complete|","","`#103736 `__","" +"`LWG2940 `__","``result_of``\ specification also needs a little cleanup","2017-07 (Toronto)","|Nothing To Do|","","`#103737 `__","" +"`LWG2942 `__","LWG 2873's resolution missed ``weak_ptr::owner_before``\ ","2017-07 (Toronto)","|Complete|","","`#103738 `__","" +"`LWG2954 `__","Specialization of the convenience variable templates should be prohibited","2017-07 (Toronto)","|Complete|","","`#103739 `__","" +"`LWG2961 `__","Bad postcondition for ``set_default_resource``\ ","2017-07 (Toronto)","|Complete|","16","`#103740 `__","" +"`LWG2966 `__","Incomplete resolution of US 74","2017-07 (Toronto)","|Nothing To Do|","","`#103741 `__","" +"`LWG2974 `__","Diagnose out of bounds ``tuple_element/variant_alternative``\ ","2017-07 (Toronto)","|Complete|","","`#103742 `__","" +"","","","","","","" +"`LWG2779 `__","[networking.ts] Relax requirements on buffer sequence iterators","2017-11 (Albuquerque)","|Nothing To Do|","","`#100223 `__","" +"`LWG2870 `__","Default value of parameter theta of polar should be dependent","2017-11 (Albuquerque)","|Complete|","","`#103743 `__","" +"`LWG2935 `__","What should create_directories do when p already exists but is not a directory?","2017-11 (Albuquerque)","|Nothing To Do|","","`#103744 `__","" +"`LWG2941 `__","[thread.req.timing] wording should apply to both member and namespace-level functions","2017-11 (Albuquerque)","|Nothing To Do|","","`#103745 `__","" +"`LWG2944 `__","LWG 2905 accidentally removed requirement that construction of the deleter doesn't throw an exception","2017-11 (Albuquerque)","|Nothing To Do|","","`#103746 `__","" +"`LWG2945 `__","Order of template parameters in optional comparisons","2017-11 (Albuquerque)","|Complete|","","`#103747 `__","" +"`LWG2948 `__","unique_ptr does not define operator<< for stream output","2017-11 (Albuquerque)","|Complete|","","`#103748 `__","" +"`LWG2950 `__","std::byte operations are misspecified","2017-11 (Albuquerque)","|Complete|","","`#103749 `__","" +"`LWG2952 `__","iterator_traits should work for pointers to cv T","2017-11 (Albuquerque)","|Complete|","","`#103750 `__","" +"`LWG2953 `__","LWG 2853 should apply to deque::erase too","2017-11 (Albuquerque)","|Complete|","","`#103751 `__","" +"`LWG2958 `__","Moves improperly defined as deleted","2017-11 (Albuquerque)","|Complete|","","`#103752 `__","" +"`LWG2964 `__","Apparently redundant requirement for dynamic_pointer_cast","2017-11 (Albuquerque)","","","`#100224 `__","" +"`LWG2965 `__","Non-existing path::native_string() in filesystem_error::what() specification","2017-11 (Albuquerque)","|Nothing To Do|","","`#103753 `__","" +"`LWG2972 `__","What is ``is_trivially_destructible_v``\ ?","2017-11 (Albuquerque)","|Complete|","","`#103754 `__","" +"`LWG2976 `__","Dangling uses_allocator specialization for packaged_task","2017-11 (Albuquerque)","|Complete|","20","`#103755 `__","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|","","`#103756 `__","" +"`LWG2978 `__","Hash support for pmr::string and friends","2017-11 (Albuquerque)","|Complete|","16","`#103757 `__","" +"`LWG2979 `__","aligned_union should require complete object types","2017-11 (Albuquerque)","|Complete|","","`#103758 `__","" +"`LWG2980 `__","Cannot compare_exchange empty pointers","2017-11 (Albuquerque)","","","`#100225 `__","" +"`LWG2981 `__","Remove redundant deduction guides from standard library","2017-11 (Albuquerque)","|Nothing To Do|","","`#103759 `__","" +"`LWG2982 `__","Making size_type consistent in associative container deduction guides","2017-11 (Albuquerque)","","","`#100226 `__","" +"`LWG2988 `__","Clause 32 cleanup missed one typename","2017-11 (Albuquerque)","|Complete|","13","`#103760 `__","" +"`LWG2993 `__","reference_wrapper conversion from T&&","2017-11 (Albuquerque)","|Complete|","13","`#103761 `__","" +"`LWG2998 `__","Requirements on function objects passed to {``forward_``,}list-specific algorithms","2017-11 (Albuquerque)","|Nothing To Do|","","`#103762 `__","" +"`LWG3001 `__","weak_ptr::element_type needs remove_extent_t","2017-11 (Albuquerque)","|Complete|","14","`#103763 `__","" +"`LWG3024 `__","variant's copies must be deleted instead of disabled via SFINAE","2017-11 (Albuquerque)","|Complete|","","`#103764 `__","" +"","","","","","","" +"`LWG2164 `__","What are the semantics of ``vector.emplace(vector.begin(), vector.back())``\ ?","2018-03 (Jacksonville)","|Complete|","","`#103765 `__","" +"`LWG2243 `__","``istream::putback``\ problem","2018-03 (Jacksonville)","|Complete|","","`#103766 `__","" +"`LWG2816 `__","``resize_file``\ has impossible postcondition","2018-03 (Jacksonville)","|Nothing To Do|","","`#103770 `__","" +"`LWG2843 `__","Unclear behavior of ``std::pmr::memory_resource::do_allocate()``\ ","2018-03 (Jacksonville)","|Complete|","","`#103771 `__","" +"`LWG2849 `__","Why does ``!is_regular_file(from)``\ cause ``copy_file``\ to report a ""file already exists"" error?","2018-03 (Jacksonville)","|Nothing To Do|","","`#103772 `__","" +"`LWG2851 `__","``std::filesystem``\ enum classes are now underspecified","2018-03 (Jacksonville)","|Nothing To Do|","","`#103774 `__","" +"`LWG2946 `__","LWG 2758's resolution missed further corrections","2018-03 (Jacksonville)","|Complete|","","`#103775 `__","" +"`LWG2969 `__","``polymorphic_allocator::construct()``\ shouldn't pass ``resource()``\ ","2018-03 (Jacksonville)","|Complete|","","`#103776 `__","" +"`LWG2975 `__","Missing case for ``pair``\ construction in scoped and polymorphic allocators","2018-03 (Jacksonville)","","","`#100227 `__","" +"`LWG2989 `__","``path``\ 's stream insertion operator lets you insert everything under the sun","2018-03 (Jacksonville)","|Complete|","","`#103777 `__","" +"`LWG3000 `__","``monotonic_memory_resource::do_is_equal``\ uses ``dynamic_cast``\ unnecessarily","2018-03 (Jacksonville)","|Complete|","16","`#103778 `__","" +"`LWG3002 `__","[networking.ts] ``basic_socket_acceptor::is_open()``\ isn't ``noexcept``\ ","2018-03 (Jacksonville)","|Nothing To Do|","","`#100228 `__","" +"`LWG3004 `__","|sect|\ [string.capacity] and |sect|\ [vector.capacity] should specify time complexity for ``capacity()``\ ","2018-03 (Jacksonville)","|Nothing To Do|","","`#103779 `__","" +"`LWG3005 `__","Destruction order of arrays by ``make_shared/allocate_shared``\ only recommended?","2018-03 (Jacksonville)","","","`#100229 `__","" +"`LWG3007 `__","``allocate_shared``\ should rebind allocator to *cv*-unqualified ``value_type``\ for construction","2018-03 (Jacksonville)","","","`#100230 `__","" +"`LWG3009 `__","Including ````\ doesn't provide ``std::size/empty/data``\ ","2018-03 (Jacksonville)","|Complete|","","`#103780 `__","" +"`LWG3010 `__","[networking.ts] ``uses_executor``\ says ""if a type ``T::executor_type``\ exists""","2018-03 (Jacksonville)","|Nothing To Do|","","`#100231 `__","" +"`LWG3013 `__","``(recursive_)directory_iterator``\ construction and traversal should not be ``noexcept``\ ","2018-03 (Jacksonville)","|Complete|","","`#103781 `__","" +"`LWG3014 `__","More ``noexcept``\ issues with filesystem operations","2018-03 (Jacksonville)","|Complete|","","`#103782 `__","" +"`LWG3015 `__","``copy_options::*unspecified*``\ underspecified","2018-03 (Jacksonville)","|Nothing To Do|","","`#103783 `__","" +"`LWG3017 `__","``list splice``\ functions should use ``addressof``\ ","2018-03 (Jacksonville)","|Complete|","","`#103784 `__","" +"`LWG3020 `__","[networking.ts] Remove spurious nested ``value_type``\ buffer sequence requirement","2018-03 (Jacksonville)","|Nothing To Do|","","`#100232 `__","" +"`LWG3026 `__","``filesystem::weakly_canonical``\ still defined in terms of ``canonical(p, base)``\ ","2018-03 (Jacksonville)","|Complete|","","`#103785 `__","" +"`LWG3030 `__","Who shall meet the requirements of ``try_lock``\ ?","2018-03 (Jacksonville)","|Nothing To Do|","","`#103786 `__","" +"`LWG3034 `__","P0767R1 breaks previously-standard-layout types","2018-03 (Jacksonville)","|Complete|","","`#103787 `__","" +"`LWG3035 `__","``std::allocator``\ 's constructors should be ``constexpr``\ ","2018-03 (Jacksonville)","|Complete|","","`#103788 `__","" +"`LWG3039 `__","Unnecessary ``decay``\ in ``thread``\ and ``packaged_task``\ ","2018-03 (Jacksonville)","|Complete|","","`#103789 `__","" +"`LWG3041 `__","Unnecessary ``decay``\ in ``reference_wrapper``\ ","2018-03 (Jacksonville)","|Complete|","","`#103790 `__","" +"`LWG3042 `__","``is_literal_type_v``\ should be inline","2018-03 (Jacksonville)","|Complete|","","`#103791 `__","" +"`LWG3043 `__","Bogus postcondition for ``filesystem_error``\ constructor","2018-03 (Jacksonville)","|Complete|","","`#103792 `__","" +"`LWG3045 `__","``atomic``\ doesn't have ``value_type``\ or ``difference_type``\ ","2018-03 (Jacksonville)","|Complete|","18","`#103793 `__","" +"`LWG3048 `__","``transform_reduce(exec, first1, last1, first2, init)``\ discards execution policy","2018-03 (Jacksonville)","|Complete|","17","`#103794 `__","" +"`LWG3051 `__","Floating point classifications were inadvertently changed in P0175","2018-03 (Jacksonville)","|Nothing To Do|","","`#103795 `__","" +"`LWG3075 `__","``basic_string``\ needs deduction guides from ``basic_string_view``\ ","2018-03 (Jacksonville)","|Complete|","","`#103796 `__","" +"","","","","","","" +"`LWG2139 `__","What is a user-defined type?","2018-06 (Rapperswil)","","","`#100233 `__","" +"`LWG2970 `__","Return type of std::visit misspecified","2018-06 (Rapperswil)","|Complete|","11","`#103797 `__","" +"`LWG3058 `__","Parallel adjacent_difference shouldn't require creating temporaries","2018-06 (Rapperswil)","","","`#100234 `__","" +"`LWG3062 `__","Unnecessary decay_t in is_execution_policy_v should be remove_cvref_t","2018-06 (Rapperswil)","|Complete|","17","`#100235 `__","" +"`LWG3067 `__","recursive_directory_iterator::pop must invalidate","2018-06 (Rapperswil)","|Nothing To Do|","","`#103798 `__","" +"`LWG3071 `__","[networking.ts] read_until still refers to ""input sequence""","2018-06 (Rapperswil)","|Nothing To Do|","","`#103799 `__","" +"`LWG3074 `__","Non-member functions for valarray should only deduce from the valarray","2018-06 (Rapperswil)","","","`#100236 `__","" +"`LWG3076 `__","basic_string CTAD ambiguity","2018-06 (Rapperswil)","|Complete|","","`#103800 `__","" +"`LWG3079 `__","LWG 2935 forgot to fix the existing_p overloads of create_directory","2018-06 (Rapperswil)","|Nothing To Do|","","`#103801 `__","" +"`LWG3080 `__","Floating point from_chars pattern specification breaks round-tripping","2018-06 (Rapperswil)","","","`#100237 `__","" +"`LWG3083 `__","What should ios::iword(-1) do?","2018-06 (Rapperswil)","|Nothing To Do|","","`#103802 `__","" +"`LWG3094 `__","[time.duration.io]p4 makes surprising claims about encoding","2018-06 (Rapperswil)","","","`#100238 `__","" +"`LWG3100 `__","Unnecessary and confusing ""empty span"" wording","2018-06 (Rapperswil)","|Nothing To Do|","","`#103803 `__","" +"`LWG3102 `__","Clarify span iterator and ``const_iterator`` behavior","2018-06 (Rapperswil)","|Complete|","","`#103804 `__","" +"`LWG3104 `__","Fixing duration division","2018-06 (Rapperswil)","|Complete|","","`#103805 `__","" +"","","","","","","" +"`LWG2183 `__","Muddled allocator requirements for ``match_results``\ constructors","2018-11 (San Diego)","|Complete|","","`#103806 `__","" +"`LWG2184 `__","Muddled allocator requirements for ``match_results``\ assignments","2018-11 (San Diego)","|Complete|","","`#103807 `__","" +"`LWG2412 `__","``promise::set_value()``\ and ``promise::get_future()``\ should not race","2018-11 (San Diego)","","","`#100239 `__","" +"`LWG2499 `__","``operator>>(basic_istream&, CharT*)``\ makes it hard to avoid buffer overflows","2018-11 (San Diego)","|Nothing To Do|","","`#103808 `__","Resolved by `P0487R1 `__" +"`LWG2682 `__","``filesystem::copy()``\ won't create a symlink to a directory","2018-11 (San Diego)","|Nothing To Do|","","`#103504 `__","" +"`LWG2697 `__","[concurr.ts] Behavior of ``future/shared_future``\ unwrapping constructor when given an invalid ``future``\ ","2018-11 (San Diego)","","","`#100240 `__","" +"`LWG2797 `__","Trait precondition violations","2018-11 (San Diego)","|Nothing To Do|","","`#103809 `__","Resolved by `P1285R0 `__" +"`LWG2936 `__","Path comparison is defined in terms of the generic format","2018-11 (San Diego)","|Complete|","","`#103810 `__","" +"`LWG2943 `__","Problematic specification of the wide version of ``basic_filebuf::open``\ ","2018-11 (San Diego)","|Nothing To Do|","","`#103811 `__","" +"`LWG2960 `__","[fund.ts.v3] ``nonesuch``\ is insufficiently useless","2018-11 (San Diego)","|Complete|","","`#103812 `__","" +"`LWG2995 `__","``basic_stringbuf``\ default constructor forbids it from using SSO capacity","2018-11 (San Diego)","|Complete|","20","`#100242 `__","" +"`LWG2996 `__","Missing rvalue overloads for ``shared_ptr``\ operations","2018-11 (San Diego)","|Complete|","17","`#103813 `__","" +"`LWG3008 `__","``make_shared``\ (sub)object destruction semantics are not specified","2018-11 (San Diego)","|Complete|","16","`#103814 `__","" +"`LWG3022 `__","``is_convertible``\ may lead to ODR","2018-11 (San Diego)","|Nothing To Do|","","`#103815 `__","Resolved by `P1285R0 `__" +"`LWG3025 `__","Map-like container deduction guides should use ``pair``\ , not ``pair``\ ","2018-11 (San Diego)","|Complete|","","`#103817 `__","" +"`LWG3031 `__","Algorithms and predicates with non-const reference arguments","2018-11 (San Diego)","","","`#100243 `__","" +"`LWG3037 `__","``polymorphic_allocator``\ and incomplete types","2018-11 (San Diego)","|Complete|","16","`#103818 `__","" +"`LWG3038 `__","``polymorphic_allocator::allocate``\ should not allow integer overflow to create vulnerabilities","2018-11 (San Diego)","|Complete|","14","`#103819 `__","" +"`LWG3054 `__","``uninitialized_copy``\ appears to not be able to meet its exception-safety guarantee","2018-11 (San Diego)","|Nothing To Do|","","`#103820 `__","" +"`LWG3065 `__","LWG 2989 missed that all ``path``\ 's other operators should be hidden friends as well","2018-11 (San Diego)","|Complete|","","`#103821 `__","" +"`LWG3096 `__","``path::lexically_relative``\ is confused by trailing slashes","2018-11 (San Diego)","|Complete|","","`#103822 `__","" +"`LWG3116 `__","``OUTERMOST_ALLOC_TRAITS``\ needs ``remove_reference_t``\ ","2018-11 (San Diego)","","","`#100244 `__","" +"`LWG3122 `__","``__cpp_lib_chrono_udls``\ was accidentally dropped","2018-11 (San Diego)","|Complete|","","`#103823 `__","" +"`LWG3127 `__","``basic_osyncstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Complete|","18","`#103824 `__","" +"`LWG3128 `__","``strstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Nothing To Do|","","`#103825 `__","" +"`LWG3129 `__","``regex_token_iterator``\ constructor uses wrong pointer arithmetic","2018-11 (San Diego)","","","`#100245 `__","" +"`LWG3130 `__","|sect|\ [input.output] needs many ``addressof``\ ","2018-11 (San Diego)","|Complete|","20","`#100246 `__","" +"`LWG3131 `__","``addressof``\ all the things","2018-11 (San Diego)","","","`#100248 `__","" +"`LWG3132 `__","Library needs to ban macros named ``expects``\ or ``ensures``\ ","2018-11 (San Diego)","|Nothing To Do|","","`#103826 `__","" +"`LWG3134 `__","[fund.ts.v3] LFTSv3 contains extraneous [meta] variable templates that should have been deleted by P09961","2018-11 (San Diego)","|Nothing To Do|","","`#103827 `__","Resolved by `P1210R0 `__" +"`LWG3137 `__","Header for ``__cpp_lib_to_chars``\ ","2018-11 (San Diego)","|Complete|","","`#103828 `__","" +"`LWG3140 `__","``COMMON_REF``\ is unimplementable as specified","2018-11 (San Diego)","|Nothing To Do|","","`#103829 `__","" +"`LWG3145 `__","``file_clock``\ breaks ABI for C++17 implementations","2018-11 (San Diego)","|Complete|","","`#103830 `__","" +"`LWG3147 `__","Definitions of ""likely"" and ""unlikely"" are likely to cause problems","2018-11 (San Diego)","|Nothing To Do|","","`#100249 `__","" +"`LWG3148 `__","````\ should be freestanding","2018-11 (San Diego)","","","`#100250 `__","" +"`LWG3153 `__","``Common``\ and ``common_type``\ have too little in common","2018-11 (San Diego)","|Complete|","13","`#103831 `__","" +"`LWG3154 `__","``Common``\ and ``CommonReference``\ have a common defect","2018-11 (San Diego)","|Nothing To Do|","","`#103832 `__","" +"","","","","","","" +"`LWG3012 `__","``atomic``\ is unimplementable for non-``is_trivially_copy_constructible T``\ ","2019-02 (Kona)","","","`#100252 `__","" +"`LWG3040 `__","``basic_string_view::starts_with``\ *Effects* are incorrect","2019-02 (Kona)","|Complete|","","`#103834 `__","" +"`LWG3077 `__","``(push|emplace)_back``\ should invalidate the ``end``\ iterator","2019-02 (Kona)","|Nothing To Do|","","`#103835 `__","" +"`LWG3087 `__","One final ``&x``\ in |sect|\ [list.ops]","2019-02 (Kona)","|Nothing To Do|","","`#103836 `__","" +"`LWG3101 `__","``span``\ 's ``Container``\ constructors need another constraint","2019-02 (Kona)","|Complete|","","`#103837 `__","" +"`LWG3112 `__","``system_error``\ and ``filesystem_error``\ constructors taking a ``string``\ may not be able to meet their postconditions","2019-02 (Kona)","|Nothing To Do|","","`#100253 `__","" +"`LWG3119 `__","Program-definedness of closure types","2019-02 (Kona)","|Nothing To Do|","","`#103838 `__","" +"`LWG3133 `__","Modernizing numeric type requirements","2019-02 (Kona)","","","`#100254 `__","" +"`LWG3144 `__","``span``\ does not have a ``const_pointer``\ typedef","2019-02 (Kona)","|Complete|","","`#103839 `__","" +"`LWG3173 `__","Enable CTAD for ``ref-view``\ ","2019-02 (Kona)","|Complete|","15","`#103840 `__","" +"`LWG3179 `__","``subrange``\ should always model ``Range``\ ","2019-02 (Kona)","|Nothing To Do|","","`#103842 `__","" +"`LWG3180 `__","Inconsistently named return type for ``ranges::minmax_element``\ ","2019-02 (Kona)","|Complete|","15","`#103844 `__","" +"`LWG3182 `__","Specification of ``Same``\ could be clearer","2019-02 (Kona)","|Complete|","15","`#103845 `__","" +"","","","","","","" +"`LWG2899 `__","``is_(nothrow_)move_constructible``\ and ``tuple``\ , ``optional``\ and ``unique_ptr``\ ","2019-07 (Cologne)","","","`#100255 `__","" +"`LWG3055 `__","``path::operator+=(*single-character*)``\ misspecified","2019-07 (Cologne)","|Complete|","7","`#103846 `__","" +"`LWG3158 `__","``tuple(allocator_arg_t, const Alloc&)``\ should be conditionally explicit","2019-07 (Cologne)","|Complete|","10","`#103847 `__","" +"`LWG3169 `__","``ranges``\ permutation generators discard useful information","2019-07 (Cologne)","|Complete|","15","`#103848 `__","" +"`LWG3183 `__","Normative permission to specialize Ranges variable templates","2019-07 (Cologne)","|Nothing To Do|","","`#103849 `__","" +"`LWG3184 `__","Inconsistencies in ``bind_front``\ wording","2019-07 (Cologne)","|Complete|","13","`#103850 `__","" +"`LWG3185 `__","Uses-allocator construction functions missing ``constexpr``\ and ``noexcept``\ ","2019-07 (Cologne)","|Complete|","16","`#103851 `__","" +"`LWG3186 `__","``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful information","2019-07 (Cologne)","|Complete|","15","`#103852 `__","" +"`LWG3187 `__","`P0591R4 `__ reverted DR 2586 fixes to ``scoped_allocator_adaptor::construct()``\ ","2019-07 (Cologne)","","","`#100256 `__","" +"`LWG3191 `__","``std::ranges::shuffle``\ synopsis does not match algorithm definition","2019-07 (Cologne)","|Complete|","15","`#103853 `__","" +"`LWG3196 `__","``std::optional``\ is ill-formed is ``T``\ is an array","2019-07 (Cologne)","|Complete|","","`#103854 `__","" +"`LWG3198 `__","Bad constraint on ``std::span::span()``\ ","2019-07 (Cologne)","|Complete|","","`#103856 `__","" +"`LWG3199 `__","``istream >> bitset<0>``\ fails","2019-07 (Cologne)","|Complete|","10","`#100257 `__","" +"`LWG3202 `__","P0318R1 was supposed to be revised","2019-07 (Cologne)","|Complete|","","`#103857 `__","" +"`LWG3206 `__","``year_month_day``\ conversion to ``sys_days``\ uses not-existing member function","2019-07 (Cologne)","|Complete|","","`#103858 `__","" +"`LWG3208 `__","``Boolean``\ 's expression requirements are ordered inconsistently","2019-07 (Cologne)","|Nothing To Do|","","`#103860 `__","" +"`LWG3209 `__","Expression in ``year::ok()``\ returns clause is ill-formed","2019-07 (Cologne)","|Complete|","","`#103861 `__","" +"","","","","","","" +"`LWG3231 `__","``year_month_day_last::day``\ specification does not cover ``!ok()``\ values","2019-11 (Belfast)","|Nothing To Do|","","`#103862 `__","" +"`LWG3225 `__","``zoned_time``\ converting constructor shall not be ``noexcept``\ ","2019-11 (Belfast)","|Complete|","19","`#103863 `__","" +"`LWG3190 `__","``std::allocator::allocate``\ sometimes returns too little storage","2019-11 (Belfast)","|Complete|","14","`#103864 `__","" +"`LWG3218 `__","Modifier for ``%d``\ parse flag does not match POSIX and ``format``\ specification","2019-11 (Belfast)","","","`#100258 `__","" +"`LWG3224 `__","``zoned_time``\ constructor from ``TimeZonePtr``\ does not specify initialization of ``tp_``\ ","2019-11 (Belfast)","|Complete|","19","`#103865 `__","" +"`LWG3230 `__","Format specifier ``%y/%Y``\ is missing locale alternative versions","2019-11 (Belfast)","|Complete|","16","`#103868 `__","" +"`LWG3232 `__","Inconsistency in ``zoned_time``\ deduction guides","2019-11 (Belfast)","|Complete|","19","`#103869 `__","" +"`LWG3222 `__","P0574R1 introduced preconditions on non-existent parameters","2019-11 (Belfast)","","","`#100259 `__","" +"`LWG3221 `__","Result of ``year_month``\ arithmetic with ``months``\ is ambiguous","2019-11 (Belfast)","|Complete|","8","`#103870 `__","" +"`LWG3235 `__","``parse``\ manipulator without abbreviation is not callable","2019-11 (Belfast)","","","`#100262 `__","" +"`LWG3246 `__","LWG3246: What are the constraints on the template parameter of `basic_format_arg`?","2019-11 (Belfast)","|Nothing To Do|","","`#100263 `__","" +"`LWG3253 `__","``basic_syncbuf::basic_syncbuf()``\ should not be explicit","2019-11 (Belfast)","|Complete|","20","`#100264 `__","" +"`LWG3245 `__","Unnecessary restriction on ``'%p'``\ parse specifier","2019-11 (Belfast)","","","`#100265 `__","" +"`LWG3244 `__","Constraints for ``Source``\ in |sect|\ [fs.path.req] insufficiently constrainty","2019-11 (Belfast)","","","`#100266 `__","" +"`LWG3241 `__","``chrono-spec``\ grammar ambiguity in |sect|\ [time.format]","2019-11 (Belfast)","|Complete|","16","`#103871 `__","" +"`LWG3257 `__","Missing feature testing macro update from P0858","2019-11 (Belfast)","|Complete|","12","`#103873 `__","" +"`LWG3256 `__","Feature testing macro for ``constexpr``\ algorithms","2019-11 (Belfast)","|Complete|","13","`#103874 `__","" +"`LWG3273 `__","Specify ``weekday_indexed``\ to range of ``[0, 7]``\ ","2019-11 (Belfast)","|Complete|","16","`#103875 `__","" +"`LWG3070 `__","``path::lexically_relative``\ causes surprising results if a filename can also be a *root-name*","2019-11 (Belfast)","","","`#100267 `__","" +"`LWG3266 `__","``to_chars(bool)``\ should be deleted","2019-11 (Belfast)","|Complete|","14","`#103876 `__","" +"`LWG3272 `__","``%I%p``\ should parse/format ``duration``\ since midnight","2019-11 (Belfast)","","","`#100268 `__","" +"`LWG3259 `__","The definition of *constexpr iterators* should be adjusted","2019-11 (Belfast)","|Nothing To Do|","","`#103877 `__","" +"`LWG3103 `__","Errors in taking subview of ``span``\ should be ill-formed where possible","2019-11 (Belfast)","|Complete|","11","`#103878 `__","" +"`LWG3274 `__","Missing feature test macro for ````\ ","2019-11 (Belfast)","|Complete|","11","`#103880 `__","" +"`LWG3276 `__","Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ ","2019-11 (Belfast)","|Complete|","15","`#103881 `__","" +"`LWG3277 `__","Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ ","2019-11 (Belfast)","|Nothing To Do|","","`#103882 `__","" +"`LWG3149 `__","``DefaultConstructible``\ should require default initialization","2019-11 (Belfast)","|Complete|","13","`#103883 `__","" +"","","","","","","" +"`LWG1203 `__","More useful rvalue stream insertion","2020-02 (Prague)","|Complete|","12","`#103884 `__","" +"`LWG2859 `__","Definition of *reachable* in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object","2020-02 (Prague)","","","`#100269 `__","" +"`LWG3018 `__","``shared_ptr``\ of function type","2020-02 (Prague)","|Nothing To Do|","","`#103885 `__","" +"`LWG3050 `__","Conversion specification problem in ``chrono::duration``\ constructor","2020-02 (Prague)","|Complete|","19","`#103887 `__","" +"`LWG3141 `__","``CopyConstructible``\ doesn't preserve source values","2020-02 (Prague)","|Nothing To Do|","","`#103889 `__","" +"`LWG3150 `__","``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ ","2020-02 (Prague)","|Complete|","13","`#103890 `__","" +"`LWG3175 `__","The ``CommonReference``\ requirement of concept ``SwappableWith``\ is not satisfied in the example","2020-02 (Prague)","|Complete|","13","`#103891 `__","" +"`LWG3194 `__","``ConvertibleTo``\ prose does not match code","2020-02 (Prague)","|Complete|","13","`#103892 `__","" +"`LWG3200 `__","``midpoint``\ should not constrain ``T``\ is complete","2020-02 (Prague)","|Nothing To Do|","","`#103893 `__","" +"`LWG3201 `__","``lerp``\ should be marked as ``noexcept``\ ","2020-02 (Prague)","|Complete|","","`#103894 `__","" +"`LWG3226 `__","``zoned_time``\ constructor from ``string_view``\ should accept ``zoned_time``\ ","2020-02 (Prague)","|Complete|","19","`#103896 `__","" +"`LWG3233 `__","Broken requirements for ``shared_ptr``\ converting constructors","2020-02 (Prague)","|Complete|","19","`#103897 `__","" +"`LWG3237 `__","LWG 3038 and 3190 have inconsistent PRs","2020-02 (Prague)","|Complete|","16","`#103899 `__","" +"`LWG3238 `__","Insufficiently-defined behavior of ``std::function``\ deduction guides","2020-02 (Prague)","|Nothing To Do|","","`#103901 `__","" +"`LWG3242 `__","``std::format``\ : missing rules for ``arg-id``\ in ``width``\ and ``precision``\ ","2020-02 (Prague)","|Complete|","14","`#103902 `__","" +"`LWG3243 `__","``std::format``\ and negative zeroes","2020-02 (Prague)","|Complete|","14","`#103904 `__","" +"`LWG3247 `__","``ranges::iter_move``\ should perform ADL-only lookup of ``iter_move``\ ","2020-02 (Prague)","|Complete|","15","`#103906 `__","" +"`LWG3248 `__","``std::format``\ ``#b``\ , ``#B``\ , ``#o``\ , ``#x``\ , and ``#X``\ presentation types misformat negative numbers","2020-02 (Prague)","|Complete|","14","`#103907 `__","" +"`LWG3250 `__","``std::format``\ : ``#``\ (alternate form) for NaN and inf","2020-02 (Prague)","|Complete|","14","`#103908 `__","" +"`LWG3251 `__","Are ``std::format``\ alignment specifiers applied to string arguments?","2020-02 (Prague)","|Complete|","14","`#103909 `__","" +"`LWG3252 `__","Parse locale's aware modifiers for commands are not consistent with POSIX spec","2020-02 (Prague)","","","`#100271 `__","" +"`LWG3254 `__","Strike ``stop_token``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17","`#103910 `__","" +"`LWG3255 `__","``span``\ 's ``array``\ constructor is too strict","2020-02 (Prague)","|Complete|","","`#103911 `__","" +"`LWG3260 `__","``year_month*``\ arithmetic rejects durations convertible to years","2020-02 (Prague)","","","`#100274 `__","" +"`LWG3262 `__","Formatting of negative durations is not specified","2020-02 (Prague)","|Complete|","16","`#103912 `__","" +"`LWG3264 `__","``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ ","2020-02 (Prague)","|Complete|","15","`#103913 `__","" +"`LWG3269 `__","Parse manipulators do not specify the result of the extraction from stream","2020-02 (Prague)","","","`#100275 `__","" +"`LWG3270 `__","Parsing and formatting ``%j``\ with ``duration``\ s","2020-02 (Prague)","|Partial|","","`#100418 `__","" +"`LWG3280 `__","View converting constructors can cause constraint recursion and are unneeded","2020-02 (Prague)","|Complete|","15","`#103914 `__","" +"`LWG3281 `__","Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion","2020-02 (Prague)","|Complete|","13","`#103915 `__","" +"`LWG3282 `__","``subrange``\ converting constructor should disallow derived to base conversions","2020-02 (Prague)","|Complete|","15","`#103916 `__","" +"`LWG3284 `__","``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negate","2020-02 (Prague)","|Nothing To Do|","","`#103918 `__","" +"`LWG3285 `__","The type of a customization point object shall satisfy ``semiregular``\ ","2020-02 (Prague)","|Nothing To Do|","","`#103919 `__","" +"`LWG3286 `__","``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range","2020-02 (Prague)","|Complete|","15","`#103920 `__","" +"`LWG3291 `__","``iota_view::iterator``\ has the wrong ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15","`#103921 `__","" +"`LWG3292 `__","``iota_view``\ is under-constrained","2020-02 (Prague)","|Complete|","15","`#103922 `__","" +"`LWG3294 `__","``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ ","2020-02 (Prague)","|Complete|","19","`#103924 `__","" +"`LWG3296 `__","Inconsistent default argument for ``basic_regex<>::assign``\ ","2020-02 (Prague)","|Complete|","","`#103925 `__","" +"`LWG3299 `__","Pointers don't need customized iterator behavior","2020-02 (Prague)","|Complete|","15","`#103926 `__","" +"`LWG3300 `__","Non-array ``ssize``\ overload is underconstrained","2020-02 (Prague)","|Nothing To Do|","","`#103929 `__","" +"`LWG3301 `__","``transform_view::iterator``\ has incorrect ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15","`#103932 `__","" +"`LWG3302 `__","Range adaptor objects ``keys``\ and ``values``\ are unspecified","2020-02 (Prague)","|Complete|","16","`#103933 `__","" +"`LWG3303 `__","Bad ""``constexpr``\ "" marker for ``destroy/destroy_n``\ ","2020-02 (Prague)","","","`#101693 `__","" +"`LWG3304 `__","Allocate functions of ``std::polymorphic_allocator``\ should require ``[[nodiscard]]``\ ","2020-02 (Prague)","|Complete|","16","`#103934 `__","" +"`LWG3307 `__","``std::allocator().allocate(n)``\ ","2020-02 (Prague)","|Complete|","20","`#100422 `__","" +"`LWG3310 `__","Replace ``SIZE_MAX``\ with ``numeric_limits::max()``\ ","2020-02 (Prague)","|Complete|","16","`#103936 `__","" +"`LWG3313 `__","``join_view::iterator::operator--``\ is incorrectly constrained","2020-02 (Prague)","|Complete|","14","`#103937 `__","" +"`LWG3314 `__","Is stream insertion behavior locale dependent when ``Period::type``\ is ``micro``\ ?","2020-02 (Prague)","|Complete|","16","`#103940 `__","" +"`LWG3315 `__","Correct Allocator Default Behavior","2020-02 (Prague)","|Complete|","","`#100426 `__","" +"`LWG3316 `__","Correctly define epoch for ``utc_clock``\ / ``utc_timepoint``\ ","2020-02 (Prague)","","","`#100428 `__","" +"`LWG3317 `__","Incorrect ``operator<<``\ for floating-point durations","2020-02 (Prague)","|Complete|","16","`#100429 `__","" +"`LWG3318 `__","Clarify whether clocks can represent time before their epoch","2020-02 (Prague)","","","`#100430 `__","" +"`LWG3319 `__","Properly reference specification of IANA time zone database","2020-02 (Prague)","|Nothing To Do|","","`#103941 `__","" +"`LWG3320 `__","``span::cbegin/cend``\ methods produce different results than ``std::[ranges::]cbegin/cend``\ ","2020-02 (Prague)","|Complete|","","`#103942 `__","" +"`LWG3321 `__","``uninitialized_construct_using_allocator``\ should use ``construct_at``\ ","2020-02 (Prague)","|Complete|","16","`#103943 `__","" +"`LWG3323 `__","``*has-tuple-element*``\ helper concept needs ``convertible_to``\ ","2020-02 (Prague)","|Complete|","16","`#103944 `__","" +"`LWG3324 `__","Special-case ``std::strong/weak/partial_order``\ for pointers","2020-02 (Prague)","|Complete|","14","`#103945 `__","" +"`LWG3325 `__","Constrain return type of transformation function for ``transform_view``\ ","2020-02 (Prague)","|Complete|","15","`#103947 `__","" +"`LWG3326 `__","``enable_view``\ has false positives","2020-02 (Prague)","|Complete|","15","`#103948 `__","" +"`LWG3327 `__","Format alignment specifiers vs. text direction","2020-02 (Prague)","|Nothing To Do|","","`#103949 `__","" +"`LWG3328 `__","Clarify that ``std::string``\ is not good for UTF-8","2020-02 (Prague)","|Nothing To Do|","","`#100431 `__","" +"`LWG3329 `__","``totally_ordered_with``\ both directly and indirectly requires ``common_reference_with``\ ","2020-02 (Prague)","|Complete|","13","`#103950 `__","" +"`LWG3330 `__","Include ````\ from most library headers","2020-02 (Prague)","|Complete|","13","`#103951 `__","" +"`LWG3331 `__","Define ``totally_ordered/_with``\ in terms of ``partially-ordered-with``\ ","2020-02 (Prague)","|Complete|","13","`#103952 `__","" +"`LWG3332 `__","Issue in |sect|\ [time.format]","2020-02 (Prague)","|Complete|","16","`#103953 `__","" +"`LWG3334 `__","``basic_osyncstream``\ move assignment and destruction calls ``basic_syncbuf::emit()``\ twice","2020-02 (Prague)","|Complete|","18","`#103954 `__","" +"`LWG3335 `__","Resolve C++20 NB comments US 273 and GB 274","2020-02 (Prague)","|Complete|","15","`#103955 `__","" +"`LWG3338 `__","Rename ``default_constructible``\ to ``default_initializable``\ ","2020-02 (Prague)","|Complete|","13","`#103956 `__","" +"`LWG3340 `__","Formatting functions should throw on argument/format string mismatch in |sect|\ [format.functions]","2020-02 (Prague)","|Complete|","14","`#103957 `__","" +"`LWG3346 `__","``pair``\ and ``tuple``\ copy and move constructor have backwards specification","2020-02 (Prague)","|Nothing To Do|","","`#103958 `__","" +"`LWG3347 `__","``std::pair``\ now requires ``T``\ and ``U``\ to be less-than-comparable","2020-02 (Prague)","|Complete|","17","`#103959 `__","" +"`LWG3348 `__","``__cpp_lib_unwrap_ref``\ in wrong header","2020-02 (Prague)","|Complete|","12","`#103960 `__","" +"`LWG3349 `__","Missing ``__cpp_lib_constexpr_complex``\ for P0415R1","2020-02 (Prague)","|Complete|","16","`#103961 `__","" +"`LWG3350 `__","Simplify return type of ``lexicographical_compare_three_way``\ ","2020-02 (Prague)","|Complete|","17","`#103962 `__","" +"`LWG3351 `__","``ranges::enable_safe_range``\ should not be constrained","2020-02 (Prague)","|Complete|","15","`#103963 `__","" +"`LWG3352 `__","``strong_equality``\ isn't a thing","2020-02 (Prague)","|Complete|","19","`#103964 `__","" +"`LWG3354 `__","``has_strong_structural_equality``\ has a meaningless definition","2020-02 (Prague)","|Nothing To Do|","","`#103965 `__","" +"`LWG3355 `__","The memory algorithms should support move-only input iterators introduced by P1207","2020-02 (Prague)","|Complete|","15","`#103966 `__","" +"`LWG3356 `__","``__cpp_lib_nothrow_convertible``\ should be ``__cpp_lib_is_nothrow_convertible``\ ","2020-02 (Prague)","|Complete|","12","`#103967 `__","" +"`LWG3358 `__","|sect|\ [span.cons] is mistaken that ``to_address``\ can throw","2020-02 (Prague)","|Complete|","17","`#103968 `__","" +"`LWG3359 `__","````\ leap second support should allow for negative leap seconds","2020-02 (Prague)","|Complete|","21","`#100432 `__","" +"`LWG3360 `__","``three_way_comparable_with``\ is inconsistent with similar concepts","2020-02 (Prague)","|Nothing To Do|","","`#103969 `__","" +"`LWG3362 `__","Strike ``stop_source``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17","`#100433 `__","" +"`LWG3363 `__","``drop_while_view``\ should opt-out of ``sized_range``\ ","2020-02 (Prague)","|Nothing To Do|","","`#103970 `__","" +"`LWG3364 `__","Initialize data members of ranges and their iterators","2020-02 (Prague)","|Complete|","16","`#103971 `__","" +"`LWG3367 `__","Integer-class conversions should not throw","2020-02 (Prague)","|Nothing To Do|","","`#103973 `__","" +"`LWG3369 `__","``span``\ 's deduction-guide for built-in arrays doesn't work","2020-02 (Prague)","|Complete|","14","`#103974 `__","" +"`LWG3371 `__","``visit_format_arg``\ and ``make_format_args``\ are not hidden friends","2020-02 (Prague)","|Complete|","14","`#103975 `__","" +"`LWG3372 `__","``vformat_to``\ should not try to deduce ``Out``\ twice","2020-02 (Prague)","|Complete|","14","`#103976 `__","" +"`LWG3373 `__","``{to,from}_chars_result``\ and ``format_to_n_result``\ need the ""we really mean what we say"" wording","2020-02 (Prague)","|Complete|","14","`#103977 `__","" +"`LWG3374 `__","P0653 + P1006 should have made the other ``std::to_address``\ overload ``constexpr``\ ","2020-02 (Prague)","|Complete|","12","`#103978 `__","" +"`LWG3375 `__","``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ ","2020-02 (Prague)","|Complete|","15","`#103979 `__","" +"`LWG3377 `__","``elements_view::iterator``\ befriends a specialization of itself","2020-02 (Prague)","|Nothing To Do|","","`#103981 `__","" +"`LWG3379 `__","""``safe``\ "" in several library names is misleading","2020-02 (Prague)","|Complete|","15","`#103982 `__","" +"`LWG3380 `__","``common_type``\ and comparison categories","2020-02 (Prague)","|Complete|","15","`#103983 `__","" +"`LWG3381 `__","``begin``\ and ``data``\ must agree for ``contiguous_range``\ ","2020-02 (Prague)","|Nothing To Do|","","`#103984 `__","" +"`LWG3382 `__","NTTP for ``pair``\ and ``array``\ ","2020-02 (Prague)","|Nothing To Do|","","`#103985 `__","" +"`LWG3383 `__","|sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ ","2020-02 (Prague)","|Complete|","19","`#103987 `__","" +"`LWG3384 `__","``transform_view::*sentinel*``\ has an incorrect ``operator-``\ ","2020-02 (Prague)","|Complete|","15","`#103988 `__","" +"`LWG3385 `__","``common_iterator``\ is not sufficiently constrained for non-copyable iterators","2020-02 (Prague)","|Complete|","15","`#103989 `__","" +"`LWG3387 `__","|sect|\ [range.reverse.view] ``reverse_view``\ unintentionally requires ``range``\ ","2020-02 (Prague)","|Complete|","15","`#103990 `__","" +"`LWG3388 `__","``view``\ iterator types have ill-formed ``<=>``\ operators","2020-02 (Prague)","|Complete|","16","`#103991 `__","" +"`LWG3389 `__","A move-only iterator still does not have a ``counted_iterator``\ ","2020-02 (Prague)","|Complete|","15","`#103992 `__","" +"`LWG3390 `__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","2020-02 (Prague)","|Complete|","14","`#103993 `__","" +"`LWG3393 `__","Missing/incorrect feature test macro for coroutines","2020-02 (Prague)","|Complete|","14","`#103994 `__","" +"`LWG3395 `__","Definition for three-way comparison needs to be updated (US 152)","2020-02 (Prague)","|Nothing To Do|","","`#100434 `__","" +"`LWG3396 `__","Clarify point of reference for ``source_location::current()``\ (DE 169)","2020-02 (Prague)","|Nothing To Do|","16","`#103995 `__","" +"`LWG3397 `__","``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ ","2020-02 (Prague)","|Complete|","16","`#103996 `__","" +"`LWG3398 `__","``tuple_element_t``\ is also wrong for ``const subrange``\ ","2020-02 (Prague)","|Complete|","14","`#103997 `__","" +"","","","","","","" +"`LWG3446 `__","``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ ","2020-11 (Virtual)","|Complete|","13","`#103998 `__","" diff --git a/libcxx/docs/Status/Cxx20Papers.csv b/libcxx/docs/Status/Cxx20Papers.csv index e692bb2dc088b..ae3689867ffeb 100644 --- a/libcxx/docs/Status/Cxx20Papers.csv +++ b/libcxx/docs/Status/Cxx20Papers.csv @@ -1,206 +1,206 @@ -"Paper #","Paper Name","Meeting","Status","First released version","Notes" -"`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","The feature-test macro was not set until LLVM 20." -"`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","" -"`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|","21","It was previously erroneously marked as complete in LLVM 7." -"`P0768R1 `__","Library Support for the Spaceship (Comparison) Operator","2017-11 (Albuquerque)","|Complete|","","" -"`P0777R1 `__","Treating Unnecessary ``decay``\ ","2017-11 (Albuquerque)","|Complete|","7","" -"","","","","","" -"`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","" -"`P0753R2 `__","Manipulators for C++ Synchronized Buffered Ostream","2018-03 (Jacksonville)","","","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`P0887R1 `__","The identity metafunction","2018-06 (Rapperswil)","|Complete|","8","" -"`P0892R2 `__","P0892R2: explicit(bool)","2018-06 (Rapperswil)","|Nothing To Do|","","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","The feature-test macro was not set until LLVM 20." -"`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","" -"`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","" -"`P1285R0 `__","Improving Completeness Requirements for Type Traits","2018-11 (San Diego)","","","" -"`P1353R0 `__","Missing feature test macros","2018-11 (San Diego)","|Complete|","19","" -"","","","","","" -"`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","" -"`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","" -"`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","" -"`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","" -"","","","","","" -"`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","" -"`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)","|Complete|","21","" -"`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","" -"`P1502R1 `__","Standard library header units for C++20","2019-07 (Cologne)","","","" -"`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","" -"`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","" -"","","","","","" -"`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","" -"`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","" -"`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)","","","" -"`P1721R2 `__","Mandating the Standard Library: Clause 29 - Input/Output library","2019-11 (Belfast)","","","" -"`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","" -"`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","" -"`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","" -"`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","" -"`P1831R1 `__","Deprecating volatile: library","2020-02 (Prague)","","","" -"`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 `__","P1963R0: Fixing US 313","2020-02 (Prague)","|Nothing To Do|","","" -"`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","The feature-test macro was not set until LLVM 20." -"`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 `__","P2045R1: Missing Mandates for the standard library","2020-02 (Prague)","|Nothing To Do|","","" -"`P2085R0 `__","Consistent defaulted comparisons","2020-02 (Prague)","","","" -"`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","" -"`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","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)","|Complete|","21","" -"`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","" +"Paper #","Paper Name","Meeting","Status","First released version","Github issue","Notes" +"`P0463R1 `__","Endian just Endian","2017-07 (Toronto)","|Complete|","7","`#103999 `__","" +"`P0674R1 `__","Extending make_shared to Support Arrays","2017-07 (Toronto)","|Complete|","15","`#104000 `__","" +"","","","","","","" +"`P0020R6 `__","Floating Point Atomic","2017-11 (Albuquerque)","|Complete|","18","`#104001 `__","The feature-test macro was not set until LLVM 20." +"`P0053R7 `__","C++ Synchronized Buffered Ostream","2017-11 (Albuquerque)","|Complete|","18","`#104002 `__","" +"`P0202R3 `__","Add constexpr modifiers to functions in and Headers","2017-11 (Albuquerque)","|Complete|","12","`#104003 `__","" +"`P0415R1 `__","Constexpr for ``std::complex``\ ","2017-11 (Albuquerque)","|Complete|","16","`#104004 `__","" +"`P0439R0 `__","Make ``std::memory_order``\ a scoped enumeration","2017-11 (Albuquerque)","|Complete|","","`#104005 `__","" +"`P0457R2 `__","String Prefix and Suffix Checking","2017-11 (Albuquerque)","|Complete|","6","`#104006 `__","" +"`P0550R2 `__","Transformation Trait ``remove_cvref``\ ","2017-11 (Albuquerque)","|Complete|","6","`#104007 `__","" +"`P0600R1 `__","nodiscard in the Library","2017-11 (Albuquerque)","|Complete|","16","`#104010 `__","" +"`P0616R0 `__","de-pessimize legacy algorithms with std::move","2017-11 (Albuquerque)","|Complete|","12","`#104011 `__","" +"`P0653R2 `__","Utility to convert a pointer to a raw pointer","2017-11 (Albuquerque)","|Complete|","6","`#104012 `__","" +"`P0718R2 `__","Atomic shared_ptr","2017-11 (Albuquerque)","","","`#99980 `__","" +"`P0767R1 `__","Deprecate POD","2017-11 (Albuquerque)","|Complete|","21","`#104013 `__","It was previously erroneously marked as complete in LLVM 7." +"`P0768R1 `__","Library Support for the Spaceship (Comparison) Operator","2017-11 (Albuquerque)","|Complete|","","`#104014 `__","" +"`P0777R1 `__","Treating Unnecessary ``decay``\ ","2017-11 (Albuquerque)","|Complete|","7","`#104016 `__","" +"","","","","","","" +"`P0122R7 `__","","2018-03 (Jacksonville)","|Complete|","7","`#104017 `__","" +"`P0355R7 `__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial|","","`#99982 `__","See the `Github issue `__ for detailed status" +"`P0551R3 `__","Thou Shalt Not Specialize ``std``\ Function Templates!","2018-03 (Jacksonville)","|Complete|","11","`#104018 `__","" +"`P0753R2 `__","Manipulators for C++ Synchronized Buffered Ostream","2018-03 (Jacksonville)","","","`#99983 `__","" +"`P0754R2 `__","","2018-03 (Jacksonville)","|Complete|","7","`#104021 `__","" +"`P0809R0 `__","Comparing Unordered Containers","2018-03 (Jacksonville)","|Nothing To Do|","","`#104022 `__","" +"`P0858R0 `__","Constexpr iterator requirements","2018-03 (Jacksonville)","|Complete|","12","`#104024 `__","" +"`P0905R1 `__","Symmetry for spaceship","2018-03 (Jacksonville)","|Complete|","7","`#104025 `__","" +"`P0966R1 `__","``string::reserve``\ Should Not Shrink","2018-03 (Jacksonville)","|Complete|","12","`#104026 `__","It was previously erroneously marked as complete in version 8. See `bug 45368 `__" +"","","","","","","" +"`P0019R8 `__","Atomic Ref","2018-06 (Rapperswil)","|Complete|","19","`#104028 `__","" +"`P0458R2 `__","Checking for Existence of an Element in Associative Containers","2018-06 (Rapperswil)","|Complete|","13","`#104029 `__","" +"`P0475R1 `__","LWG 2511: guaranteed copy elision for piecewise construction","2018-06 (Rapperswil)","|Complete|","","`#104031 `__","" +"`P0476R2 `__","Bit-casting object representations","2018-06 (Rapperswil)","|Complete|","14","`#104087 `__","" +"`P0528R3 `__","The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange","2018-06 (Rapperswil)","","","`#99984 `__","" +"`P0542R5 `__","Support for contract based programming in C++","2018-06 (Rapperswil)","|Nothing To Do|","n/a","`#104089 `__","Pulled at the 2019-07 meeting in Cologne" +"`P0556R3 `__","Integral power-of-2 operations","2018-06 (Rapperswil)","|Complete|","9","`#104090 `__","" +"`P0619R4 `__","Reviewing Deprecated Facilities of C++17 for C++20","2018-06 (Rapperswil)","|Complete|","20","`#99985 `__","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","`#104091 `__","" +"`P0722R3 `__","Efficient sized delete for variable sized classes","2018-06 (Rapperswil)","|Complete|","9","`#104092 `__","" +"`P0758R1 `__","Implicit conversion traits and utility functions","2018-06 (Rapperswil)","|Complete|","","`#104093 `__","" +"`P0759R1 `__","fpos Requirements","2018-06 (Rapperswil)","|Complete|","11","`#104094 `__","" +"`P0769R2 `__","Add shift to ","2018-06 (Rapperswil)","|Complete|","12","`#104095 `__","" +"`P0788R3 `__","Standard Library Specification in a Concepts and Contracts World","2018-06 (Rapperswil)","|Nothing To Do|","n/a","`#104096 `__","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","`#104097 `__","" +"`P0887R1 `__","The identity metafunction","2018-06 (Rapperswil)","|Complete|","8","`#104099 `__","" +"`P0892R2 `__","P0892R2: explicit(bool)","2018-06 (Rapperswil)","|Nothing To Do|","","`#100597 `__","" +"`P0898R3 `__","Standard Library Concepts","2018-06 (Rapperswil)","|Complete|","13","`#104100 `__","" +"`P0935R0 `__","Eradicating unnecessarily explicit default constructors from the standard library","2018-06 (Rapperswil)","|Complete|","12","`#104101 `__","" +"`P0941R2 `__","Integrating feature-test macros into the C++ WD","2018-06 (Rapperswil)","|In Progress|","","`#99986 `__","" +"`P1023R0 `__","constexpr comparison operators for std::array","2018-06 (Rapperswil)","|Complete|","8","`#104103 `__","" +"`P1025R1 `__","Update The Reference To The Unicode Standard","2018-06 (Rapperswil)","","","`#100598 `__","" +"`P1120R0 `__","Consistency improvements for <=> and other comparison operators","2018-06 (Rapperswil)","","","`#99989 `__","" +"","","","","","","" +"`P0318R1 `__","unwrap_ref_decay and unwrap_reference","2018-11 (San Diego)","|Complete|","8","`#104105 `__","" +"`P0356R5 `__","Simplified partial function application","2018-11 (San Diego)","|Complete|","13","`#104106 `__","" +"`P0357R3 `__","reference_wrapper for incomplete types","2018-11 (San Diego)","|Complete|","8","`#104107 `__","" +"`P0482R6 `__","char8_t: A type for UTF-8 characters and strings","2018-11 (San Diego)","|Complete|","16","`#104108 `__","" +"`P0487R1 `__","Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)","2018-11 (San Diego)","|Complete|","8","`#104110 `__","" +"`P0591R4 `__","Utility functions to implement uses-allocator construction","2018-11 (San Diego)","|Partial|","","`#99990 `__","The changes in [mem.poly.allocator.mem] are missing" +"`P0595R2 `__","std::is_constant_evaluated()","2018-11 (San Diego)","|Complete|","9","`#104111 `__","" +"`P0602R4 `__","variant and optional should propagate copy/move triviality","2018-11 (San Diego)","|Complete|","8","`#104112 `__","" +"`P0608R3 `__","A sane variant converting constructor","2018-11 (San Diego)","|Complete|","9","`#104113 `__","" +"`P0655R1 `__","visit: Explicit Return Type for visit","2018-11 (San Diego)","|Complete|","12","`#104115 `__","" +"`P0771R1 `__","std::function move constructor should be noexcept","2018-11 (San Diego)","|Complete|","6","`#104116 `__","" +"`P0896R4 `__","The One Ranges Proposal","2018-11 (San Diego)","|Complete|","15","`#104118 `__","" +"`P0899R1 `__","P0899R1 - LWG 3016 is not a defect","2018-11 (San Diego)","|Nothing To Do|","","`#104120 `__","" +"`P0919R3 `__","Heterogeneous lookup for unordered containers","2018-11 (San Diego)","|Complete|","12","`#104122 `__","" +"`P0972R0 `__"," ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept","2018-11 (San Diego)","|Complete|","8","`#104123 `__","" +"`P1006R1 `__","Constexpr in std::pointer_traits","2018-11 (San Diego)","|Complete|","8","`#104124 `__","" +"`P1007R3 `__","``std::assume_aligned``\ ","2018-11 (San Diego)","|Complete|","15","`#104125 `__","" +"`P1020R1 `__","Smart pointer creation with default initialization","2018-11 (San Diego)","|Complete|","16","`#104126 `__","The feature-test macro was not set until LLVM 20." +"`P1032R1 `__","Misc constexpr bits","2018-11 (San Diego)","|Complete|","13","`#104127 `__","" +"`P1085R2 `__","Should Span be Regular?","2018-11 (San Diego)","|Complete|","8","`#104128 `__","" +"`P1123R0 `__","Editorial Guidance for merging P0019r8 and P0528r3","2018-11 (San Diego)","","","`#99991 `__","" +"`P1148R0 `__","Cleaning up Clause 20","2018-11 (San Diego)","","","`#99992 `__","" +"`P1165R1 `__","Make stateful allocator propagation more consistent for ``operator+(basic_string)``\ ","2018-11 (San Diego)","|Complete|","15","`#104129 `__","" +"`P1209R0 `__","Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20","2018-11 (San Diego)","|Complete|","8","`#104130 `__","" +"`P1210R0 `__","P1210R0: Completing the Rebase of Library Fundamentals, Version 3, Working Draft","2018-11 (San Diego)","|Nothing To Do|","","`#100612 `__","" +"`P1236R1 `__","Alternative Wording for P0907R4 Signed Integers are Two's Complement","2018-11 (San Diego)","","","`#99994 `__","" +"`P1248R1 `__","Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)","2018-11 (San Diego)","|Complete|","13","`#104131 `__","" +"`P1285R0 `__","Improving Completeness Requirements for Type Traits","2018-11 (San Diego)","","","`#99995 `__","" +"`P1353R0 `__","Missing feature test macros","2018-11 (San Diego)","|Complete|","19","`#100006 `__","" +"","","","","","","" +"`P0339R6 `__","polymorphic_allocator<> as a vocabulary type","2019-02 (Kona)","|Complete|","16","`#104132 `__","" +"`P0340R3 `__","Making std::underlying_type SFINAE-friendly","2019-02 (Kona)","|Complete|","9","`#104133 `__","" +"`P0738R2 `__","I Stream, You Stream, We All Stream for istream_iterator","2019-02 (Kona)","","","`#100007 `__","" +"`P0811R3 `__","Well-behaved interpolation for numbers and pointers","2019-02 (Kona)","|Complete|","9","`#104134 `__","" +"`P0920R2 `__","Precalculated hash values in lookup","2019-02 (Kona)","|Nothing To Do|","","`#104135 `__","Reverted by `P1661 `__" +"`P1001R2 `__","Target Vectorization Policies from Parallelism V2 TS to C++20","2019-02 (Kona)","|Complete|","17","`#104136 `__","" +"`P1024R3 `__","Usability Enhancements for std::span","2019-02 (Kona)","|Complete|","9","`#104137 `__","" +"`P1164R1 `__","Make create_directory() Intuitive","2019-02 (Kona)","|Complete|","12","`#104138 `__","" +"`P1227R2 `__","Signed ssize() functions, unsigned size() functions","2019-02 (Kona)","|Complete|","9","`#104139 `__","" +"`P1252R2 `__","Ranges Design Cleanup","2019-02 (Kona)","|Complete|","15","`#104140 `__","" +"`P1286R2 `__","Contra CWG DR1778","2019-02 (Kona)","","","`#100009 `__","" +"`P1357R1 `__","Traits for [Un]bounded Arrays","2019-02 (Kona)","|Complete|","9","`#104141 `__","" +"`P1458R1 `__","Mandating the Standard Library: Clause 16 - Language support library","2019-02 (Kona)","|Complete|","9","`#104142 `__","" +"`P1459R1 `__","Mandating the Standard Library: Clause 18 - Diagnostics library","2019-02 (Kona)","|Complete|","9","`#104143 `__","" +"`P1462R1 `__","Mandating the Standard Library: Clause 20 - Strings library","2019-02 (Kona)","|Complete|","9","`#104145 `__","" +"`P1463R1 `__","Mandating the Standard Library: Clause 21 - Containers library","2019-02 (Kona)","","","`#100010 `__","" +"`P1464R1 `__","Mandating the Standard Library: Clause 22 - Iterators library","2019-02 (Kona)","|Complete|","9","`#104147 `__","" +"","","","","","","" +"`P0325R4 `__","to_array from LFTS with updates","2019-07 (Cologne)","|Complete|","10","`#104149 `__","" +"`P0408R7 `__","Efficient Access to basic_stringbuf's Buffer","2019-07 (Cologne)","|Complete|","17","`#104150 `__","" +"`P0466R5 `__","Layout-compatibility and Pointer-interconvertibility Traits","2019-07 (Cologne)","","","`#100013 `__","" +"`P0553R4 `__","Bit operations","2019-07 (Cologne)","|Complete|","9","`#104151 `__","" +"`P0631R8 `__","Math Constants","2019-07 (Cologne)","|Complete|","11","`#104152 `__","" +"`P0645R10 `__","Text Formatting","2019-07 (Cologne)","|Complete|","14","`#104153 `__","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","`#104154 `__","The feature was implemented since LLVM 18 but was guarded behind ``-fexperimental-library``." +"`P0784R7 `__","More constexpr containers","2019-07 (Cologne)","|Complete|","12","`#104156 `__","" +"`P0980R1 `__","Making std::string constexpr","2019-07 (Cologne)","|Complete|","15","`#104157 `__","" +"`P1004R2 `__","Making std::vector constexpr","2019-07 (Cologne)","|Complete|","15","`#104158 `__","" +"`P1035R7 `__","Input Range Adaptors","2019-07 (Cologne)","|Complete|","16","`#104159 `__","" +"`P1065R2 `__","Constexpr INVOKE","2019-07 (Cologne)","|Complete|","12","`#104160 `__","" +"`P1135R6 `__","The C++20 Synchronization Library","2019-07 (Cologne)","|Complete|","11","`#104161 `__","" +"`P1207R4 `__","Movability of Single-pass Iterators","2019-07 (Cologne)","|Complete|","15","`#104162 `__","" +"`P1208R6 `__","Adopt source_location for C++20","2019-07 (Cologne)","|Complete|","16","`#104163 `__","" +"`P1355R2 `__","Exposing a narrow contract for ceil2","2019-07 (Cologne)","|Complete|","9","`#104164 `__","" +"`P1361R2 `__","Integration of chrono with text formatting","2019-07 (Cologne)","|Complete|","21","`#100014 `__","" +"`P1423R3 `__","char8_t backward compatibility remediation","2019-07 (Cologne)","|Complete|","15","`#104165 `__","" +"`P1424R1 `__","'constexpr' feature macro concerns","2019-07 (Cologne)","|Nothing To Do|","","`#104166 `__","Superseded by `P1902 `__" +"`P1466R3 `__","Miscellaneous minor fixes for chrono","2019-07 (Cologne)","|Partial|","","`#100015 `__","" +"`P1474R1 `__","Helpful pointers for ContiguousIterator","2019-07 (Cologne)","|Complete|","15","`#104167 `__","" +"`P1502R1 `__","Standard library header units for C++20","2019-07 (Cologne)","","","`#100016 `__","" +"`P1522R1 `__","Iterator Difference Type and Integer Overflow","2019-07 (Cologne)","|Complete|","15","`#104169 `__","" +"`P1523R1 `__","Views and Size Types","2019-07 (Cologne)","|Complete|","15","`#104170 `__","" +"`P1612R1 `__","Relocate Endian's Specification","2019-07 (Cologne)","|Complete|","10","`#104172 `__","" +"`P1614R2 `__","The Mothership has Landed","2019-07 (Cologne)","|Complete|","19","`#100018 `__","``std::strong_order(long double, long double)`` is partly implemented." +"`P1638R1 `__","basic_istream_view::iterator should not be copyable","2019-07 (Cologne)","|Complete|","16","`#104173 `__","" +"`P1643R1 `__","Add wait/notify to atomic_ref","2019-07 (Cologne)","|Complete|","19","`#104174 `__","" +"`P1644R0 `__","Add wait/notify to atomic","2019-07 (Cologne)","","","`#100019 `__","" +"`P1650R0 `__","Output std::chrono::days with 'd' suffix","2019-07 (Cologne)","|Complete|","16","`#104175 `__","" +"`P1651R0 `__","bind_front should not unwrap reference_wrapper","2019-07 (Cologne)","|Complete|","13","`#104176 `__","" +"`P1652R1 `__","Printf corner cases in std::format","2019-07 (Cologne)","|Complete|","14","`#104177 `__","" +"`P1661R1 `__","Remove dedicated precalculated hash lookup interface","2019-07 (Cologne)","|Nothing To Do|","","`#104178 `__","" +"`P1754R1 `__","Rename concepts to standard_case for C++20, while we still can","2019-07 (Cologne)","|Complete|","15","`#104179 `__","" +"","","","","","","" +"`P0883R2 `__","Fixing Atomic Initialization","2019-11 (Belfast)","|Complete|","14","`#104180 `__","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","`#104181 `__","" +"`P1394R4 `__","Range constructor for std::span","2019-11 (Belfast)","|Complete|","14","`#104182 `__","" +"`P1456R1 `__","Move-only views","2019-11 (Belfast)","|Complete|","15","`#104183 `__","" +"`P1622R3 `__","Mandating the Standard Library: Clause 32 - Thread support library","2019-11 (Belfast)","","","`#100020 `__","" +"`P1645R1 `__","constexpr for numeric algorithms","2019-11 (Belfast)","|Complete|","12","`#104184 `__","" +"`P1686R2 `__","Mandating the Standard Library: Clause 27 - Time library","2019-11 (Belfast)","","","`#100021 `__","" +"`P1690R1 `__","Refinement Proposal for P0919 Heterogeneous lookup for unordered containers","2019-11 (Belfast)","|Complete|","12","`#104185 `__","" +"`P1716R3 `__","ranges compare algorithm are over-constrained","2019-11 (Belfast)","|Complete|","15","`#104186 `__","" +"`P1718R2 `__","Mandating the Standard Library: Clause 25 - Algorithms library","2019-11 (Belfast)","","","`#100022 `__","" +"`P1719R2 `__","Mandating the Standard Library: Clause 26 - Numerics library","2019-11 (Belfast)","","","`#100023 `__","" +"`P1720R2 `__","Mandating the Standard Library: Clause 28 - Localization library","2019-11 (Belfast)","","","`#100025 `__","" +"`P1721R2 `__","Mandating the Standard Library: Clause 29 - Input/Output library","2019-11 (Belfast)","","","`#100026 `__","" +"`P1722R2 `__","Mandating the Standard Library: Clause 30 - Regular Expression library","2019-11 (Belfast)","","","`#100027 `__","" +"`P1723R2 `__","Mandating the Standard Library: Clause 31 - Atomics library","2019-11 (Belfast)","","","`#100029 `__","" +"`P1855R0 `__","Make ````\ freestanding","2019-11 (Belfast)","","","`#100030 `__","" +"`P1862R1 `__","Ranges adaptors for non-copyable iterators","2019-11 (Belfast)","|Complete|","16","`#104187 `__","" +"`P1865R1 `__","Add max() to latch and barrier","2019-11 (Belfast)","|Complete|","11","`#104188 `__","" +"`P1869R1 `__","Rename 'condition_variable_any' interruptible wait methods","2019-11 (Belfast)","|Complete|","18","`#100031 `__","" +"`P1870R1 `__","forwarding-range is too subtle","2019-11 (Belfast)","|Complete|","15","`#104190 `__","" +"`P1871R1 `__","Concept traits should be named after concepts","2019-11 (Belfast)","|Complete|","14","`#104191 `__","" +"`P1872R0 `__","span should have size_type, not index_type","2019-11 (Belfast)","|Complete|","10","`#104192 `__","" +"`P1878R1 `__","Constraining Readable Types","2019-11 (Belfast)","|Complete|","15","`#104194 `__","" +"`P1892R1 `__","Extended locale-specific presentation specifiers for std::format","2019-11 (Belfast)","|Complete|","14","`#104196 `__","" +"`P1902R1 `__","Missing feature-test macros 2018-2019","2019-11 (Belfast)","","","`#100032 `__","" +"`P1959R0 `__","Remove std::weak_equality and std::strong_equality","2019-11 (Belfast)","|Nothing To Do|","","`#104198 `__","" +"`P1960R0 `__","NB Comment Changes Reviewed by SG1","2019-11 (Belfast)","","","`#100033 `__","" +"`P1961R0 `__","Harmonizing the definitions of total order for pointers","2019-11 (Belfast)","","","`#100611 `__","" +"`P1965R0 `__","Blanket Wording for Specifying ""Hidden Friends""","2019-11 (Belfast)","","","`#100034 `__","" +"","","","","","","" +"`P0586R2 `__","Safe integral comparisons","2020-02 (Prague)","|Complete|","13","`#104199 `__","" +"`P0593R6 `__","Implicit creation of objects for low-level object manipulation","2020-02 (Prague)","","","`#100035 `__","" +"`P1115R3 `__","Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if","2020-02 (Prague)","|Complete|","11","`#104200 `__","" +"`P1243R4 `__","Rangify New Algorithms","2020-02 (Prague)","|Complete|","15","`#104201 `__","" +"`P1460R1 `__","Mandating the Standard Library: Clause 20 - Utilities library","2020-02 (Prague)","","","`#100037 `__","" +"`P1739R4 `__","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","2020-02 (Prague)","|Complete|","15","`#104202 `__","" +"`P1831R1 `__","Deprecating volatile: library","2020-02 (Prague)","","","`#100038 `__","" +"`P1868R2 `__","width: clarifying units of width and precision in std::format","2020-02 (Prague)","|Complete|","14","`#104203 `__","" +"`P1956R1 `__","On the names of low-level bit manipulation functions","2020-02 (Prague)","|Complete|","12","`#104204 `__","" +"`P1957R2 `__","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","2020-02 (Prague)","|Complete|","18","`#104205 `__","" +"`P1963R0 `__","P1963R0: Fixing US 313","2020-02 (Prague)","|Nothing To Do|","","`#100039 `__","" +"`P1964R2 `__","Wording for boolean-testable","2020-02 (Prague)","|Complete|","13","`#104206 `__","" +"`P1970R2 `__","Consistency for size() functions: Add ranges::ssize","2020-02 (Prague)","|Complete|","15","`#104207 `__","" +"`P1973R1 `__","Rename ""_default_init"" Functions, Rev1","2020-02 (Prague)","|Complete|","16","`#104208 `__","The feature-test macro was not set until LLVM 20." +"`P1976R2 `__","Fixed-size span construction from dynamic range","2020-02 (Prague)","|Complete|","11","`#104209 `__","" +"`P1981R0 `__","Rename leap to leap_second","2020-02 (Prague)","|Complete|","19","`#104210 `__","" +"`P1982R0 `__","Rename link to time_zone_link","2020-02 (Prague)","|Complete|","19","`#104211 `__","" +"`P1983R0 `__","Wording for GB301, US296, US292, US291, and US283","2020-02 (Prague)","|Complete|","15","`#104212 `__","" +"`P1994R1 `__","elements_view needs its own sentinel","2020-02 (Prague)","|Complete|","16","`#104213 `__","" +"`P2002R1 `__","Defaulted comparison specification cleanups","2020-02 (Prague)","|Complete|","7","`#100615 `__","" +"`P2045R1 `__","P2045R1: Missing Mandates for the standard library","2020-02 (Prague)","|Nothing To Do|","","`#100041 `__","" +"`P2085R0 `__","Consistent defaulted comparisons","2020-02 (Prague)","","","`#100617 `__","" +"`P2091R0 `__","Issues with range access CPOs","2020-02 (Prague)","|Complete|","15","`#104214 `__","" +"`P2101R0 `__","P2101R0: 'Models' subsumes 'satisfies' (Wording for US298 and US300)","2020-02 (Prague)","|Nothing To Do|","","`#100618 `__","" +"`P2102R0 `__","Make 'implicit expression variations' more explicit (Wording for US185)","2020-02 (Prague)","|Complete|","15","`#100042 `__","" +"`P2106R0 `__","Alternative wording for GB315 and GB316","2020-02 (Prague)","|Complete|","15","`#104215 `__","" +"`P2116R0 `__","Remove tuple-like protocol support from fixed-extent span","2020-02 (Prague)","|Complete|","11","`#104216 `__","" +"","","","","","","" +"`P2231R1 `__","Missing constexpr in std::optional and std::variant","2021-06 (Virtual)","|Complete|","19","`#104217 `__","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","`#104218 `__","" +"`P2210R2 `__","Superior String Splitting","2021-06 (Virtual)","|Complete|","16","`#104219 `__","" +"`P2216R3 `__","std::format improvements","2021-06 (Virtual)","|Complete|","15","`#104220 `__","" +"`P2281R1 `__","Clarifying range adaptor objects","2021-06 (Virtual)","|Complete|","14","`#104221 `__","" +"`P2328R1 `__","join_view should join all views of ranges","2021-06 (Virtual)","|Complete|","15","`#104222 `__","" +"`P2367R0 `__","Remove misuses of list-initialization from Clause 24","2021-06 (Virtual)","|Complete|","15","`#104223 `__","" +"","","","","","","" +"`P2372R3 `__","Fixing locale handling in chrono formatters","2021-10 (Virtual)","|Complete|","21","`#100043 `__","" +"`P2415R2 `__","What is a ``view``","2021-10 (Virtual)","|Complete|","14","`#104224 `__","" +"`P2418R2 `__","Add support for ``std::generator``-like types to ``std::format``","2021-10 (Virtual)","|Complete|","15","`#104225 `__","" +"`P2432R1 `__","Fix ``istream_view``","2021-10 (Virtual)","|Complete|","16","`#104226 `__","" diff --git a/libcxx/docs/Status/Cxx23Issues.csv b/libcxx/docs/Status/Cxx23Issues.csv index 189f8452e0678..76be1dac537f1 100644 --- a/libcxx/docs/Status/Cxx23Issues.csv +++ b/libcxx/docs/Status/Cxx23Issues.csv @@ -1,308 +1,308 @@ -"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","" -"`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","" -"`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","" -"`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)","|Complete|","16","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"","","","","","" -"`LWG3088 `__","``forward_list::merge`` behaviour unclear when passed ``*this``","2022-02 (Virtual)","|Complete|","Yes","" -"`LWG3471 `__","``polymorphic_allocator::allocate`` does not satisfy ``Cpp17Allocator`` requirements","2022-02 (Virtual)","","","" -"`LWG3525 `__","``uses_allocator_construction_args`` fails to handle types convertible to ``pair``","2022-02 (Virtual)","","","" -"`LWG3598 `__","``system_category().default_error_condition(0)`` is underspecified","2022-02 (Virtual)","","","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`LWG3617 `__","``function``/``packaged_task`` deduction guides and deducing ``this``","2022-07 (Virtual)","","","" -"`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","" -"`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)","|Complete|","22","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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)","|Complete|","","" -"`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","" -"`LWG3737 `__","``take_view::sentinel`` should provide ``operator-``","2022-11 (Kona)","","","" -"`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","" -"`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","" -"`LWG3757 `__","What's the effect of ``std::forward_like(x)``?","2022-11 (Kona)","|Complete|","","" -"`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","" -"`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)","","","" -"`LWG3773 `__","``views::zip_transform`` still requires ``F`` to be ``copy_constructible`` when empty pack","2022-11 (Kona)","|Complete|","22","" -"`LWG3774 `__","```` should include ````","2022-11 (Kona)","","","" -"`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","" -"`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","" -"`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|","","``adjacent_transform_view`` hasn't been done yet since this type isn't implemented yet" -"`LWG3801 `__","``cartesian_product_view::iterator::distance-from`` ignores the size of last underlying range","2022-11 (Kona)","","","" -"`LWG3814 `__","Add freestanding items requested by NB comments","2022-11 (Kona)","","","" -"`LWG3816 `__","``flat_map`` and ``flat_multimap`` should impose sequence container requirements","2022-11 (Kona)","","","" -"`LWG3817 `__","Missing preconditions on ``forward_list`` modifiers","2022-11 (Kona)","","","" -"`LWG3818 `__","Exposition-only concepts are not described in library intro","2022-11 (Kona)","|Nothing To Do|","","" -"`LWG3822 `__","Avoiding normalization in ``filesystem::weakly_canonical``","2022-11 (Kona)","","","" -"`LWG3823 `__","Unnecessary precondition for ``is_aggregate``","2022-11 (Kona)","|Nothing To Do|","","" -"`LWG3824 `__","Number of ``bind`` placeholders is underspecified","2022-11 (Kona)","|Nothing To Do|","","" -"`LWG3826 `__","Redundant specification [for overload of yield_value]","2022-11 (Kona)","|Nothing To Do|","","" -"","","","","","" -"`LWG2195 `__","Missing constructors for ``match_results``","2023-02 (Issaquah)","","","" -"`LWG2295 `__","Locale name when the provided ``Facet`` is a ``nullptr``","2023-02 (Issaquah)","","","" -"`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","" -"`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","" -"`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","" -"`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","" -"`LWG3841 `__","```` should not be ""all freestanding""","2023-02 (Issaquah)","","","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" +"Issue #","Issue Name","Meeting","Status","First released version","Github issue","Notes" +"`LWG2839 `__","Self-move-assignment of library types, again","2020-11 (Virtual)","|Nothing To Do|","","`#104255 `__","" +"`LWG3117 `__","Missing ``packaged_task`` deduction guides","2020-11 (Virtual)","|Complete|","16","`#104256 `__","" +"`LWG3143 `__","``monotonic_buffer_resource`` growth policy is unclear","2020-11 (Virtual)","","","`#104258 `__","" +"`LWG3195 `__","What is the stored pointer value of an empty ``weak_ptr``?","2020-11 (Virtual)","|Nothing To Do|","","`#104259 `__","" +"`LWG3211 `__","``std::tuple<>`` should be trivially constructible","2020-11 (Virtual)","|Complete|","9","`#104260 `__","" +"`LWG3236 `__","Random access iterator requirements lack limiting relational operators domain to comparing those from the same range","2020-11 (Virtual)","|Nothing To Do|","","`#104261 `__","" +"`LWG3265 `__","``move_iterator``'s conversions are more broken after P1207","2020-11 (Virtual)","|Nothing To Do|","","`#104262 `__","Resolved by `LWG3435 `__" +"`LWG3435 `__","``three_way_comparable_with, reverse_iterator>``","2020-11 (Virtual)","|Complete|","13","`#104263 `__","" +"`LWG3432 `__","Missing requirement for ``comparison_category``","2020-11 (Virtual)","|Complete|","16","`#104265 `__","" +"`LWG3447 `__","Deduction guides for ``take_view`` and ``drop_view`` have different constraints","2020-11 (Virtual)","|Complete|","14","`#104266 `__","" +"`LWG3450 `__","The const overloads of ``take_while_view::begin/end`` are underconstrained","2020-11 (Virtual)","|Complete|","16","`#104267 `__","" +"`LWG3464 `__","``istream::gcount()`` can overflow","2020-11 (Virtual)","|Complete|","18","`#104269 `__","" +"`LWG2731 `__","Existence of ``lock_guard::mutex_type`` typedef unclear","2020-11 (Virtual)","|Complete|","5","`#104270 `__","" +"`LWG2743 `__","P0083R3 ``node_handle`` private members missing ""exposition only"" comment","2020-11 (Virtual)","|Nothing To Do|","","`#104272 `__","" +"`LWG2820 `__","Clarify ```` macros","2020-11 (Virtual)","|Nothing To Do|","","`#104273 `__","" +"`LWG3120 `__","Unclear behavior of ``monotonic_buffer_resource::release()``","2020-11 (Virtual)","|Complete|","16","`#104274 `__","" +"`LWG3170 `__","``is_always_equal`` added to ``std::allocator`` makes the standard library treat derived types as always equal","2020-11 (Virtual)","|Complete|","18","`#104275 `__","" +"`LWG3036 `__","``polymorphic_allocator::destroy`` is extraneous","2020-11 (Virtual)","|Nothing To Do|","","`#104276 `__","Reverted by P2875R4" +"`LWG3171 `__","LWG2989 breaks ``directory_entry`` stream insertion","2020-11 (Virtual)","|Complete|","14","`#104277 `__","" +"`LWG3306 `__","``ranges::advance`` violates its preconditions","2020-11 (Virtual)","|Complete|","14","`#104279 `__","" +"`LWG3403 `__","Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)``","2020-11 (Virtual)","","","`#104280 `__","" +"`LWG3404 `__","Finish removing subrange's conversions from pair-like","2020-11 (Virtual)","|Complete|","13","`#104282 `__","" +"`LWG3405 `__","``common_view``'s converting constructor is bad, too","2020-11 (Virtual)","|Complete|","14","`#104283 `__","" +"`LWG3406 `__","``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraints","2020-11 (Virtual)","|Complete|","16","`#104284 `__","" +"`LWG3419 `__","[algorithms.requirements]/15 doesn't reserve as many rights as it intends to","2020-11 (Virtual)","|Nothing To Do|","","`#104286 `__","" +"`LWG3420 `__","cpp17-iterator should check that the type looks like an iterator first","2020-11 (Virtual)","|Complete|","14","`#104287 `__","" +"`LWG3421 `__","Imperfect ADL emulation for boolean-testable","2020-11 (Virtual)","|Nothing To Do|","","`#104288 `__","" +"`LWG3425 `__","``condition_variable_any`` fails to constrain its Lock parameters","2020-11 (Virtual)","|Nothing To Do|","","`#104289 `__","" +"`LWG3426 `__","``operator<=>(const unique_ptr&, nullptr_t)`` can't get no satisfaction","2020-11 (Virtual)","|Complete|","16","`#104290 `__","" +"`LWG3427 `__","``operator<=>(const shared_ptr&, nullptr_t)`` definition ill-formed","2020-11 (Virtual)","|Complete|","16","`#104291 `__","" +"`LWG3428 `__","``single_view``'s in place constructor should be explicit","2020-11 (Virtual)","|Complete|","14","`#104292 `__","" +"`LWG3434 `__","``ios_base`` never reclaims memory for iarray and parray","2020-11 (Virtual)","|Nothing To Do|","","`#104293 `__","" +"`LWG3437 `__","``__cpp_lib_polymorphic_allocator`` is in the wrong header","2020-11 (Virtual)","|Complete|","14","`#104294 `__","" +"`LWG3446 `__","``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type``","2020-11 (Virtual)","|Complete|","14","`#103998 `__","" +"`LWG3448 `__","``transform_view``'s ``sentinel`` not comparable with ``iterator``","2020-11 (Virtual)","","","`#104295 `__","" +"`LWG3449 `__","``take_view`` and ``take_while_view``'s ``sentinel`` not comparable with their ``const iterator``","2020-11 (Virtual)","|Complete|","16","`#104296 `__","" +"`LWG3453 `__","Generic code cannot call ``ranges::advance(i, s)``","2020-11 (Virtual)","|Nothing To Do|","","`#104297 `__","" +"`LWG3455 `__","Incorrect Postconditions on ``unique_ptr`` move assignment","2020-11 (Virtual)","|Nothing To Do|","","`#104298 `__","" +"`LWG3460 `__","Unimplementable ``noop_coroutine_handle`` guarantees","2020-11 (Virtual)","|Complete|","14","`#104299 `__","" +"`LWG3461 `__","``convertible_to``'s description mishandles cv-qualified ``void``","2020-11 (Virtual)","|Nothing To Do|","","`#104300 `__","" +"`LWG3465 `__","``compare_partial_order_fallback`` requires ``F < E``","2020-11 (Virtual)","|Complete|","14","`#104301 `__","" +"`LWG3466 `__","Specify the requirements for ``promise``/``future``/``shared_future`` consistently","2020-11 (Virtual)","|Nothing To Do|","","`#104302 `__","" +"`LWG3467 `__","``bool`` can't be an integer-like type","2020-11 (Virtual)","|Complete|","14","`#104303 `__","" +"`LWG3472 `__","``counted_iterator`` is missing preconditions","2020-11 (Virtual)","|Complete|","14","`#104304 `__","" +"`LWG3473 `__","Normative encouragement in non-normative note","2020-11 (Virtual)","|Complete|","15","`#104305 `__","" +"`LWG3474 `__","Nesting ``join_views`` is broken because of CTAD","2020-11 (Virtual)","|Complete|","15","`#104306 `__","" +"`LWG3476 `__","``thread`` and ``jthread`` constructors require that the parameters be move-constructible but never move construct the parameters","2020-11 (Virtual)","","","`#104307 `__","" +"`LWG3477 `__","Simplify constraints for ``semiregular-box``","2020-11 (Virtual)","|Complete|","13","`#104308 `__","" +"`LWG3482 `__","``drop_view``'s const begin should additionally require ``sized_range``","2020-11 (Virtual)","|Complete|","14","`#104309 `__","" +"`LWG3483 `__","``transform_view::iterator``'s difference is overconstrained","2020-11 (Virtual)","|Complete|","14","`#104310 `__","" +"","","","","","","" +"`LWG3391 `__","Problems with ``counted_iterator``/``move_iterator::base() const &``","2021-02 (Virtual)","","","`#104311 `__","" +"`LWG3433 `__","``subrange::advance(n)`` has UB when ``n < 0``","2021-02 (Virtual)","|Complete|","14","`#104312 `__","" +"`LWG3490 `__","``ranges::drop_while_view::begin()`` is missing a precondition","2021-02 (Virtual)","|Nothing To Do|","","`#104313 `__","" +"`LWG3492 `__","Minimal improvements to ``elements_view::iterator``","2021-02 (Virtual)","|Complete|","16","`#104314 `__","" +"`LWG3494 `__","Allow ranges to be conditionally borrowed","2021-02 (Virtual)","|Nothing To Do|","","`#104315 `__","Superseded by `P2017R1 `__" +"`LWG3495 `__","``constexpr launder`` makes pointers to inactive members of unions usable","2021-02 (Virtual)","|Nothing To Do|","","`#104316 `__","" +"`LWG3500 `__","``join_view::iterator::operator->()`` is bogus","2021-02 (Virtual)","|Complete|","14","`#104318 `__","" +"`LWG3502 `__","``elements_view`` should not be allowed to return dangling reference","2021-02 (Virtual)","|Complete|","16","`#104319 `__","" +"`LWG3505 `__","``split_view::outer-iterator::operator++`` misspecified","2021-02 (Virtual)","","","`#104320 `__","" +"","","","","","","" +"`LWG2774 `__","``std::function`` construction vs assignment","2021-06 (Virtual)","","","`#104321 `__","" +"`LWG2818 `__","``::std::`` everywhere rule needs tweaking","2021-06 (Virtual)","|Nothing To Do|","","`#104322 `__","" +"`LWG2997 `__","LWG 491 and the specification of ``{forward_,}list::unique``","2021-06 (Virtual)","","","`#104323 `__","" +"`LWG3410 `__","``lexicographical_compare_three_way`` is overspecified","2021-06 (Virtual)","|Complete|","17","`#104324 `__","" +"`LWG3430 `__","``std::fstream`` & co. should be constructible from string_view","2021-06 (Virtual)","|Complete|","19","`#104325 `__","" +"`LWG3462 `__","§[formatter.requirements]: Formatter requirements forbid use of ``fc.arg()``","2021-06 (Virtual)","|Nothing To Do|","","`#104326 `__","" +"`LWG3481 `__","``viewable_range`` mishandles lvalue move-only views","2021-06 (Virtual)","|Nothing To Do|","","`#104327 `__","Superseded by `P2415R2 `__" +"`LWG3506 `__","Missing allocator-extended constructors for ``priority_queue``","2021-06 (Virtual)","|Complete|","14","`#104329 `__","" +"`LWG3517 `__","``join_view::iterator``'s ``iter_swap`` is underconstrained","2021-06 (Virtual)","|Complete|","14","`#104330 `__","" +"`LWG3518 `__","Exception requirements on char trait operations unclear","2021-06 (Virtual)","|Nothing To Do|","","`#104331 `__","" +"`LWG3519 `__","Incomplete synopses for ```` classes","2021-06 (Virtual)","","","`#104332 `__","" +"`LWG3520 `__","``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator``","2021-06 (Virtual)","|Complete|","14","`#104333 `__","" +"`LWG3521 `__","Overly strict requirements on ``qsort`` and ``bsearch``","2021-06 (Virtual)","|Nothing To Do|","","`#104334 `__","" +"`LWG3522 `__","Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructors","2021-06 (Virtual)","|Complete|","14","`#104335 `__","" +"`LWG3523 `__","``iota_view::sentinel`` is not always ``iota_view``'s sentinel","2021-06 (Virtual)","|Complete|","17","`#104336 `__","" +"`LWG3526 `__","Return types of ``uses_allocator_construction_args`` unspecified","2021-06 (Virtual)","","","`#104337 `__","" +"`LWG3527 `__","``uses_allocator_construction_args`` handles rvalue pairs of rvalue references incorrectly","2021-06 (Virtual)","","","`#104338 `__","" +"`LWG3528 `__","``make_from_tuple`` can perform (the equivalent of) a C-style cast","2021-06 (Virtual)","|Complete|","19","`#104339 `__","" +"`LWG3529 `__","``priority_queue(first, last)`` should construct ``c`` with ``(first, last)``","2021-06 (Virtual)","|Complete|","14","`#104340 `__","" +"`LWG3530 `__","``BUILTIN-PTR-MEOW`` should not opt the type out of syntactic checks","2021-06 (Virtual)","","","`#104341 `__","" +"`LWG3532 `__","``split_view::inner-iterator::operator++(int)`` should depend on ``Base``","2021-06 (Virtual)","","","`#104342 `__","" +"`LWG3533 `__","Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators``","2021-06 (Virtual)","|Complete|","14","`#104343 `__","" +"`LWG3536 `__","Should ``chrono::from_stream()`` assign zero to duration for failure?","2021-06 (Virtual)","","","`#104344 `__","" +"`LWG3539 `__","``format_to`` must not copy models of ``output_iterator``","2021-06 (Virtual)","|Complete|","14","`#104345 `__","" +"`LWG3540 `__","§[format.arg] There should be no const in ``basic_format_arg(const T* p)``","2021-06 (Virtual)","|Complete|","14","`#104348 `__","" +"`LWG3541 `__","``indirectly_readable_traits`` should be SFINAE-friendly for all types","2021-06 (Virtual)","|Complete|","14","`#104349 `__","" +"`LWG3542 `__","``basic_format_arg`` mishandles ``basic_string_view`` with custom traits","2021-06 (Virtual)","|Complete|","14","`#104350 `__","" +"`LWG3543 `__","Definition of when ``counted_iterators`` refer to the same sequence isn't quite right","2021-06 (Virtual)","|Nothing To Do|","","`#104351 `__","" +"`LWG3544 `__","``format-arg-store::args`` is unintentionally not exposition-only","2021-06 (Virtual)","|Complete|","14","`#104352 `__","" +"`LWG3546 `__","``common_iterator``'s postfix-proxy is not quite right","2021-06 (Virtual)","","","`#104353 `__","" +"`LWG3548 `__","``shared_ptr`` construction from ``unique_ptr`` should move (not copy) the deleter","2021-06 (Virtual)","|Complete|","15","`#104354 `__","" +"`LWG3549 `__","``view_interface`` is overspecified to derive from ``view_base``","2021-06 (Virtual)","|Complete|","14","`#104355 `__","" +"`LWG3551 `__","``borrowed_{iterator,subrange}_t`` are overspecified","2021-06 (Virtual)","|Nothing To Do|","","`#104356 `__","" +"`LWG3552 `__","Parallel specialized memory algorithms should require forward iterators","2021-06 (Virtual)","","","`#104357 `__","" +"`LWG3553 `__","Useless constraint in ``split_view::outer-iterator::value_type::begin()``","2021-06 (Virtual)","","","`#104358 `__","" +"`LWG3555 `__","``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying range","2021-06 (Virtual)","","","`#104359 `__","" +"","","","","","","" +"`LWG2191 `__","Incorrect specification of ``match_results(match_results&&)``","2021-10 (Virtual)","|Nothing To Do|","","`#104360 `__","" +"`LWG2381 `__","Inconsistency in parsing floating point numbers","2021-10 (Virtual)","|Complete|","19","`#104361 `__","" +"`LWG2762 `__","``unique_ptr operator*()`` should be ``noexcept``","2021-10 (Virtual)","|Complete|","19","`#104362 `__","" +"`LWG3121 `__","``tuple`` constructor constraints for ``UTypes&&...`` overloads","2021-10 (Virtual)","","","`#104364 `__","" +"`LWG3123 `__","``duration`` constructor from representation shouldn't be effectively non-throwing","2021-10 (Virtual)","","","`#104365 `__","" +"`LWG3146 `__","Excessive unwrapping in ``std::ref/cref``","2021-10 (Virtual)","|Complete|","14","`#104366 `__","" +"`LWG3152 `__","``common_type`` and ``common_reference`` have flaws in common","2021-10 (Virtual)","","","`#104367 `__","" +"`LWG3293 `__","``move_iterator operator+()`` has incorrect constraints","2021-10 (Virtual)","|Complete|","15","`#104368 `__","" +"`LWG3361 `__","``safe_range`` case","2021-10 (Virtual)","|Nothing To Do|","","`#104369 `__","" +"`LWG3392 `__","``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinel","2021-10 (Virtual)","|Complete|","14","`#104370 `__","" +"`LWG3407 `__","Some problems with the wording changes of P1739R4","2021-10 (Virtual)","|Complete|","15","`#104371 `__","" +"`LWG3422 `__","Issues of ``seed_seq``'s constructors","2021-10 (Virtual)","|Complete|","14","`#104372 `__","" +"`LWG3470 `__","``convertible-to-non-slicing`` seems to reject valid case","2021-10 (Virtual)","|Complete|","14","`#104373 `__","" +"`LWG3480 `__","``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 ranges","2021-10 (Virtual)","|Complete|","14","`#104374 `__","" +"`LWG3498 `__","Inconsistent ``noexcept``-specifiers for ``basic_syncbuf``","2021-10 (Virtual)","","","`#104375 `__","" +"`LWG3535 `__","``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie","2021-10 (Virtual)","|Complete|","15","`#104376 `__","" +"`LWG3554 `__","``chrono::parse`` needs ``const charT*`` and ``basic_string_view`` overloads","2021-10 (Virtual)","","","`#104377 `__","" +"`LWG3557 `__","The ``static_cast`` expression in ``convertible_to`` has the wrong operand","2021-10 (Virtual)","|Complete|","14","`#104378 `__","" +"`LWG3559 `__","Semantic requirements of ``sized_range`` is circular","2021-10 (Virtual)","|Nothing To Do|","","`#104379 `__","" +"`LWG3560 `__","``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges``","2021-10 (Virtual)","","","`#104380 `__","" +"`LWG3561 `__","Issue with internal counter in ``discard_block_engine``","2021-10 (Virtual)","","","`#104381 `__","" +"`LWG3563 `__","``keys_view`` example is broken","2021-10 (Virtual)","","","`#104382 `__","" +"`LWG3566 `__","Constraint recursion for ``operator<=>(optional, U)``","2021-10 (Virtual)","|Complete|","17","`#104383 `__","" +"`LWG3567 `__","Formatting move-only iterators take two","2021-10 (Virtual)","|Complete|","16","`#104384 `__","" +"`LWG3568 `__","``basic_istream_view`` needs to initialize ``value_``","2021-10 (Virtual)","|Complete|","16","`#104385 `__","" +"`LWG3570 `__","``basic_osyncstream::emit`` should be an unformatted output function","2021-10 (Virtual)","|Complete|","18","`#104386 `__","" +"`LWG3571 `__","``flush_emit`` should set ``badbit`` if the ``emit`` call fails","2021-10 (Virtual)","","","`#104387 `__","" +"`LWG3572 `__","``copyable-box`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14","`#104388 `__","" +"`LWG3573 `__","Missing Throws element for ``basic_string_view(It begin, End end)``","2021-10 (Virtual)","|Complete|","14","`#104389 `__","" +"`LWG3574 `__","``common_iterator`` should be completely ``constexpr``-able","2021-10 (Virtual)","|Complete|","14","`#104931 `__","" +"`LWG3580 `__","``iota_view``'s ``iterator``'s binary ``operator+`` should be improved","2021-10 (Virtual)","|Complete|","14","`#104932 `__","" +"`LWG3581 `__","The range constructor makes ``basic_string_view`` not trivially move constructible","2021-10 (Virtual)","|Complete|","14","`#104933 `__","" +"`LWG3585 `__","``variant`` converting assignment with immovable alternative","2021-10 (Virtual)","","","`#104934 `__","" +"`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","`#104935 `__","" +"`LWG3590 `__","``split_view::base() const &`` is overconstrained","2021-10 (Virtual)","|Complete|","16","`#104936 `__","" +"`LWG3591 `__","``lazy_split_view::inner-iterator::base() &&`` invalidates outer iterators","2021-10 (Virtual)","","","`#104937 `__","" +"`LWG3592 `__","``lazy_split_view`` needs to check the simpleness of Pattern","2021-10 (Virtual)","","","`#104938 `__","" +"`LWG3593 `__","Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept``","2021-10 (Virtual)","","","`#104939 `__","" +"`LWG3595 `__","Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14","`#104940 `__","" +"","","","","","","" +"`LWG3088 `__","``forward_list::merge`` behaviour unclear when passed ``*this``","2022-02 (Virtual)","|Complete|","Yes","`#104942 `__","" +"`LWG3471 `__","``polymorphic_allocator::allocate`` does not satisfy ``Cpp17Allocator`` requirements","2022-02 (Virtual)","","","`#104943 `__","" +"`LWG3525 `__","``uses_allocator_construction_args`` fails to handle types convertible to ``pair``","2022-02 (Virtual)","","","`#104944 `__","" +"`LWG3598 `__","``system_category().default_error_condition(0)`` is underspecified","2022-02 (Virtual)","","","`#104945 `__","" +"`LWG3601 `__","common_iterator's postfix-proxy needs ``indirectly_readable`` ","2022-02 (Virtual)","","","`#104946 `__","" +"`LWG3607 `__","``contiguous_iterator`` should not be allowed to have custom ``iter_move`` and ``iter_swap`` behavior","2022-02 (Virtual)","|Nothing To Do|","","`#104947 `__","" +"`LWG3610 `__","``iota_view::size`` sometimes rejects integer-class types","2022-02 (Virtual)","","","`#104948 `__","" +"`LWG3612 `__","Inconsistent pointer alignment in ``std::format`` ","2022-02 (Virtual)","|Complete|","14","`#104949 `__","" +"`LWG3616 `__","LWG 3498 seems to miss the non-member ``swap`` for ``basic_syncbuf`` ","2022-02 (Virtual)","|Complete|","18","`#104950 `__","" +"`LWG3618 `__","Unnecessary ``iter_move`` for ``transform_view::iterator`` ","2022-02 (Virtual)","|Complete|","19","`#104951 `__","" +"`LWG3619 `__","Specification of ``vformat_to`` contains ill-formed ``formatted_size`` calls","2022-02 (Virtual)","|Nothing To Do|","","`#104952 `__","" +"`LWG3621 `__","Remove feature-test macro ``__cpp_lib_monadic_optional`` ","2022-02 (Virtual)","|Complete|","15","`#104953 `__","" +"`LWG3632 `__","``unique_ptr`` ""Mandates: This constructor is not selected by class template argument deduction""","2022-02 (Virtual)","|Nothing To Do|","","`#104954 `__","" +"`LWG3643 `__","Missing ``constexpr`` in ``std::counted_iterator`` ","2022-02 (Virtual)","|Complete|","19","`#104955 `__","" +"`LWG3648 `__","``format`` should not print ``bool`` with ``'c'`` ","2022-02 (Virtual)","|Complete|","15","`#104956 `__","" +"`LWG3649 `__","[fund.ts.v2] Reinstate and bump ``__cpp_lib_experimental_memory_resource`` feature test macro","2022-02 (Virtual)","","","`#104957 `__","" +"`LWG3650 `__","Are ``std::basic_string`` 's ``iterator`` and ``const_iterator`` constexpr iterators?","2022-02 (Virtual)","|Nothing To Do|","","`#104958 `__","" +"`LWG3654 `__","``basic_format_context::arg(size_t)`` should be ``noexcept`` ","2022-02 (Virtual)","|Complete|","15","`#104959 `__","" +"`LWG3657 `__","``std::hash`` is not enabled","2022-02 (Virtual)","|Complete|","17","`#104960 `__","" +"`LWG3660 `__","``iterator_traits::pointer`` should conform to §[iterator.traits]","2022-02 (Virtual)","|Complete|","14","`#104961 `__","" +"`LWG3661 `__","``constinit atomic> a(nullptr);`` should work","2022-02 (Virtual)","","","`#104962 `__","" +"","","","","","","" +"`LWG3564 `__","``transform_view::iterator::value_type`` and ``iterator_category`` should use ``const F&``","2022-07 (Virtual)","|Complete|","20","`#104963 `__","" +"`LWG3617 `__","``function``/``packaged_task`` deduction guides and deducing ``this``","2022-07 (Virtual)","","","`#104965 `__","" +"`LWG3656 `__","Inconsistent bit operations returning a count","2022-07 (Virtual)","|Complete|","15","`#104966 `__","" +"`LWG3659 `__","Consider ``ATOMIC_FLAG_INIT`` undeprecation","2022-07 (Virtual)","|Complete|","15","`#104968 `__","" +"`LWG3670 `__","``Cpp17InputIterators`` don't have integer-class difference types","2022-07 (Virtual)","","","`#104969 `__","" +"`LWG3671 `__","``atomic_fetch_xor`` missing from ``stdatomic.h``","2022-07 (Virtual)","|Complete|","20","`#104970 `__","" +"`LWG3672 `__","``common_iterator::operator->()`` should return by value","2022-07 (Virtual)","|Complete|","19","`#104971 `__","" +"`LWG3683 `__","``operator==`` for ``polymorphic_allocator`` cannot deduce template argument in common cases","2022-07 (Virtual)","|Complete|","20","`#104972 `__","" +"`LWG3687 `__","``expected`` move constructor should move","2022-07 (Virtual)","|Complete|","16","`#104973 `__","" +"`LWG3692 `__","``zip_view::iterator``'s ``operator<=>`` is overconstrained","2022-07 (Virtual)","|Complete|","20","`#104975 `__","" +"`LWG3701 `__","Make ``formatter, charT>`` requirement explicit","2022-07 (Virtual)","|Complete|","15","`#104976 `__","" +"`LWG3702 `__","Should ``zip_transform_view::iterator`` remove ``operator<``","2022-07 (Virtual)","|Complete|","22","`#104977 `__","" +"`LWG3703 `__","Missing requirements for ``expected`` requires ``is_void``","2022-07 (Virtual)","|Complete|","16","`#104978 `__","" +"`LWG3704 `__","LWG 2059 added overloads that might be ill-formed for sets","2022-07 (Virtual)","","","`#104979 `__","" +"`LWG3705 `__","Hashability shouldn't depend on basic_string's allocator","2022-07 (Virtual)","|Complete|","16","`#104980 `__","" +"`LWG3707 `__","chunk_view::outer-iterator::value_type::size should return unsigned type","2022-07 (Virtual)","","","`#104981 `__","" +"`LWG3708 `__","``take_while_view::sentinel``'s conversion constructor should move","2022-07 (Virtual)","|Complete|","16","`#104982 `__","" +"`LWG3709 `__","LWG-3703 was underly ambitious","2022-07 (Virtual)","","","`#104983 `__","" +"`LWG3710 `__","The ``end`` of ``chunk_view`` for input ranges can be ``const``","2022-07 (Virtual)","","","`#104985 `__","" +"`LWG3711 `__","Missing preconditions for slide_view constructor","2022-07 (Virtual)","","","`#104987 `__","" +"`LWG3712 `__","``chunk_view`` and ``slide_view`` should not be ``default_initializable``","2022-07 (Virtual)","","","`#104988 `__","" +"`LWG3713 `__","Sorted with respect to comparator (only)","2022-07 (Virtual)","|Nothing To Do|","","`#104989 `__","" +"`LWG3715 `__","``view_interface::empty`` is overconstrained","2022-07 (Virtual)","|Complete|","19","`#104990 `__","" +"`LWG3719 `__","Directory iterators should be usable with default sentinel","2022-07 (Virtual)","|Complete|","17","`#104992 `__","" +"`LWG3721 `__","Allow an ``arg-id`` with a value of zero for ``width`` in ``std-format-spec``","2022-07 (Virtual)","|Complete|","16","`#104993 `__","" +"`LWG3724 `__","``decay-copy`` should be constrained","2022-07 (Virtual)","|Complete|","14","`#104994 `__","" +"","","","","","","" +"`LWG3028 `__","Container requirements tables should distinguish ``const`` and non-``const`` variables","2022-11 (Kona)","","","`#104995 `__","" +"`LWG3118 `__","``fpos`` equality comparison unspecified","2022-11 (Kona)","","","`#104996 `__","" +"`LWG3177 `__","Limit permission to specialize variable templates to program-defined types","2022-11 (Kona)","|Nothing To Do|","","`#104997 `__","" +"`LWG3515 `__","§[stacktrace.basic.nonmem]: ``operator<<`` should be less templatized","2022-11 (Kona)","","","`#104998 `__","" +"`LWG3545 `__","``std::pointer_traits`` should be SFINAE-friendly","2022-11 (Kona)","|Complete|","18","`#104999 `__","" +"`LWG3569 `__","``join_view`` fails to support ranges of ranges with non-default_initializable iterators","2022-11 (Kona)","","","`#105000 `__","" +"`LWG3594 `__","``inout_ptr`` — inconsistent ``release()`` in destructor","2022-11 (Kona)","|Complete|","19","`#105001 `__","" +"`LWG3597 `__","Unsigned integer types don't model advanceable","2022-11 (Kona)","","","`#105002 `__","" +"`LWG3600 `__","Making ``istream_iterator`` copy constructor trivial is an ABI break","2022-11 (Kona)","|Complete|","","`#105003 `__","" +"`LWG3629 `__","``make_error_code`` and ``make_error_condition`` are customization points","2022-11 (Kona)","|Complete|","16","`#105004 `__","" +"`LWG3636 `__","``formatter::format`` should be ``const``-qualified","2022-11 (Kona)","|Complete|","16","`#105005 `__","" +"`LWG3646 `__","``std::ranges::view_interface::size`` returns a signed type","2022-11 (Kona)","|Complete|","16","`#105006 `__","" +"`LWG3677 `__","Is a cv-qualified ``pair`` specially handled in uses-allocator construction?","2022-11 (Kona)","|Complete|","18","`#105007 `__","" +"`LWG3717 `__","``common_view::end`` should improve ``random_access_range`` case","2022-11 (Kona)","","","`#105008 `__","" +"`LWG3732 `__","``prepend_range`` and ``append_range`` can't be amortized constant time","2022-11 (Kona)","|Nothing To Do|","","`#105011 `__","" +"`LWG3736 `__","``move_iterator`` missing ``disable_sized_sentinel_for`` specialization","2022-11 (Kona)","|Complete|","19","`#105012 `__","" +"`LWG3737 `__","``take_view::sentinel`` should provide ``operator-``","2022-11 (Kona)","","","`#105013 `__","" +"`LWG3738 `__","Missing preconditions for ``take_view`` constructor","2022-11 (Kona)","|Complete|","16","`#105014 `__","" +"`LWG3743 `__","``ranges::to``'s reserve may be ill-formed","2022-11 (Kona)","","","`#105015 `__","" +"`LWG3745 `__","``std::atomic_wait`` and its friends lack ``noexcept``","2022-11 (Kona)","|Complete|","16","`#105016 `__","" +"`LWG3746 `__","``optional``'s spaceship with ``U`` with a type derived from optional causes infinite constraint meta-recursion","2022-11 (Kona)","|Complete|","17","`#105017 `__","" +"`LWG3747 `__","``ranges::uninitialized_copy_n``, ``ranges::uninitialized_move_n``, and ``ranges::destroy_n`` should use ``std::move``","2022-11 (Kona)","","","`#105018 `__","" +"`LWG3750 `__","Too many papers bump ``__cpp_lib_format``","2022-11 (Kona)","|Partial|","","`#105020 `__","Only ``__cpp_lib_format_ranges`` is fully implemented" +"`LWG3751 `__","Missing feature macro for ``flat_set``","2022-11 (Kona)","","","`#105021 `__","" +"`LWG3753 `__","Clarify entity vs. freestanding entity","2022-11 (Kona)","","","`#105022 `__","" +"`LWG3754 `__","Class template expected synopsis contains declarations that do not match the detailed description","2022-11 (Kona)","|Nothing To Do|","","`#105023 `__","" +"`LWG3755 `__","``tuple-for-each`` can call ``user-defined`` ``operator,``","2022-11 (Kona)","|Complete|","17","`#105024 `__","" +"`LWG3757 `__","What's the effect of ``std::forward_like(x)``?","2022-11 (Kona)","|Complete|","","`#105026 `__","" +"`LWG3759 `__","``ranges::rotate_copy`` should use ``std::move``","2022-11 (Kona)","|Complete|","15","`#105027 `__","" +"`LWG3760 `__","``cartesian_product_view::iterator``'s ``parent_`` is never valid","2022-11 (Kona)","","","`#105028 `__","" +"`LWG3761 `__","``cartesian_product_view::iterator::operator-`` should pass by reference","2022-11 (Kona)","","","`#105029 `__","" +"`LWG3762 `__","``generator::iterator::operator==`` should pass by reference","2022-11 (Kona)","","","`#105030 `__","" +"`LWG3764 `__","``reference_wrapper::operator()`` should propagate noexcept","2022-11 (Kona)","|Complete|","17","`#105031 `__","" +"`LWG3765 `__","``const_sentinel`` should be constrained","2022-11 (Kona)","","","`#105032 `__","" +"`LWG3766 `__","``view_interface::cbegin`` is underconstrained","2022-11 (Kona)","","","`#105033 `__","" +"`LWG3770 `__","``const_sentinel_t`` is missing","2022-11 (Kona)","","","`#105034 `__","" +"`LWG3773 `__","``views::zip_transform`` still requires ``F`` to be ``copy_constructible`` when empty pack","2022-11 (Kona)","|Complete|","22","`#105035 `__","" +"`LWG3774 `__","```` should include ````","2022-11 (Kona)","","","`#105036 `__","" +"`LWG3775 `__","Broken dependencies in the ``Cpp17Allocator`` requirements","2022-11 (Kona)","","","`#105038 `__","" +"`LWG3778 `__","``vector`` missing exception specifications","2022-11 (Kona)","|Complete|","3.7","`#105039 `__","" +"`LWG3781 `__","The exposition-only alias templates ``cont-key-type`` and ``cont-mapped-type`` should be removed","2022-11 (Kona)","|Nothing To Do|","","`#105040 `__","" +"`LWG3782 `__","Should ```` declare ``::lerp``?","2022-11 (Kona)","|Complete|","17","`#105041 `__","" +"`LWG3784 `__","std.compat should not provide ``::byte`` and its friends","2022-11 (Kona)","|Complete|","19","`#105042 `__","" +"`LWG3785 `__","``ranges::to`` is over-constrained on the destination type being a range","2022-11 (Kona)","","","`#105044 `__","" +"`LWG3788 `__","``jthread::operator=(jthread&&)`` postconditions are unimplementable under self-assignment","2022-11 (Kona)","","","`#105045 `__","" +"`LWG3792 `__","``__cpp_lib_constexpr_algorithms`` should also be defined in ````","2022-11 (Kona)","|Complete|","16","`#105046 `__","" +"`LWG3795 `__","Self-move-assignment of ``std::future`` and ``std::shared_future`` have unimplementable postconditions","2022-11 (Kona)","","","`#105047 `__","" +"`LWG3796 `__","``movable-box`` as member should use ``default-initialization`` instead of ``copy-initialization``","2022-11 (Kona)","","","`#105048 `__","" +"`LWG3798 `__","Rvalue reference and ``iterator_category``","2022-11 (Kona)","|Partial|","","`#105049 `__","``adjacent_transform_view`` hasn't been done yet since this type isn't implemented yet" +"`LWG3801 `__","``cartesian_product_view::iterator::distance-from`` ignores the size of last underlying range","2022-11 (Kona)","","","`#105051 `__","" +"`LWG3814 `__","Add freestanding items requested by NB comments","2022-11 (Kona)","","","`#105052 `__","" +"`LWG3816 `__","``flat_map`` and ``flat_multimap`` should impose sequence container requirements","2022-11 (Kona)","","","`#105053 `__","" +"`LWG3817 `__","Missing preconditions on ``forward_list`` modifiers","2022-11 (Kona)","","","`#105055 `__","" +"`LWG3818 `__","Exposition-only concepts are not described in library intro","2022-11 (Kona)","|Nothing To Do|","","`#105056 `__","" +"`LWG3822 `__","Avoiding normalization in ``filesystem::weakly_canonical``","2022-11 (Kona)","","","`#105057 `__","" +"`LWG3823 `__","Unnecessary precondition for ``is_aggregate``","2022-11 (Kona)","|Nothing To Do|","","`#105058 `__","" +"`LWG3824 `__","Number of ``bind`` placeholders is underspecified","2022-11 (Kona)","|Nothing To Do|","","`#105060 `__","" +"`LWG3826 `__","Redundant specification [for overload of yield_value]","2022-11 (Kona)","|Nothing To Do|","","`#105061 `__","" +"","","","","","","" +"`LWG2195 `__","Missing constructors for ``match_results``","2023-02 (Issaquah)","","","`#105062 `__","" +"`LWG2295 `__","Locale name when the provided ``Facet`` is a ``nullptr``","2023-02 (Issaquah)","","","`#105063 `__","" +"`LWG3032 `__","``ValueSwappable`` requirement missing for ``push_heap`` and ``make_heap``","2023-02 (Issaquah)","","","`#105064 `__","" +"`LWG3085 `__","``char_traits::copy`` precondition too weak","2023-02 (Issaquah)","","","`#105065 `__","" +"`LWG3664 `__","`LWG 3392 `__ ``broke std::ranges::distance(a, a+3)``","2023-02 (Issaquah)","","","`#105066 `__","" +"`LWG3720 `__","Restrict the valid types of ``arg-id`` for width and precision in ``std-format-spec``","2023-02 (Issaquah)","|Complete|","17","`#105067 `__","" +"`LWG3756 `__","Is the ``std::atomic_flag`` class signal-safe?","2023-02 (Issaquah)","","","`#105068 `__","" +"`LWG3769 `__","``basic_const_iterator::operator==`` causes infinite constraint recursion","2023-02 (Issaquah)","","","`#105069 `__","" +"`LWG3807 `__","The feature test macro for ``ranges::find_last`` should be renamed","2023-02 (Issaquah)","","","`#105070 `__","" +"`LWG3811 `__","``views::as_const`` on ``ref_view`` should return ``ref_view``","2023-02 (Issaquah)","","","`#105071 `__","" +"`LWG3820 `__","``cartesian_product_view::iterator::prev`` is not quite right","2023-02 (Issaquah)","","","`#105072 `__","" +"`LWG3825 `__","Missing compile-time argument ``id`` check in ``basic_format_parse_context::next_arg_id``","2023-02 (Issaquah)","|Complete|","17","`#105073 `__","" +"`LWG3204 `__","``sub_match::swap`` only swaps the base class","2023-02 (Issaquah)","|Complete|","17","`#105074 `__","" +"`LWG3733 `__","``ranges::to`` misuses ``cpp17-input-iterator``","2023-02 (Issaquah)","|Complete|","17","`#105075 `__","" +"`LWG3742 `__","``deque::prepend_range`` needs to permute","2023-02 (Issaquah)","","","`#105077 `__","" +"`LWG3790 `__","`P1467 `__ accidentally changed ``nexttoward``'s signature","2023-02 (Issaquah)","","","`#105078 `__","" +"`LWG3819 `__","``reference_meows_from_temporary`` should not use ``is_meowible``","2023-02 (Issaquah)","","","`#105079 `__","" +"`LWG3821 `__","``uses_allocator_construction_args`` should have overload for ``pair-like``","2023-02 (Issaquah)","|Complete|","18","`#105080 `__","" +"`LWG3834 `__","Missing ``constexpr`` for ``std::intmax_t`` math functions in ````","2023-02 (Issaquah)","","","`#105081 `__","" +"`LWG3839 `__","``range_formatter``'s ``set_separator``, ``set_brackets``, and ``underlying`` functions should be ``noexcept``","2023-02 (Issaquah)","|Complete|","17","`#105082 `__","" +"`LWG3841 `__","```` should not be ""all freestanding""","2023-02 (Issaquah)","","","`#105083 `__","" +"`LWG3842 `__","Unclear wording for ``precision`` in ``chrono-format-spec``","2023-02 (Issaquah)","|Complete|","16","`#105085 `__","" +"`LWG3848 `__","``adjacent_view``, ``adjacent_transform_view`` and ``slide_view`` missing ``base`` accessor","2023-02 (Issaquah)","","","`#105086 `__","" +"`LWG3849 `__","``cartesian_product_view::iterator``'s default constructor is overconstrained","2023-02 (Issaquah)","","","`#105087 `__","" +"`LWG3850 `__","``views::as_const`` on ``empty_view`` should return ``empty_view``","2023-02 (Issaquah)","","","`#105088 `__","" +"`LWG3851 `__","``chunk_view::inner-iterator`` missing custom ``iter_move`` and ``iter_swap``","2023-02 (Issaquah)","","","`#105089 `__","" +"`LWG3853 `__","``basic_const_iterator::operator->`` is ill-formed","2023-02 (Issaquah)","","","`#105090 `__","" +"`LWG3857 `__","``basic_string_view`` should allow explicit conversion when only traits vary","2023-02 (Issaquah)","|Complete|","17","`#105092 `__","" +"`LWG3860 `__","``range_common_reference_t`` is missing","2023-02 (Issaquah)","|Complete|","17","`#105094 `__","" +"`LWG3866 `__","Bad Mandates for ``expected::transform_error`` overloads","2023-02 (Issaquah)","|Complete|","17","`#105095 `__","" +"`LWG3867 `__","Should ``std::basic_osyncstream``'s move assignment operator be ``noexcept``?","2023-02 (Issaquah)","|Complete|","18","`#105097 `__","" +"`LWG3441 `__","Misleading note about calls to customization points","2023-02 (Issaquah)","","","`#105098 `__","" +"`LWG3622 `__","Misspecified transitivity of equivalence in §[unord.req.general]","2023-02 (Issaquah)","","","`#105100 `__","" +"`LWG3631 `__","``basic_format_arg(T&&)`` should use ``remove_cvref_t`` throughout","2023-02 (Issaquah)","|Complete|","17","`#105101 `__","" +"`LWG3645 `__","``resize_and_overwrite`` is overspecified to call its callback with lvalues","2023-02 (Issaquah)","|Complete|","14","`#105102 `__","" +"`LWG3655 `__","The ``INVOKE`` operation and union types","2023-02 (Issaquah)","|Complete|","18","`#105103 `__","" +"`LWG3723 `__","``priority_queue::push_range`` needs to ``append_range``","2023-02 (Issaquah)","|Complete|","17","`#105104 `__","" +"`LWG3734 `__","Inconsistency in ``inout_ptr`` and ``out_ptr`` for empty case","2023-02 (Issaquah)","|Complete|","19","`#105105 `__","" +"`LWG3772 `__","``repeat_view``'s ``piecewise`` constructor is missing Postconditions","2023-02 (Issaquah)","|Complete|","17","`#105106 `__","" +"`LWG3786 `__","Flat maps' deduction guide needs to default ``Allocator`` to be useful","2023-02 (Issaquah)","","","`#105107 `__","" +"`LWG3803 `__","``flat_foo`` constructors taking ``KeyContainer`` lack ``KeyCompare`` parameter","2023-02 (Issaquah)","","","`#105108 `__","" +"`LWG3810 `__","CTAD for ``std::basic_format_args``","2023-02 (Issaquah)","|Complete|","17","`#105109 `__","" +"`LWG3827 `__","Deprecate ```` and ```` macros","2023-02 (Issaquah)","","","`#105110 `__","" +"`LWG3828 `__","Sync ``intmax_t`` and ``uintmax_t`` with C2x","2023-02 (Issaquah)","|Nothing To Do|","","`#105111 `__","" +"`LWG3833 `__","Remove specialization ``template struct formatter``","2023-02 (Issaquah)","|Complete|","17","`#105112 `__","" +"`LWG3836 `__","``std::expected`` conversion constructor ``expected(const expected&)`` should take precedence over ``expected(U&&)`` with operator ``bool``","2023-02 (Issaquah)","|Complete|","18","`#105113 `__","" +"`LWG3843 `__","``std::expected::value() &`` assumes ``E`` is copy constructible","2023-02 (Issaquah)","|Complete|","17","`#105114 `__","" +"`LWG3847 `__","``ranges::to`` can still return views","2023-02 (Issaquah)","|Complete|","17","`#105115 `__","" +"`LWG3862 `__","``basic_const_iterator``'s ``common_type`` specialization is underconstrained","2023-02 (Issaquah)","","","`#105116 `__","" +"`LWG3865 `__","Sorting a range of ``pairs``","2023-02 (Issaquah)","|Complete|","17","`#105117 `__","" +"`LWG3869 `__","Deprecate ``std::errc`` constants related to UNIX STREAMS","2023-02 (Issaquah)","|Complete|","19","`#105118 `__","" +"`LWG3870 `__","Remove ``voidify``","2023-02 (Issaquah)","|Complete|","20","`#105119 `__","" +"`LWG3871 `__","Adjust note about ``terminate``","2023-02 (Issaquah)","","","`#105122 `__","" +"`LWG3872 `__","``basic_const_iterator`` should have custom ``iter_move``","2023-02 (Issaquah)","","","`#105123 `__","" +"`LWG3875 `__","``std::ranges::repeat_view::iterator`` may be ill-formed","2023-02 (Issaquah)","|Complete|","17","`#105124 `__","" +"`LWG3876 `__","Default constructor of ``std::layout_XX::mapping`` misses precondition","2023-02 (Issaquah)","","","`#105125 `__","" +"`LWG3877 `__","Incorrect constraints on ``const``-qualified monadic overloads for ``std::expected``","2023-02 (Issaquah)","|Complete|","17","`#105126 `__","" +"`LWG3878 `__","import ``std;`` should guarantee initialization of standard iostreams objects","2023-02 (Issaquah)","","","`#105127 `__","" +"`LWG3879 `__","``erase_if`` for ``flat_{,multi}set`` is incorrectly specified","2023-02 (Issaquah)","","","`#105128 `__","" +"`LWG3880 `__","Clarify ``operator+=`` complexity for ``{chunk,stride}_view::iterator``","2023-02 (Issaquah)","","","`#105129 `__","" +"`LWG3881 `__","Incorrect formatting of container adapters backed by ``std::string``","2023-02 (Issaquah)","|Complete|","17","`#105130 `__","" diff --git a/libcxx/docs/Status/Cxx23Papers.csv b/libcxx/docs/Status/Cxx23Papers.csv index e4fa07d82289d..8b8705c6fb3f7 100644 --- a/libcxx/docs/Status/Cxx23Papers.csv +++ b/libcxx/docs/Status/Cxx23Papers.csv @@ -1,122 +1,122 @@ -"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","" -"`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","" -"`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","" -"`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","" -"`P0448R4 `__","A strstream replacement using span as buffer","2021-06 (Virtual)","","","" -"`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","" -"`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","" -"`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","" -"","","","","","" -"`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","" -"`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)","|Partial|","","Implemented the type traits only." -"`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)","|Partial|","","Only ``ranges::iota`` is implemented." -"`P2441R2 `__","``views::join_with``","2022-02 (Virtual)","|Complete|","21","" -"`P2442R1 `__","Windowing range adaptors: ``views::chunk`` and ``views::slide``","2022-02 (Virtual)","","","" -"`P2443R1 `__","``views::chunk_by``","2022-02 (Virtual)","|Complete|","18","" -"","","","","","" -"`P0009R18 `__","mdspan: A Non-Owning Multidimensional Array Reference","2022-07 (Virtual)","|Complete|","18","" -"`P0429R9 `__","A Standard ``flat_map``","2022-07 (Virtual)","|Complete|","20","" -"`P1169R4 `__","``static operator()``","2022-07 (Virtual)","|Complete|","16","" -"`P1222R4 `__","A Standard ``flat_set``","2022-07 (Virtual)","|Complete|","21","" -"`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","" -"`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","" -"`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","" -"`P2419R2 `__","Clarify handling of encodings in localized formatting of chrono types","2022-07 (Virtual)","","","" -"`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","" -"`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","" -"`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","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","" -"`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","" -"`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","" -"`P1478R8 `__","``Byte-wise`` ``atomic`` ``memcpy``","2022-11 (Kona)","","","" -"`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","" -"`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)","|Complete|","21","" -"`P2164R9 `__","``views::enumerate``","2023-02 (Issaquah)","","","" -"`P2711R1 `__","Making multi-param constructors of ``views`` ``explicit``","2023-02 (Issaquah)","|Complete|","21","" -"`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","" -"`P2655R3 `__","``common_reference_t`` of ``reference_wrapper`` Should Be a Reference Type","2023-02 (Issaquah)","|Complete|","21","The paper is implemented as a DR to C++20" -"`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","" -"`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","" +"Paper #","Paper Name","Meeting","Status","First released version","Github issue","Notes" +"`P0881R7 `__","A Proposal to add stacktrace library","2020-11 (Virtual)","","","`#105131 `__","" +"`P0943R6 `__","Support C atomics in C++","2020-11 (Virtual)","|Complete|","15","`#105132 `__","" +"`P1048R1 `__","A proposal for a type trait to detect scoped enumerations","2020-11 (Virtual)","|Complete|","12","`#105134 `__","" +"`P1679R3 `__","string contains function","2020-11 (Virtual)","|Complete|","12","`#105135 `__","" +"","","","","","","" +"`P1682R3 `__","std::to_underlying for enumerations","2021-02 (Virtual)","|Complete|","13","`#105136 `__","" +"`P2017R1 `__","Conditionally borrowed ranges","2021-02 (Virtual)","|Complete|","16","`#105138 `__","" +"`P2160R1 `__","Locks lock lockables","2021-02 (Virtual)","|Nothing To Do|","","`#105139 `__","" +"`P2162R2 `__","Inheriting from std::variant","2021-02 (Virtual)","|Complete|","13","`#105140 `__","" +"`P2212R2 `__","Relax Requirements for time_point::clock","2021-02 (Virtual)","|Nothing To Do|","","`#105141 `__","" +"`P2259R1 `__","Repairing input range adaptors and counted_iterator","2021-02 (Virtual)","","","`#105142 `__","" +"","","","","","","" +"`P0401R6 `__","Providing size feedback in the Allocator interface","2021-06 (Virtual)","|Complete|","15","`#105144 `__","" +"`P0448R4 `__","A strstream replacement using span as buffer","2021-06 (Virtual)","","","`#105145 `__","" +"`P1132R8 `__","out_ptr - a scalable output pointer abstraction","2021-06 (Virtual)","|Complete|","19","`#105146 `__","" +"`P1328R1 `__","Making std::type_info::operator== constexpr","2021-06 (Virtual)","|Complete|","17","`#105147 `__","" +"`P1425R4 `__","Iterators pair constructors for stack and queue","2021-06 (Virtual)","|Complete|","14","`#105149 `__","" +"`P1518R2 `__","Stop overconstraining allocators in container deduction guides","2021-06 (Virtual)","|Complete|","13","`#105150 `__","" +"`P1659R3 `__","starts_with and ends_with","2021-06 (Virtual)","|Complete|","19","`#105151 `__","" +"`P1951R1 `__","Default Arguments for pair Forwarding Constructor","2021-06 (Virtual)","|Complete|","14","`#105153 `__","" +"`P1989R2 `__","Range constructor for std::string_view","2021-06 (Virtual)","|Complete|","14","`#105154 `__","" +"`P2136R3 `__","invoke_r","2021-06 (Virtual)","|Complete|","17","`#105155 `__","" +"`P2166R1 `__","A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr","2021-06 (Virtual)","|Complete|","13","`#105156 `__","" +"","","","","","","" +"`P0288R9 `__","``any_invocable``","2021-10 (Virtual)","","","`#105157 `__","" +"`P0798R8 `__","Monadic operations for ``std::optional``","2021-10 (Virtual)","|Complete|","14","`#105158 `__","" +"`P0849R8 `__","``auto(x)``: ``DECAY_COPY`` in the language","2021-10 (Virtual)","|Complete|","14","`#105159 `__","" +"`P1072R10 `__","``basic_string::resize_and_overwrite``","2021-10 (Virtual)","|Complete|","14","`#105160 `__","" +"`P1147R1 `__","Printing ``volatile`` Pointers","2021-10 (Virtual)","|Complete|","14","`#105161 `__","" +"`P1272R4 `__","Byteswapping for fun&&nuf","2021-10 (Virtual)","|Complete|","14","`#105163 `__","" +"`P1675R2 `__","``rethrow_exception`` must be allowed to copy","2021-10 (Virtual)","|Nothing To Do|","","`#105164 `__","" +"`P2077R3 `__","Heterogeneous erasure overloads for associative containers","2021-10 (Virtual)","","","`#105165 `__","" +"`P2251R1 `__","Require ``span`` & ``basic_string_view`` to be Trivially Copyable","2021-10 (Virtual)","|Complete|","14","`#105166 `__","" +"`P2301R1 `__","Add a ``pmr`` alias for ``std::stacktrace``","2021-10 (Virtual)","","","`#105167 `__","" +"`P2321R2 `__","``zip``","2021-10 (Virtual)","|In Progress|","","`#105169 `__","" +"`P2340R1 `__","Clarifying the status of the 'C headers'","2021-10 (Virtual)","|Nothing To Do|","","`#105170 `__","" +"`P2393R1 `__","Cleaning up ``integer``-class types","2021-10 (Virtual)","","","`#105171 `__","" +"`P2401R0 `__","Add a conditional ``noexcept`` specification to ``std::exchange``","2021-10 (Virtual)","|Complete|","14","`#105172 `__","" +"","","","","","","" +"`P0323R12 `__","``std::expected``","2022-02 (Virtual)","|Complete|","16","`#105173 `__","" +"`P0533R9 `__","``constexpr`` for ```` and ````","2022-02 (Virtual)","|In Progress|","","`#105174 `__","``isfinite``, ``isinf``, ``isnan`` and ``isnormal`` are implemented" +"`P0627R6 `__","Function to mark unreachable code","2022-02 (Virtual)","|Complete|","15","`#105175 `__","" +"`P1206R7 `__","``ranges::to``: A function to convert any range to a container","2022-02 (Virtual)","|Complete|","17","`#105176 `__","" +"`P1413R3 `__","Deprecate ``std::aligned_storage`` and ``std::aligned_union``","2022-02 (Virtual)","|Complete|","","`#105177 `__","``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)","|Partial|","","`#105180 `__","Implemented the type traits only." +"`P2273R3 `__","Making ``std::unique_ptr`` constexpr","2022-02 (Virtual)","|Complete|","16","`#105182 `__","" +"`P2387R3 `__","Pipe support for user-defined range adaptors","2022-02 (Virtual)","|Complete|","19","`#105183 `__","" +"`P2440R1 `__","``ranges::iota``, ``ranges::shift_left`` and ``ranges::shift_right``","2022-02 (Virtual)","|Partial|","","`#105184 `__","Only ``ranges::iota`` is implemented." +"`P2441R2 `__","``views::join_with``","2022-02 (Virtual)","|Complete|","21","`#105185 `__","" +"`P2442R1 `__","Windowing range adaptors: ``views::chunk`` and ``views::slide``","2022-02 (Virtual)","","","`#105187 `__","" +"`P2443R1 `__","``views::chunk_by``","2022-02 (Virtual)","|Complete|","18","`#105188 `__","" +"","","","","","","" +"`P0009R18 `__","mdspan: A Non-Owning Multidimensional Array Reference","2022-07 (Virtual)","|Complete|","18","`#105189 `__","" +"`P0429R9 `__","A Standard ``flat_map``","2022-07 (Virtual)","|Complete|","20","`#105190 `__","" +"`P1169R4 `__","``static operator()``","2022-07 (Virtual)","|Complete|","16","`#105192 `__","" +"`P1222R4 `__","A Standard ``flat_set``","2022-07 (Virtual)","|Complete|","21","`#105193 `__","" +"`P1223R5 `__","``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()``","2022-07 (Virtual)","|Complete|","19","`#105194 `__","" +"`P1467R9 `__","Extended ``floating-point`` types and standard names","2022-07 (Virtual)","","","`#105196 `__","" +"`P1642R11 `__","Freestanding ``[utilities]``, ``[ranges]``, and ``[iterators]``","2022-07 (Virtual)","","","`#105197 `__","" +"`P1899R3 `__","``stride_view``","2022-07 (Virtual)","","","`#105198 `__","" +"`P2093R14 `__","Formatted output","2022-07 (Virtual)","|Complete|","18","`#105199 `__","" +"`P2165R4 `__","Compatibility between ``tuple``, ``pair`` and ``tuple-like`` objects","2022-07 (Virtual)","|Partial|","","`#105200 `__","Only the part for ``zip_view`` is implemented." +"`P2278R4 `__","``cbegin`` should always return a constant iterator","2022-07 (Virtual)","","","`#105201 `__","" +"`P2286R8 `__","Formatting Ranges","2022-07 (Virtual)","|Complete|","16","`#105202 `__","" +"`P2291R3 `__","Add Constexpr Modifiers to Functions ``to_chars`` and ``from_chars`` for Integral Types in ```` Header","2022-07 (Virtual)","|Complete|","16","`#105204 `__","" +"`P2302R4 `__","``std::ranges::contains``","2022-07 (Virtual)","|Complete|","19","`#105206 `__","" +"`P2322R6 `__","``ranges::fold``","2022-07 (Virtual)","","","`#105208 `__","" +"`P2374R4 `__","``views::cartesian_product``","2022-07 (Virtual)","","","`#105209 `__","" +"`P2404R3 `__","Move-only types for ``equality_comparable_with``, ``totally_ordered_with``, and ``three_way_comparable_with``","2022-07 (Virtual)","","","`#105210 `__","" +"`P2408R5 `__","Ranges iterators as inputs to non-Ranges algorithms","2022-07 (Virtual)","","","`#105211 `__","" +"`P2417R2 `__","A more ``constexpr`` ``bitset``","2022-07 (Virtual)","|Complete|","16","`#105212 `__","" +"`P2419R2 `__","Clarify handling of encodings in localized formatting of chrono types","2022-07 (Virtual)","","","`#105213 `__","" +"`P2438R2 `__","``std::string::substr() &&``","2022-07 (Virtual)","|Complete|","16","`#105215 `__","" +"`P2445R1 `__","``forward_like``","2022-07 (Virtual)","|Complete|","16","`#105216 `__","" +"`P2446R2 `__","``views::as_rvalue``","2022-07 (Virtual)","|Complete|","16","`#105217 `__","" +"`P2460R2 `__","Relax requirements on ``wchar_t`` to match existing practices","2022-07 (Virtual)","|Nothing To Do|","","`#105218 `__","" +"`P2465R3 `__","Standard Library Modules ``std`` and ``std.compat``","2022-07 (Virtual)","|Complete|","19","`#105219 `__","" +"`P2467R1 `__","Support exclusive mode for ``fstreams``","2022-07 (Virtual)","|Complete|","18","`#105221 `__","" +"`P2474R2 `__","``views::repeat``","2022-07 (Virtual)","|Complete|","17","`#105222 `__","" +"`P2494R2 `__","Relaxing range adaptors to allow for move only types","2022-07 (Virtual)","|Complete|","17","`#105224 `__","" +"`P2499R0 `__","``string_view`` range constructor should be ``explicit``","2022-07 (Virtual)","|Complete|","16","`#105225 `__","" +"`P2502R2 `__","``std::generator``: Synchronous Coroutine Generator for Ranges","2022-07 (Virtual)","","","`#105226 `__","" +"`P2508R1 `__","Exposing ``std::basic-format-string``","2022-07 (Virtual)","|Complete|","15","`#105227 `__","" +"`P2517R1 `__","Add a conditional ``noexcept`` specification to ``std::apply``","2022-07 (Virtual)","|Complete|","3.9","`#105229 `__","" +"`P2520R0 `__","``move_iterator`` should be a random access iterator","2022-07 (Virtual)","|Complete|","17","`#105230 `__","Implemented as a DR in C++20" +"`P2540R1 `__","Empty Product for certain Views","2022-07 (Virtual)","","","`#105231 `__","" +"`P2549R1 `__","``std::unexpected`` should have ``error()`` as member accessor","2022-07 (Virtual)","|Complete|","16","`#105232 `__","" +"`P2585R0 `__","Improving default container formatting","2022-07 (Virtual)","|Complete|","17","`#105233 `__","" +"`P2590R2 `__","Explicit lifetime management","2022-07 (Virtual)","","","`#105234 `__","" +"`P2599R2 `__","``mdspan::size_type`` should be ``index_type``","2022-07 (Virtual)","|Complete|","18","`#105235 `__","" +"`P2604R0 `__","mdspan: rename pointer and contiguous","2022-07 (Virtual)","|Complete|","18","`#105236 `__","" +"`P2613R1 `__","Add the missing ``empty`` to ``mdspan``","2022-07 (Virtual)","|Complete|","18","`#105237 `__","" +"","","","","","","" +"`P1202R5 `__","Asymmetric Fences","2022-11 (Kona)","","","`#105238 `__","" +"`P1264R2 `__","Revising the wording of ``stream`` input operations","2022-11 (Kona)","|Complete|","9","`#105239 `__","" +"`P1478R8 `__","``Byte-wise`` ``atomic`` ``memcpy``","2022-11 (Kona)","","","`#105240 `__","" +"`P2167R3 `__","Improved Proposed Wording for LWG 2114","2022-11 (Kona)","|Complete|","20","`#105241 `__","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)","","","`#105242 `__","" +"`P2505R5 `__","Monadic Functions for ``std::expected``","2022-11 (Kona)","|Complete|","17","`#105243 `__","" +"`P2539R4 `__","Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?","2022-11 (Kona)","|Complete|","18","`#105245 `__","" +"`P2602R2 `__","Poison Pills are Too Toxic","2022-11 (Kona)","|Complete|","19","`#105246 `__","Implemented as a DR in C++20." +"`P2708R1 `__","No Further Fundamentals TSes","2022-11 (Kona)","|Nothing To Do|","","`#105247 `__","" +"","","","","","","" +"`P0290R4 `__","``apply()`` for ``synchronized_value``","2023-02 (Issaquah)","","","`#105249 `__","" +"`P2770R0 `__","Stashing stashing ``iterators`` for proper flattening","2023-02 (Issaquah)","|Complete|","21","`#105250 `__","" +"`P2164R9 `__","``views::enumerate``","2023-02 (Issaquah)","","","`#105251 `__","" +"`P2711R1 `__","Making multi-param constructors of ``views`` ``explicit``","2023-02 (Issaquah)","|Complete|","21","`#105252 `__","" +"`P2609R3 `__","Relaxing Ranges Just A Smidge","2023-02 (Issaquah)","|Complete|","20","`#105253 `__","Implemented as a DR in C++20. Other implementations will do the same." +"`P2713R1 `__","Escaping improvements in ``std::format``","2023-02 (Issaquah)","|Complete|","19","`#105254 `__","" +"`P2675R1 `__","``format``'s width estimation is too approximate and not forward compatible","2023-02 (Issaquah)","|Complete|","17","`#105255 `__","" +"`P2572R1 `__","``std::format`` fill character allowances","2023-02 (Issaquah)","|Complete|","17","`#105256 `__","" +"`P2693R1 `__","Formatting ``thread::id`` and ``stacktrace``","2023-02 (Issaquah)","|Partial|","","`#105257 `__","The formatter for ``stacktrace`` is not implemented, since ``stacktrace`` is not implemented yet" +"`P2679R2 `__","Fixing ``std::start_lifetime_as`` for arrays","2023-02 (Issaquah)","","","`#105258 `__","" +"`P2674R1 `__","A trait for implicit lifetime types","2023-02 (Issaquah)","|Complete|","20","`#105259 `__","" +"`P2655R3 `__","``common_reference_t`` of ``reference_wrapper`` Should Be a Reference Type","2023-02 (Issaquah)","|Complete|","21","`#105260 `__","The paper is implemented as a DR to C++20" +"`P2652R2 `__","Disallow User Specialization of ``allocator_traits``","2023-02 (Issaquah)","|Complete|","19","`#105262 `__","" +"`P2787R1 `__","``pmr::generator`` - Promise Types are not Values","2023-02 (Issaquah)","","","`#105263 `__","" +"`P2614R2 `__","Deprecate ``numeric_limits::has_denorm``","2023-02 (Issaquah)","|Complete|","18","`#105264 `__","" +"`P2588R3 `__","``barrier``’s phase completion guarantees","2023-02 (Issaquah)","","","`#105265 `__","" +"`P2763R1 `__","``layout_stride`` static extents default constructor fix","2023-02 (Issaquah)","","","`#105266 `__","" +"`P2736R2 `__","Referencing The Unicode Standard","2023-02 (Issaquah)","|Complete|","19","`#105267 `__","" diff --git a/libcxx/docs/Status/Cxx2cIssues.csv b/libcxx/docs/Status/Cxx2cIssues.csv index 6fcb2f3c78cfc..27c8142c6c38f 100644 --- a/libcxx/docs/Status/Cxx2cIssues.csv +++ b/libcxx/docs/Status/Cxx2cIssues.csv @@ -1,152 +1,152 @@ -"Issue #","Issue Name","Meeting","Status","First released version","Notes" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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)","|Complete|","","" -"`LWG3990 `__","Program-defined specializations of ``std::tuple`` and ``std::variant`` can't be properly supported","2023-11 (Kona)","|Complete|","21","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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","" -"`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)","|Complete|","21","" -"`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","" -"`LWG4071 `__","``reference_wrapper`` comparisons are not SFINAE-friendly","2024-06 (St. Louis)","|Complete|","19","" -"`LWG4074 `__","``compatible-joinable-ranges`` is underconstrained","2024-06 (St. Louis)","|Complete|","21","" -"`LWG4076 `__","``concat_view`` should be freestanding","2024-06 (St. Louis)","","","" -"`LWG4079 `__","Missing Preconditions in ``concat_view::iterator``\`s conversion constructor","2024-06 (St. Louis)","","","" -"`LWG4082 `__","``views::concat(r)`` is well-formed when ``r`` is an ``output_range``","2024-06 (St. Louis)","","","" -"`LWG4083 `__","``views::as_rvalue`` should reject non-input ranges","2024-06 (St. Louis)","","","" -"`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","" -"","","","","","" -"`LWG3216 `__","Rebinding the allocator before calling ``construct``/``destroy`` in ``allocate_shared``","2024-11 (Wrocław)","","","" -"`LWG3436 `__","``std::construct_at`` should support arrays","2024-11 (Wrocław)","","","" -"`LWG3886 `__","Monad mo' problems","2024-11 (Wrocław)","","","" -"`LWG3899 `__","``co_yield``\ing elements of an lvalue generator is unnecessarily inefficient","2024-11 (Wrocław)","","","" -"`LWG3900 `__","The ``allocator_arg_t`` overloads of ``generator::promise_type::operator new`` should not be constrained","2024-11 (Wrocław)","","","" -"`LWG3918 `__","``std::uninitialized_move/_n`` and guaranteed copy elision","2024-11 (Wrocław)","","","" -"`LWG4014 `__","LWG 3809 changes behavior of some existing ``std::subtract_with_carry_engine code``","2024-11 (Wrocław)","","","" -"`LWG4024 `__","Underspecified destruction of objects created in ``std::make_shared_for_overwrite``/``std::allocate_shared_for_overwrite``","2024-11 (Wrocław)","|Complete|","16","" -"`LWG4027 `__","``possibly-const-range`` should prefer returning ``const R&``","2024-11 (Wrocław)","","","" -"`LWG4044 `__","Confusing requirements for ``std::print`` on POSIX platforms","2024-11 (Wrocław)","","","" -"`LWG4064 `__","Clarify that ``std::launder`` is not needed when using the result of ``std::memcpy``","2024-11 (Wrocław)","","","" -"`LWG4072 `__","``std::optional`` comparisons: constrain harder","2024-11 (Wrocław)","","","" -"`LWG4084 `__","``std::fixed`` ignores ``std::uppercase``","2024-11 (Wrocław)","","","" -"`LWG4085 `__","``ranges::generate_random``'s helper lambda should specify the return type","2024-11 (Wrocław)","","","" -"`LWG4088 `__","``println`` ignores the locale imbued in ``std::ostream``","2024-11 (Wrocław)","|Complete|","18","" -"`LWG4112 `__","``has-arrow`` should required ``operator->()`` to be ``const``-qualified","2024-11 (Wrocław)","","","" -"`LWG4113 `__","Disallow ``has_unique_object_representations``","2024-11 (Wrocław)","|Complete|","","" -"`LWG4119 `__","``generator::promise_type::yield_value(ranges::elements_of)``'s nested ``generator`` may be ill-formed","2024-11 (Wrocław)","","","" -"`LWG4124 `__","Cannot format ``zoned_time`` with resolution coarser than ``seconds``","2024-11 (Wrocław)","","","" -"`LWG4126 `__","Some feature-test macros for fully freestanding features are not yet marked freestanding","2024-11 (Wrocław)","","","" -"`LWG4134 `__","Issue with Philox algorithm specification","2024-11 (Wrocław)","","","" -"`LWG4135 `__","The helper lambda of ``std::erase`` for list should specify return type as ``bool``","2024-11 (Wrocław)","|Complete|","21","" -"`LWG4140 `__","Useless default constructors for bit reference types","2024-11 (Wrocław)","|Complete|","","" -"`LWG4141 `__","Improve prohibitions on ""additional storage""","2024-11 (Wrocław)","","","" -"`LWG4142 `__","``format_parse_context::check_dynamic_spec`` should require at least one type","2024-11 (Wrocław)","","","" -"`LWG4144 `__","Disallow ``unique_ptr``","2024-11 (Wrocław)","","","" -"`LWG4147 `__","Precondition on ``inplace_vector::emplace``","2024-11 (Wrocław)","","","" -"`LWG4148 `__","``unique_ptr::operator*`` should not allow dangling references","2024-11 (Wrocław)","","","" -"`LWG4153 `__","Fix extra ""-1"" for ``philox_engine::max()``","2024-11 (Wrocław)","","","" -"`LWG4154 `__","The Mandates for ``std::packaged_task``'s constructor from a callable entity should consider decaying","2024-11 (Wrocław)","","","" -"`LWG4157 `__","The resolution of LWG3465 was damaged by P2167R3","2024-11 (Wrocław)","|Complete|","20","" -"`LWG4164 `__","Missing guarantees for ``forward_list`` modifiers","2024-11 (Wrocław)","|Complete|","21","" -"`LWG4169 `__","``std::atomic``'s default constructor should be constrained","2024-11 (Wrocław)","","","" -"`LWG4170 `__","``contiguous_iterator`` should require ``to_address(I{})``","2024-11 (Wrocław)","","","" -"","","","","","" -"`LWG3578 `__","Iterator SCARYness in the context of associative container merging","2025-02 (Hagenberg)","","","" -"`LWG3956 `__","``chrono::parse`` uses ``from_stream`` as a customization point","2025-02 (Hagenberg)","","","" -"`LWG4172 `__","``unique_lock`` self-move-assignment is broken","2025-02 (Hagenberg)","","","" -"`LWG4175 `__","``get_env()`` specified in terms of ``as_const()`` but this doesn't work with rvalue senders","2025-02 (Hagenberg)","","","" -"`LWG4179 `__","Wrong range in ``[alg.search]``","2025-02 (Hagenberg)","","","" -"`LWG4186 `__","``regex_traits::transform_primary`` mistakenly detects ``typeid`` of a function","2025-02 (Hagenberg)","","","" -"`LWG4189 `__","``cache_latest_view`` should be freestanding","2025-02 (Hagenberg)","","","" -"`LWG4191 `__","P1467 changed the return type of ``pow(complex, int)``","2025-02 (Hagenberg)","","","" -"`LWG4196 `__","Complexity of ``inplace_merge()`` is incorrect","2025-02 (Hagenberg)","","","" -"","","","","","" -"`LWG4198 `__","``schedule_from`` isn't starting the schedule sender if decay-copying results throws","2025-06 (Sofia)","","","" -"`LWG4202 `__","``enable-sender`` should be a variable template","2025-06 (Sofia)","","","" -"`LWG4203 `__","Constraints on ``get-state`` functions are incorrect","2025-06 (Sofia)","","","" -"`LWG4204 `__","specification of ``as-sndr2(Sig)`` in [exec.let] is incomplete","2025-06 (Sofia)","","","" -"`LWG4205 `__","``let_[*].transform_env`` is specified in terms of the ``let_*`` sender itself instead of its child","2025-06 (Sofia)","","","" -"`LWG4208 `__","Wording needs to ensure that in ``connect(sndr, rcvr)`` that ``rcvr`` expression is only evaluated once","2025-06 (Sofia)","","","" -"`LWG4209 `__","``default_domain::transform_env`` should be returning ``FWD-ENV(env)``","2025-06 (Sofia)","","","" -"`LWG4188 `__","``ostream::sentry`` destructor should handle exceptions","2025-06 (Sofia)","","","" -"`LWG4200 `__","The ``operation_state`` concept can be simplified","2025-06 (Sofia)","","","" -"`LWG4201 `__","``with-await-transform::await_transform`` should not use a deduced return type","2025-06 (Sofia)","","","" -"`LWG4217 `__","Clarify ``mdspan`` layout mapping requirements for ``rank == 0``","2025-06 (Sofia)","","","" -"`LWG4222 `__","``expected`` constructor from a single value missing a constraint","2025-06 (Sofia)","","","" -"`LWG4224 `__","Philox engines should be freestanding","2025-06 (Sofia)","","","" -"`LWG4227 `__","Missing ``noexcept`` operator in [exec.when.all]","2025-06 (Sofia)","","","" -"`LWG4231 `__","``datapar::chunk`` should use ``simd-size-type`` instead of ``size_t``","2025-06 (Sofia)","","","" -"`LWG4232 `__","``datapar::resize`` does not resize","2025-06 (Sofia)","","","" -"`LWG4233 `__","The helper lambda of ``std::erase`` for ``hive`` should specify return type as ``bool``","2025-06 (Sofia)","","","" -"`LWG4234 `__","Including ```` doesn't provide ``std::begin/end``","2025-06 (Sofia)","","","" -"`LWG4235 `__","``cache_latest_view`` and ``to_input_view`` miss ``reserve_hint``","2025-06 (Sofia)","","","" -"`LWG4236 `__","``chunk_view::outer-iterator::value_type`` should provide ``reserve_hint``","2025-06 (Sofia)","","","" -"`LWG4239 `__","``flat_map``'s transparent comparator no longer works for string literals","2025-06 (Sofia)","","","" -"`LWG4242 `__","``ranges::distance`` does not work with volatile iterators","2025-06 (Sofia)","","","" -"`LWG4245 `__","Operators that interact with ``counted_iterator`` and ``default_sentinel_t`` should be ``noexcept``","2025-06 (Sofia)","","","" -"`LWG4247 `__","Header ```` is not yet freestanding","2025-06 (Sofia)","","","" -"","","","","","" -"`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 Adopted Yet","|Complete|","20","" -"","","","","","" +"Issue #","Issue Name","Meeting","Status","First released version","Github issue","Notes" +"`LWG2994 `__","Needless UB for ``basic_string`` and ``basic_string_view``","2023-06 (Varna)","|Complete|","5","`#105268 `__","" +"`LWG3884 `__","``flat_foo`` is missing allocator-extended copy/move constructors","2023-06 (Varna)","","","`#105269 `__","" +"`LWG3885 `__","``op`` should be in [zombie.names]","2023-06 (Varna)","|Nothing To Do|","","`#105270 `__","" +"`LWG3887 `__","Version macro for ``allocate_at_least``","2023-06 (Varna)","|Complete|","19","`#105271 `__","" +"`LWG3893 `__","LWG 3661 broke ``atomic> a; a = nullptr;``","2023-06 (Varna)","","","`#105273 `__","" +"`LWG3894 `__","``generator::promise_type::yield_value(ranges::elements_of)`` should not be ``noexcept``","2023-06 (Varna)","","","`#105274 `__","" +"`LWG3903 `__","span destructor is redundantly noexcept","2023-06 (Varna)","|Complete|","7","`#105275 `__","" +"`LWG3904 `__","``lazy_split_view::outer-iterator``'s const-converting constructor isn't setting ``trailing_empty_``","2023-06 (Varna)","","","`#105276 `__","" +"`LWG3905 `__","Type of ``std::fexcept_t``","2023-06 (Varna)","|Complete|","3.4","`#105277 `__","" +"`LWG3912 `__","``enumerate_view::iterator::operator-`` should be ``noexcept``","2023-06 (Varna)","","","`#105279 `__","" +"`LWG3914 `__","Inconsistent template-head of ``ranges::enumerate_view``","2023-06 (Varna)","","","`#105280 `__","" +"`LWG3915 `__","Redundant paragraph about expression variations","2023-06 (Varna)","","","`#105281 `__","" +"`LWG3925 `__","Concept ``formattable``'s definition is incorrect","2023-06 (Varna)","|Complete|","17","`#105282 `__","" +"`LWG3927 `__","Unclear preconditions for ``operator[]`` for sequence containers","2023-06 (Varna)","|Nothing To Do|","","`#105283 `__","" +"`LWG3935 `__","``template constexpr complex& operator=(const complex&)`` has no specification","2023-06 (Varna)","|Complete|","3.4","`#105284 `__","" +"`LWG3938 `__","Cannot use ``std::expected`` monadic ops with move-only ``error_type``","2023-06 (Varna)","|Complete|","18","`#105285 `__","" +"`LWG3940 `__","``std::expected::value()`` also needs ``E`` to be copy constructible","2023-06 (Varna)","|Complete|","18","`#105286 `__","" +"","","","","","","" +"`LWG2392 `__","""character type"" is used but not defined","2023-11 (Kona)","","","`#105287 `__","" +"`LWG3203 `__","``span`` element access invalidation","2023-11 (Kona)","|Nothing To Do|","","`#105288 `__","" +"`LWG3305 `__","``any_cast``","2023-11 (Kona)","|Complete|","18","`#105289 `__","" +"`LWG3431 `__","``<=>`` for containers should require ``three_way_comparable`` instead of ``<=>``","2023-11 (Kona)","","","`#105290 `__","" +"`LWG3749 `__","``common_iterator`` should handle integer-class difference types","2023-11 (Kona)","","","`#105291 `__","" +"`LWG3809 `__","Is ``std::subtract_with_carry_engine`` supposed to work","2023-11 (Kona)","","","`#105295 `__","" +"`LWG3892 `__","Incorrect formatting of nested ranges and tuples","2023-11 (Kona)","|Complete|","17","`#105296 `__","" +"`LWG3897 `__","``inout_ptr`` will not update raw pointer to 0","2023-11 (Kona)","|Complete|","19","`#105297 `__","" +"`LWG3946 `__","The definition of ``const_iterator_t`` should be reworked","2023-11 (Kona)","","","`#105298 `__","" +"`LWG3947 `__","Unexpected constraints on ``adjacent_transform_view::base()``","2023-11 (Kona)","","","`#105299 `__","" +"`LWG3948 `__","``possibly-const-range and as-const-pointer`` should be ``noexcept``","2023-11 (Kona)","","","`#105300 `__","" +"`LWG3949 `__","``std::atomic``'s trivial destructor dropped in C++17 spec wording","2023-11 (Kona)","","","`#105301 `__","" +"`LWG3951 `__","[expected.object.swap]: Using ``value()`` instead of ``has_value()``","2023-11 (Kona)","|Complete|","16","`#105302 `__","" +"`LWG3953 `__","``iter_move`` for ``common_iterator`` and ``counted_iterator`` should return ``decltype(auto)``","2023-11 (Kona)","|Complete|","20","`#105303 `__","" +"`LWG3957 `__","[container.alloc.reqmts] The value category of v should be claimed","2023-11 (Kona)","","","`#105304 `__","" +"`LWG3965 `__","Incorrect example in [format.string.escaped] p3 for formatting of combining characters","2023-11 (Kona)","|Complete|","19","`#105305 `__","" +"`LWG3970 `__","[mdspan.syn] Missing definition of ``full_extent_t`` and ``full_extent``","2023-11 (Kona)","","","`#105306 `__","" +"`LWG3973 `__","Monadic operations should be ADL-proof","2023-11 (Kona)","","","`#105307 `__","" +"`LWG3974 `__","``mdspan::operator[]`` should not copy ``OtherIndexTypes``","2023-11 (Kona)","","","`#105308 `__","" +"`LWG3987 `__","Including `` doesn't provide `std::begin`/`end`","2023-11 (Kona)","|Complete|","","`#105309 `__","" +"`LWG3990 `__","Program-defined specializations of ``std::tuple`` and ``std::variant`` can't be properly supported","2023-11 (Kona)","|Complete|","21","`#105310 `__","" +"`LWG4001 `__","``iota_view`` should provide ``empty``","2023-11 (Kona)","|Complete|","19","`#105311 `__","" +"","","","","","","" +"`LWG3767 `__","``codecvt`` incorrectly added to locale","2024-03 (Tokyo)","","","`#105313 `__","" +"`LWG3919 `__","``enumerate_view`` may invoke UB for sized common non-forward underlying ranges","2024-03 (Tokyo)","","","`#105315 `__","" +"`LWG3950 `__","``std::basic_string_view`` comparison operators are overspecified","2024-03 (Tokyo)","|Complete|","18","`#105316 `__","" +"`LWG3975 `__","Specializations of ``basic_format_context`` should not be permitted","2024-03 (Tokyo)","|Nothing To Do|","","`#105317 `__","" +"`LWG3984 `__","``ranges::to``'s recursion branch may be ill-formed","2024-03 (Tokyo)","|Complete|","19","`#105318 `__","" +"`LWG4011 `__","""`Effects`: Equivalent to return"" in ``[span.elem]``","2024-03 (Tokyo)","|Nothing To Do|","","`#105319 `__","" +"`LWG4012 `__","``common_view::begin/end`` are missing the ``simple-view`` check","2024-03 (Tokyo)","","","`#105320 `__","" +"`LWG4013 `__","``lazy_split_view::outer-iterator::value_type`` should not provide default constructor","2024-03 (Tokyo)","","","`#105321 `__","" +"`LWG4016 `__","container-insertable checks do not match what container-inserter does","2024-03 (Tokyo)","|Complete|","20","`#105322 `__","" +"`LWG4023 `__","Preconditions of ``std::basic_streambuf::setg/setp``","2024-03 (Tokyo)","|Complete|","19","`#105323 `__","" +"`LWG4025 `__","Move assignment operator of ``std::expected`` should not be conditionally deleted","2024-03 (Tokyo)","|Complete|","20","`#105324 `__","" +"`LWG4030 `__","Clarify whether arithmetic expressions in ``[numeric.sat.func]`` are mathematical or C++","2024-03 (Tokyo)","|Nothing To Do|","","`#105325 `__","" +"`LWG4031 `__","``bad_expected_access`` member functions should be ``noexcept``","2024-03 (Tokyo)","|Complete|","16","`#105326 `__","" +"`LWG4035 `__","``single_view`` should provide ``empty``","2024-03 (Tokyo)","|Complete|","19","`#105328 `__","" +"`LWG4036 `__","``__alignof_is_defined`` is only implicitly specified in C++ and not yet deprecated","2024-03 (Tokyo)","","","`#105329 `__","" +"`LWG4037 `__","Static data members of ``ctype_base`` are not yet required to be usable in constant expressions","2024-03 (Tokyo)","","","`#105330 `__","" +"`LWG4038 `__","``std::text_encoding::aliases_view`` should have constexpr iterators","2024-03 (Tokyo)","","","`#105332 `__","" +"`LWG4043 `__","""ASCII"" is not a registered character encoding","2024-03 (Tokyo)","|Nothing To Do|","","`#105335 `__","" +"`LWG4045 `__","``tuple`` can create dangling references from ``tuple-like``","2024-03 (Tokyo)","","","`#105337 `__","" +"`LWG4053 `__","Unary call to ``std::views::repeat`` does not decay the argument","2024-03 (Tokyo)","|Complete|","19","`#105338 `__","" +"`LWG4054 `__","Repeating a ``repeat_view`` should repeat the view","2024-03 (Tokyo)","|Complete|","19","`#105340 `__","" +"","","","","","","" +"`LWG3944 `__","Formatters converting sequences of ``char`` to sequences of ``wchar_t``","2024-06 (St. Louis)","|Complete|","21","`#105342 `__","" +"`LWG4060 `__","``submdspan`` preconditions do not forbid creating invalid pointer","2024-06 (St. Louis)","","","`#105343 `__","" +"`LWG4061 `__","Should ``std::basic_format_context`` be default-constructible/copyable/movable?","2024-06 (St. Louis)","|Complete|","19","`#105344 `__","" +"`LWG4071 `__","``reference_wrapper`` comparisons are not SFINAE-friendly","2024-06 (St. Louis)","|Complete|","19","`#105345 `__","" +"`LWG4074 `__","``compatible-joinable-ranges`` is underconstrained","2024-06 (St. Louis)","|Complete|","21","`#105346 `__","" +"`LWG4076 `__","``concat_view`` should be freestanding","2024-06 (St. Louis)","","","`#105347 `__","" +"`LWG4079 `__","Missing Preconditions in ``concat_view::iterator``\`s conversion constructor","2024-06 (St. Louis)","","","`#105348 `__","" +"`LWG4082 `__","``views::concat(r)`` is well-formed when ``r`` is an ``output_range``","2024-06 (St. Louis)","","","`#105349 `__","" +"`LWG4083 `__","``views::as_rvalue`` should reject non-input ranges","2024-06 (St. Louis)","","","`#105351 `__","" +"`LWG4096 `__","``views::iota(views::iota(0))`` should be rejected","2024-06 (St. Louis)","","","`#105352 `__","" +"`LWG4098 `__","``views::adjacent<0>`` should reject non-forward ranges","2024-06 (St. Louis)","","","`#105353 `__","" +"`LWG4105 `__","``ranges::ends_with``\`s Returns misses difference casting","2024-06 (St. Louis)","","","`#105354 `__","" +"`LWG4106 `__","``basic_format_args`` should not be default-constructible","2024-06 (St. Louis)","|Complete|","19","`#105355 `__","" +"","","","","","","" +"`LWG3216 `__","Rebinding the allocator before calling ``construct``/``destroy`` in ``allocate_shared``","2024-11 (Wrocław)","","","`#118332 `__","" +"`LWG3436 `__","``std::construct_at`` should support arrays","2024-11 (Wrocław)","","","`#118335 `__","" +"`LWG3886 `__","Monad mo' problems","2024-11 (Wrocław)","","","`#118336 `__","" +"`LWG3899 `__","``co_yield``\ing elements of an lvalue generator is unnecessarily inefficient","2024-11 (Wrocław)","","","`#118337 `__","" +"`LWG3900 `__","The ``allocator_arg_t`` overloads of ``generator::promise_type::operator new`` should not be constrained","2024-11 (Wrocław)","","","`#118338 `__","" +"`LWG3918 `__","``std::uninitialized_move/_n`` and guaranteed copy elision","2024-11 (Wrocław)","","","`#118339 `__","" +"`LWG4014 `__","LWG 3809 changes behavior of some existing ``std::subtract_with_carry_engine code``","2024-11 (Wrocław)","","","`#118340 `__","" +"`LWG4024 `__","Underspecified destruction of objects created in ``std::make_shared_for_overwrite``/``std::allocate_shared_for_overwrite``","2024-11 (Wrocław)","|Complete|","16","`#118341 `__","" +"`LWG4027 `__","``possibly-const-range`` should prefer returning ``const R&``","2024-11 (Wrocław)","","","`#118342 `__","" +"`LWG4044 `__","Confusing requirements for ``std::print`` on POSIX platforms","2024-11 (Wrocław)","","","`#118343 `__","" +"`LWG4064 `__","Clarify that ``std::launder`` is not needed when using the result of ``std::memcpy``","2024-11 (Wrocław)","","","`#118344 `__","" +"`LWG4072 `__","``std::optional`` comparisons: constrain harder","2024-11 (Wrocław)","","","`#118345 `__","" +"`LWG4084 `__","``std::fixed`` ignores ``std::uppercase``","2024-11 (Wrocław)","","","`#118346 `__","" +"`LWG4085 `__","``ranges::generate_random``'s helper lambda should specify the return type","2024-11 (Wrocław)","","","`#118347 `__","" +"`LWG4088 `__","``println`` ignores the locale imbued in ``std::ostream``","2024-11 (Wrocław)","|Complete|","18","`#118348 `__","" +"`LWG4112 `__","``has-arrow`` should required ``operator->()`` to be ``const``-qualified","2024-11 (Wrocław)","","","`#118349 `__","" +"`LWG4113 `__","Disallow ``has_unique_object_representations``","2024-11 (Wrocław)","|Complete|","","`#118350 `__","" +"`LWG4119 `__","``generator::promise_type::yield_value(ranges::elements_of)``'s nested ``generator`` may be ill-formed","2024-11 (Wrocław)","","","`#118351 `__","" +"`LWG4124 `__","Cannot format ``zoned_time`` with resolution coarser than ``seconds``","2024-11 (Wrocław)","","","`#118352 `__","" +"`LWG4126 `__","Some feature-test macros for fully freestanding features are not yet marked freestanding","2024-11 (Wrocław)","","","`#118353 `__","" +"`LWG4134 `__","Issue with Philox algorithm specification","2024-11 (Wrocław)","","","`#118354 `__","" +"`LWG4135 `__","The helper lambda of ``std::erase`` for list should specify return type as ``bool``","2024-11 (Wrocław)","|Complete|","21","`#118355 `__","" +"`LWG4140 `__","Useless default constructors for bit reference types","2024-11 (Wrocław)","|Complete|","","`#118356 `__","" +"`LWG4141 `__","Improve prohibitions on ""additional storage""","2024-11 (Wrocław)","","","`#118357 `__","" +"`LWG4142 `__","``format_parse_context::check_dynamic_spec`` should require at least one type","2024-11 (Wrocław)","","","`#118358 `__","" +"`LWG4144 `__","Disallow ``unique_ptr``","2024-11 (Wrocław)","","","`#118359 `__","" +"`LWG4147 `__","Precondition on ``inplace_vector::emplace``","2024-11 (Wrocław)","","","`#118361 `__","" +"`LWG4148 `__","``unique_ptr::operator*`` should not allow dangling references","2024-11 (Wrocław)","","","`#118362 `__","" +"`LWG4153 `__","Fix extra ""-1"" for ``philox_engine::max()``","2024-11 (Wrocław)","","","`#118363 `__","" +"`LWG4154 `__","The Mandates for ``std::packaged_task``'s constructor from a callable entity should consider decaying","2024-11 (Wrocław)","","","`#118364 `__","" +"`LWG4157 `__","The resolution of LWG3465 was damaged by P2167R3","2024-11 (Wrocław)","|Complete|","20","`#118365 `__","" +"`LWG4164 `__","Missing guarantees for ``forward_list`` modifiers","2024-11 (Wrocław)","|Complete|","21","`#118366 `__","" +"`LWG4169 `__","``std::atomic``'s default constructor should be constrained","2024-11 (Wrocław)","","","`#118367 `__","" +"`LWG4170 `__","``contiguous_iterator`` should require ``to_address(I{})``","2024-11 (Wrocław)","","","`#118368 `__","" +"","","","","","","" +"`LWG3578 `__","Iterator SCARYness in the context of associative container merging","2025-02 (Hagenberg)","","","`#127859 `__","" +"`LWG3956 `__","``chrono::parse`` uses ``from_stream`` as a customization point","2025-02 (Hagenberg)","","","`#127860 `__","" +"`LWG4172 `__","``unique_lock`` self-move-assignment is broken","2025-02 (Hagenberg)","","","`#127861 `__","" +"`LWG4175 `__","``get_env()`` specified in terms of ``as_const()`` but this doesn't work with rvalue senders","2025-02 (Hagenberg)","","","`#127862 `__","" +"`LWG4179 `__","Wrong range in ``[alg.search]``","2025-02 (Hagenberg)","","","`#127863 `__","" +"`LWG4186 `__","``regex_traits::transform_primary`` mistakenly detects ``typeid`` of a function","2025-02 (Hagenberg)","","","`#127864 `__","" +"`LWG4189 `__","``cache_latest_view`` should be freestanding","2025-02 (Hagenberg)","","","`#127865 `__","" +"`LWG4191 `__","P1467 changed the return type of ``pow(complex, int)``","2025-02 (Hagenberg)","","","`#127866 `__","" +"`LWG4196 `__","Complexity of ``inplace_merge()`` is incorrect","2025-02 (Hagenberg)","","","`#127867 `__","" +"","","","","","","" +"`LWG4198 `__","``schedule_from`` isn't starting the schedule sender if decay-copying results throws","2025-06 (Sofia)","","","`#148188 `__","" +"`LWG4202 `__","``enable-sender`` should be a variable template","2025-06 (Sofia)","","","`#148189 `__","" +"`LWG4203 `__","Constraints on ``get-state`` functions are incorrect","2025-06 (Sofia)","","","`#148190 `__","" +"`LWG4204 `__","specification of ``as-sndr2(Sig)`` in [exec.let] is incomplete","2025-06 (Sofia)","","","`#148192 `__","" +"`LWG4205 `__","``let_[*].transform_env`` is specified in terms of the ``let_*`` sender itself instead of its child","2025-06 (Sofia)","","","`#148193 `__","" +"`LWG4208 `__","Wording needs to ensure that in ``connect(sndr, rcvr)`` that ``rcvr`` expression is only evaluated once","2025-06 (Sofia)","","","`#148194 `__","" +"`LWG4209 `__","``default_domain::transform_env`` should be returning ``FWD-ENV(env)``","2025-06 (Sofia)","","","`#148196 `__","" +"`LWG4188 `__","``ostream::sentry`` destructor should handle exceptions","2025-06 (Sofia)","","","`#148200 `__","" +"`LWG4200 `__","The ``operation_state`` concept can be simplified","2025-06 (Sofia)","","","`#148201 `__","" +"`LWG4201 `__","``with-await-transform::await_transform`` should not use a deduced return type","2025-06 (Sofia)","","","`#148202 `__","" +"`LWG4217 `__","Clarify ``mdspan`` layout mapping requirements for ``rank == 0``","2025-06 (Sofia)","","","`#148203 `__","" +"`LWG4222 `__","``expected`` constructor from a single value missing a constraint","2025-06 (Sofia)","","","`#148208 `__","" +"`LWG4224 `__","Philox engines should be freestanding","2025-06 (Sofia)","","","`#148210 `__","" +"`LWG4227 `__","Missing ``noexcept`` operator in [exec.when.all]","2025-06 (Sofia)","","","`#148211 `__","" +"`LWG4231 `__","``datapar::chunk`` should use ``simd-size-type`` instead of ``size_t``","2025-06 (Sofia)","","","`#148215 `__","" +"`LWG4232 `__","``datapar::resize`` does not resize","2025-06 (Sofia)","","","`#148216 `__","" +"`LWG4233 `__","The helper lambda of ``std::erase`` for ``hive`` should specify return type as ``bool``","2025-06 (Sofia)","","","`#148217 `__","" +"`LWG4234 `__","Including ```` doesn't provide ``std::begin/end``","2025-06 (Sofia)","","","`#148218 `__","" +"`LWG4235 `__","``cache_latest_view`` and ``to_input_view`` miss ``reserve_hint``","2025-06 (Sofia)","","","`#148219 `__","" +"`LWG4236 `__","``chunk_view::outer-iterator::value_type`` should provide ``reserve_hint``","2025-06 (Sofia)","","","`#148220 `__","" +"`LWG4239 `__","``flat_map``'s transparent comparator no longer works for string literals","2025-06 (Sofia)","","","`#148223 `__","" +"`LWG4242 `__","``ranges::distance`` does not work with volatile iterators","2025-06 (Sofia)","","","`#148224 `__","" +"`LWG4245 `__","Operators that interact with ``counted_iterator`` and ``default_sentinel_t`` should be ``noexcept``","2025-06 (Sofia)","","","`#148226 `__","" +"`LWG4247 `__","Header ```` is not yet freestanding","2025-06 (Sofia)","","","`#148227 `__","" +"","","","","","","" +"`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","`#105356 `__","" +"`LWG4139 `__","§[time.zone.leap] recursive constraint in ``<=>``","Not Adopted Yet","|Complete|","20","`#118369 `__","" +"`LWG3456 `__","Pattern used by ``std::from_chars`` is underspecified (option B)","Not Adopted Yet","|Complete|","20","`#118370 `__","" +"","","","","","","" diff --git a/libcxx/docs/Status/Cxx2cPapers.csv b/libcxx/docs/Status/Cxx2cPapers.csv index febb0c176f9c4..398c21d5dbec1 100644 --- a/libcxx/docs/Status/Cxx2cPapers.csv +++ b/libcxx/docs/Status/Cxx2cPapers.csv @@ -1,159 +1,159 @@ -"Paper #","Paper Name","Meeting","Status","First released version","Notes" -"`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)","|Complete|","21","" -"`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","" -"`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)","","","" -"`P2363R5 `__","Extending associative containers with the remaining heterogeneous overloads","2023-06 (Varna)","","","" -"`P1901R2 `__","Enabling the Use of ``weak_ptr`` as Keys in Unordered Associative Containers","2023-06 (Varna)","","","" -"`P1885R12 `__","Naming Text Encodings to Demystify Them","2023-06 (Varna)","","","" -"`P0792R14 `__","``function_ref``: a type-erased callable reference","2023-06 (Varna)","","","" -"`P2874R2 `__","P2874R2: Mandating Annex D Require No More","2023-06 (Varna)","|Complete|","12","" -"`P2757R3 `__","Type-checking format args","2023-06 (Varna)","","","" -"`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","" -"`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","" -"`P2548R6 `__","``copyable_function``","2023-06 (Varna)","","","" -"`P2714R1 `__","Bind front and back to NTTP callables","2023-06 (Varna)","|Partial|","20","" -"`P2630R4 `__","``submdspan``","2023-06 (Varna)","","","" -"","","","","","" -"`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","" -"`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","" -"`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","" -"`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","" -"`P3107R5 `__","Permit an efficient implementation of ``std::print``","2024-03 (Tokyo)","","","" -"`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","" -"`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|","","The changes to ``tuple``'s equality overload from P2165R4 are not yet implemented." -"`P2642R6 `__","Padded ``mdspan`` layouts","2024-03 (Tokyo)","","","" -"`P3029R1 `__","Better ``mdspan``'s CTAD","2024-03 (Tokyo)","|Complete|","19","" -"","","","","","" -"`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","" -"`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","" -"`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","``nodiscard`` attributes were kept as a conforming extension" -"`P2300R10 `__","``std::execution``","2024-06 (St. Louis)","","","" -"","","","","","" -"`P3136R1 `__","Retiring niebloids","2024-11 (Wrocław)","|Complete|","14","" -"`P3138R5 `__","``views::cache_latest``","2024-11 (Wrocław)","","","" -"`P3379R0 `__","Constrain ``std::expected`` equality operators","2024-11 (Wrocław)","|Complete|","21","" -"`P2862R1 `__","``text_encoding::name()`` should never return null values","2024-11 (Wrocław)","","","" -"`P2897R7 `__","``aligned_accessor``: An ``mdspan`` accessor expressing pointer over-alignment","2024-11 (Wrocław)","|Complete|","21","" -"`P3355R1 `__","Fix ``submdspan`` for C++26","2024-11 (Wrocław)","","","" -"`P3222R0 `__","Fix C++26 by adding transposed special cases for P2642 layouts","2024-11 (Wrocław)","","","" -"`P3050R2 `__","Fix C++26 by optimizing ``linalg::conjugated`` for noncomplex value types","2024-11 (Wrocław)","","","" -"`P3396R1 `__","``std::execution`` wording fixes","2024-11 (Wrocław)","","","" -"`P2835R7 `__","Expose ``std::atomic_ref``'s object address","2024-11 (Wrocław)","","","" -"`P3323R1 `__","cv-qualified types in ``atomic`` and ``atomic_ref``","2024-11 (Wrocław)","","","" -"`P3508R0 `__","Wording for ""constexpr for specialized memory algorithms""","2024-11 (Wrocław)","","","" -"`P3369R0 `__","constexpr for ``uninitialized_default_construct``","2024-11 (Wrocław)","","","" -"`P3370R1 `__","Add new library headers from C23","2024-11 (Wrocław)","","","" -"`P3309R3 `__","constexpr ``atomic`` and ``atomic_ref``","2024-11 (Wrocław)","","","" -"`P1928R15 `__","``std::simd`` — merge data-parallel types from the Parallelism TS 2","2024-11 (Wrocław)","","","" -"`P3325R5 `__","A Utility for Creating Execution Environments","2024-11 (Wrocław)","","","" -"`P3068R6 `__","Allowing exception throwing in constant-evaluation","2024-11 (Wrocław)","","","" -"`P3247R2 `__","Deprecate the notion of trivial types","2024-11 (Wrocław)","|Complete|","21","" -"","","","","","" -"`P3074R7 `__","trivial unions (was ``std::uninitialized``)","2025-02 (Hagenberg)","","","" -"`P1494R5 `__","Partial program correctness","2025-02 (Hagenberg)","","","" -"`P2900R14 `__","Contracts for C++","2025-02 (Hagenberg)","","","" -"`P3475R2 `__","Defang and deprecate ``memory_order::consume``","2025-02 (Hagenberg)","","","" -"`P2786R13 `__","Trivial Relocatability For C++26","2025-02 (Hagenberg)","","","" -"`P3137R3 `__","``views::to_input``","2025-02 (Hagenberg)","","","" -"`P0472R3 `__","Put ``std::monostate`` in ````","2025-02 (Hagenberg)","|Complete|","21","" -"`P3349R1 `__","Converting contiguous iterators to pointers","2025-02 (Hagenberg)","","","" -"`P3372R3 `__","constexpr containers and adaptors","2025-02 (Hagenberg)","|In Progress|","","" -"`P3378R2 `__","constexpr exception types","2025-02 (Hagenberg)","","","" -"`P3441R2 `__","Rename ``simd_split`` to ``simd_chunk``","2025-02 (Hagenberg)","","","" -"`P3287R3 `__","Exploration of namespaces for ``std::simd``","2025-02 (Hagenberg)","","","" -"`P2976R1 `__","Freestanding Library: ``algorithm``, ``numeric``, and ``random``","2025-02 (Hagenberg)","","","" -"`P3430R3 `__","simd issues: explicit, unsequenced, identity-element position, and members of disabled simd","2025-02 (Hagenberg)","","","" -"`P2663R7 `__","Interleaved complex values support in ``std::simd``","2025-02 (Hagenberg)","","","" -"`P2933R4 `__","Extend ```` header function with overloads for ``std::simd``","2025-02 (Hagenberg)","","","" -"`P2846R6 `__","``reserve_hint``: Eagerly reserving memory for not-quite-sized lazy ranges","2025-02 (Hagenberg)","","","" -"`P3471R4 `__","Standard Library Hardening","2025-02 (Hagenberg)","","","" -"`P0447R28 `__","Introduction of ``std::hive`` to the standard library","2025-02 (Hagenberg)","","","" -"`P3019R14 `__","``indirect`` and ``polymorphic``: Vocabulary Types for Composite Class Design","2025-02 (Hagenberg)","","","" -"","","","","","" -"`P2996R13 `__","Reflection for C++26","2025-06 (Sofia)","","","" -"`P3394R4 `__","Annotations for Reflection","2025-06 (Sofia)","","","" -"`P3293R3 `__","Splicing a base class subobject","2025-06 (Sofia)","","","" -"`P3491R3 `__","``define_static_{string,object,array}``","2025-06 (Sofia)","","","" -"`P3096R12 `__","Function Parameter Reflection in Reflection for C++26","2025-06 (Sofia)","","","" -"`P2988R12 `__","``std::optional``","2025-06 (Sofia)","","","" -"`P3348R4 `__","C++26 should refer to C23 not C17","2025-06 (Sofia)","","","" -"`P3037R6 `__","``constexpr`` ``std::shared_ptr`` and friends","2025-06 (Sofia)","","","" -"`P3284R4 `__","``write_env`` and ``unstoppable`` Sender Adaptors","2025-06 (Sofia)","","","" -"`P3179R9 `__","Parallel Range Algorithms","2025-06 (Sofia)","","","" -"`P3709R2 `__","Reconsider parallel ``ranges::rotate_copy`` and ``ranges::reverse_copy``","2025-06 (Sofia)","","","" -"`P3641R0 `__","Rename ``std::observable`` to ``std::observable_checkpoint``, and add a feature-test macro","2025-06 (Sofia)","","","" -"`P3044R2 `__","sub-``string_view`` from ``string``","2025-06 (Sofia)","","","" -"`P2876R3 `__","Proposal to extend ``std::simd`` with more constructors and accessors","2025-06 (Sofia)","","","" -"`P3480R6 `__","``std::simd`` is a range","2025-06 (Sofia)","","","" -"`P2664R11 `__","Extend ``std::simd`` with permutation API","2025-06 (Sofia)","","","" -"`P3691R1 `__","Reconsider naming of the namespace for ``std::simd``","2025-06 (Sofia)","","","" -"`P3383R3 `__","``mdspan.at()``","2025-06 (Sofia)","","","" -"`P2927R3 `__","Inspecting ``exception_ptr``","2025-06 (Sofia)","","","" -"`P3748R0 `__","Inspecting ``exception_ptr`` should be constexpr","2025-06 (Sofia)","","","" -"`P2830R10 `__","Standardized Constexpr Type Ordering","2025-06 (Sofia)","","","" -"`P3570R2 `__","optional variants in sender/receiver","2025-06 (Sofia)","","","" -"`P3481R5 `__","``std::execution::bulk()`` issues","2025-06 (Sofia)","","","" -"`P3433R1 `__","Allocator Support for Operation States","2025-06 (Sofia)","","","" -"`P3149R11 `__","``async_scope`` - Creating scopes for non-sequential concurrency","2025-06 (Sofia)","","","" -"`P3682R0 `__","Remove ``std::execution::split``","2025-06 (Sofia)","","","" -"`P2079R10 `__","Parallel scheduler","2025-06 (Sofia)","","","" -"`P3557R3 `__","High-Quality Sender Diagnostics with Constexpr Exceptions","2025-06 (Sofia)","","","" -"`P3560R2 `__","Error Handling in Reflection","2025-06 (Sofia)","","","" -"`P3503R3 `__","Make type-erased allocator use in ``promise`` and ``packaged_task`` consistent","2025-06 (Sofia)","","","" -"`P3008R6 `__","Atomic floating-point min/max","2025-06 (Sofia)","","","" -"`P3111R8 `__","Atomic Reduction Operations","2025-06 (Sofia)","","","" -"`P3060R3 `__","Add ``std::views::indices(n)``","2025-06 (Sofia)","","","" -"`P2319R5 `__","Prevent ``path`` presentation problems","2025-06 (Sofia)","","","" -"`P3223R2 `__","Making ``std::istream::ignore`` less surprising","2025-06 (Sofia)","","","" -"`P2781R9 `__","``std::constant_wrapper``","2025-06 (Sofia)","","","" -"`P3697R1 `__","Minor additions to C++26 standard library hardening","2025-06 (Sofia)","","","" -"`P3552R3 `__","Add a Coroutine Task Type","2025-06 (Sofia)","","","" -"`P1317R2 `__","Remove return type deduction in ``std::apply``","2025-06 (Sofia)","","","" -"","","","","","" +"Paper #","Paper Name","Meeting","Status","First released version","Github issue","Notes" +"`P2497R0 `__","Testing for success or failure of ```` functions","2023-06 (Varna)","|Complete|","18","`#105357 `__","" +"`P2592R3 `__","Hashing support for ``std::chrono`` value classes","2023-06 (Varna)","","","`#105358 `__","" +"`P2587R3 `__","``to_string`` or not ``to_string``","2023-06 (Varna)","","","`#105359 `__","" +"`P2562R1 `__","``constexpr`` Stable Sorting","2023-06 (Varna)","|Complete|","21","`#105360 `__","" +"`P2545R4 `__","Read-Copy Update (RCU)","2023-06 (Varna)","","","`#105361 `__","" +"`P2530R3 `__","Hazard Pointers for C++26","2023-06 (Varna)","","","`#105362 `__","" +"`P2538R1 `__","ADL-proof ``std::projected``","2023-06 (Varna)","|Complete|","18","`#105363 `__","" +"`P2495R3 `__","Interfacing ``stringstream``\s with ``string_view``","2023-06 (Varna)","|Complete|","19","`#105364 `__","" +"`P2510R3 `__","Formatting pointers","2023-06 (Varna)","|Complete|","17","`#105365 `__","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)","","","`#105368 `__","" +"`P2338R4 `__","Freestanding Library: Character primitives and the C library","2023-06 (Varna)","","","`#105369 `__","" +"`P2013R5 `__","Freestanding Language: Optional ``::operator new``","2023-06 (Varna)","","","`#105370 `__","" +"`P2363R5 `__","Extending associative containers with the remaining heterogeneous overloads","2023-06 (Varna)","","","`#105371 `__","" +"`P1901R2 `__","Enabling the Use of ``weak_ptr`` as Keys in Unordered Associative Containers","2023-06 (Varna)","","","`#105372 `__","" +"`P1885R12 `__","Naming Text Encodings to Demystify Them","2023-06 (Varna)","","","`#105373 `__","" +"`P0792R14 `__","``function_ref``: a type-erased callable reference","2023-06 (Varna)","","","`#105376 `__","" +"`P2874R2 `__","P2874R2: Mandating Annex D Require No More","2023-06 (Varna)","|Complete|","12","`#105377 `__","" +"`P2757R3 `__","Type-checking format args","2023-06 (Varna)","","","`#105378 `__","" +"`P2637R3 `__","Member ``visit``","2023-06 (Varna)","|Complete|","19","`#105380 `__","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)","","","`#105381 `__","" +"`P1759R6 `__","Native handles and file streams","2023-06 (Varna)","|Complete|","18","`#105382 `__","" +"`P2697R1 `__","Interfacing ``bitset`` with ``string_view``","2023-06 (Varna)","|Complete|","18","`#105384 `__","" +"`P1383R2 `__","More ``constexpr`` for ```` and ````","2023-06 (Varna)","","","`#105385 `__","" +"`P2734R0 `__","Adding the new SI prefixes","2023-06 (Varna)","|Complete|","17","`#105386 `__","" +"`P2548R6 `__","``copyable_function``","2023-06 (Varna)","","","`#105387 `__","" +"`P2714R1 `__","Bind front and back to NTTP callables","2023-06 (Varna)","|Partial|","20","`#105388 `__","" +"`P2630R4 `__","``submdspan``","2023-06 (Varna)","","","`#105389 `__","" +"","","","","","","" +"`P0543R3 `__","Saturation arithmetic","2023-11 (Kona)","|Complete|","18","`#105390 `__","" +"`P2407R5 `__","Freestanding Library: Partial Classes","2023-11 (Kona)","","","`#105391 `__","" +"`P2546R5 `__","Debugging Support","2023-11 (Kona)","","","`#105392 `__","" +"`P2905R2 `__","Runtime format strings","2023-11 (Kona)","|Complete|","18","`#105393 `__","" +"`P2918R2 `__","Runtime format strings II","2023-11 (Kona)","|Complete|","18","`#105394 `__","" +"`P2909R4 `__","Fix formatting of code units as integers (Dude, where’s my ``char``?)","2023-11 (Kona)","|Complete|","18","`#105395 `__","" +"`P0952R2 `__","A new specification for ``std::generate_canonical``","2023-11 (Kona)","","","`#105396 `__","" +"`P2447R6 `__","``std::span`` over an initializer list","2023-11 (Kona)","|Complete|","18","`#105397 `__","" +"`P2821R5 `__","``span.at()``","2023-11 (Kona)","|Complete|","18","`#105399 `__","" +"`P2868R3 `__","Remove Deprecated ``std::allocator`` Typedef From C++26","2023-11 (Kona)","|Complete|","18","`#105400 `__","" +"`P2870R3 `__","Remove ``basic_string::reserve()`` From C++26","2023-11 (Kona)","|Complete|","18","`#105401 `__","" +"`P2871R3 `__","Remove Deprecated Unicode Conversion Facets from C++26","2023-11 (Kona)","|Complete|","18","`#105402 `__","" +"`P2819R2 `__","Add tuple protocol to complex","2023-11 (Kona)","|Complete|","19","`#105403 `__","" +"`P2937R0 `__","Freestanding: Remove ``strtok``","2023-11 (Kona)","","","`#105404 `__","" +"`P2833R2 `__","Freestanding Library: inout expected span","2023-11 (Kona)","","","`#105405 `__","" +"`P2836R1 `__","``std::basic_const_iterator`` should follow its underlying type's convertibility","2023-11 (Kona)","","","`#105406 `__","" +"`P2264R7 `__","Make ``assert()`` macro user friendly for C and C++","2023-11 (Kona)","","","`#105407 `__","" +"`P1673R13 `__","A free function linear algebra interface based on the BLAS","2023-11 (Kona)","","","`#105408 `__","" +"","","","","","","" +"`P2875R4 `__","Undeprecate ``polymorphic_allocator::destroy`` for C++26","2024-03 (Tokyo)","|Complete|","15","`#105410 `__","" +"`P2867R2 `__","Remove Deprecated ``strstreams`` From C++26","2024-03 (Tokyo)","|Complete|","19","`#105411 `__","" +"`P2869R4 `__","Remove Deprecated ``shared_ptr`` Atomic Access APIs from C++26","2024-03 (Tokyo)","","","`#105412 `__","" +"`P2872R3 `__","Remove ``wstring_convert`` From C++26","2024-03 (Tokyo)","|Complete|","19","`#105413 `__","" +"`P3107R5 `__","Permit an efficient implementation of ``std::print``","2024-03 (Tokyo)","","","`#105414 `__","" +"`P3142R0 `__","Printing Blank Lines with ``println``","2024-03 (Tokyo)","|Complete|","19","`#105415 `__","Implemented as a DR against C++23. (MSVC STL and libstdc++ will do the same.)" +"`P2845R8 `__","Formatting of ``std::filesystem::path``","2024-03 (Tokyo)","","","`#105416 `__","" +"`P0493R5 `__","Atomic minimum/maximum","2024-03 (Tokyo)","","","`#105418 `__","" +"`P2542R8 `__","``views::concat``","2024-03 (Tokyo)","","","`#105419 `__","" +"`P2591R5 `__","Concatenation of strings and string views","2024-03 (Tokyo)","|Complete|","19","`#105420 `__","" +"`P2248R8 `__","Enabling list-initialization for algorithms","2024-03 (Tokyo)","","","`#105421 `__","" +"`P2810R4 `__","``is_debugger_present`` ``is_replaceable``","2024-03 (Tokyo)","","","`#105422 `__","" +"`P1068R11 `__","Vector API for random number generation","2024-03 (Tokyo)","","","`#105423 `__","" +"`P2944R3 `__","Comparisons for ``reference_wrapper``","2024-03 (Tokyo)","|Partial|","","`#105424 `__","The changes to ``tuple``'s equality overload from P2165R4 are not yet implemented." +"`P2642R6 `__","Padded ``mdspan`` layouts","2024-03 (Tokyo)","","","`#105425 `__","" +"`P3029R1 `__","Better ``mdspan``'s CTAD","2024-03 (Tokyo)","|Complete|","19","`#105426 `__","" +"","","","","","","" +"`P2747R2 `__","``constexpr`` placement new","2024-06 (St. Louis)","|Complete|","20","`#105427 `__","" +"`P2997R1 `__","Removing the common reference requirement from the indirectly invocable concepts","2024-06 (St. Louis)","|Complete|","19","`#105428 `__","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","`#105429 `__","" +"`P3168R2 `__","Give ``std::optional`` Range Support","2024-06 (St. Louis)","","","`#105430 `__","" +"`P3217R0 `__","Adjoints to 'Enabling list-initialization for algorithms': find_last","2024-06 (St. Louis)","","","`#105431 `__","" +"`P2985R0 `__","A type trait for detecting virtual base classes","2024-06 (St. Louis)","|Complete|","20","`#105432 `__","" +"`P0843R14 `__","``inplace_vector``","2024-06 (St. Louis)","","","`#105433 `__","" +"`P3235R3 `__","``std::print`` more types faster with less memory","2024-06 (St. Louis)","","","`#105435 `__","" +"`P2968R2 `__","Make ``std::ignore`` a first-class object","2024-06 (St. Louis)","|Complete|","19","`#105436 `__","" +"`P2075R6 `__","Philox as an extension of the C++ RNG engines","2024-06 (St. Louis)","","","`#105437 `__","" +"`P2422R1 `__","Remove ``nodiscard`` annotations from the standard library specification","2024-06 (St. Louis)","|Complete|","19","`#105438 `__","``nodiscard`` attributes were kept as a conforming extension" +"`P2300R10 `__","``std::execution``","2024-06 (St. Louis)","","","`#105440 `__","" +"","","","","","","" +"`P3136R1 `__","Retiring niebloids","2024-11 (Wrocław)","|Complete|","14","`#118133 `__","" +"`P3138R5 `__","``views::cache_latest``","2024-11 (Wrocław)","","","`#118134 `__","" +"`P3379R0 `__","Constrain ``std::expected`` equality operators","2024-11 (Wrocław)","|Complete|","21","`#118135 `__","" +"`P2862R1 `__","``text_encoding::name()`` should never return null values","2024-11 (Wrocław)","","","`#118371 `__","" +"`P2897R7 `__","``aligned_accessor``: An ``mdspan`` accessor expressing pointer over-alignment","2024-11 (Wrocław)","|Complete|","21","`#118372 `__","" +"`P3355R1 `__","Fix ``submdspan`` for C++26","2024-11 (Wrocław)","","","`#118373 `__","" +"`P3222R0 `__","Fix C++26 by adding transposed special cases for P2642 layouts","2024-11 (Wrocław)","","","`#118374 `__","" +"`P3050R2 `__","Fix C++26 by optimizing ``linalg::conjugated`` for noncomplex value types","2024-11 (Wrocław)","","","`#118375 `__","" +"`P3396R1 `__","``std::execution`` wording fixes","2024-11 (Wrocław)","","","`#118376 `__","" +"`P2835R7 `__","Expose ``std::atomic_ref``'s object address","2024-11 (Wrocław)","","","`#118377 `__","" +"`P3323R1 `__","cv-qualified types in ``atomic`` and ``atomic_ref``","2024-11 (Wrocław)","","","`#118378 `__","" +"`P3508R0 `__","Wording for ""constexpr for specialized memory algorithms""","2024-11 (Wrocław)","","","`#118379 `__","" +"`P3369R0 `__","constexpr for ``uninitialized_default_construct``","2024-11 (Wrocław)","","","`#118380 `__","" +"`P3370R1 `__","Add new library headers from C23","2024-11 (Wrocław)","","","`#118381 `__","" +"`P3309R3 `__","constexpr ``atomic`` and ``atomic_ref``","2024-11 (Wrocław)","","","`#118382 `__","" +"`P1928R15 `__","``std::simd`` — merge data-parallel types from the Parallelism TS 2","2024-11 (Wrocław)","","","`#118384 `__","" +"`P3325R5 `__","A Utility for Creating Execution Environments","2024-11 (Wrocław)","","","`#118385 `__","" +"`P3068R6 `__","Allowing exception throwing in constant-evaluation","2024-11 (Wrocław)","","","`#118386 `__","" +"`P3247R2 `__","Deprecate the notion of trivial types","2024-11 (Wrocław)","|Complete|","21","`#118387 `__","" +"","","","","","","" +"`P3074R7 `__","trivial unions (was ``std::uninitialized``)","2025-02 (Hagenberg)","","","`#127868 `__","" +"`P1494R5 `__","Partial program correctness","2025-02 (Hagenberg)","","","`#127869 `__","" +"`P2900R14 `__","Contracts for C++","2025-02 (Hagenberg)","","","`#127870 `__","" +"`P3475R2 `__","Defang and deprecate ``memory_order::consume``","2025-02 (Hagenberg)","","","`#127871 `__","" +"`P2786R13 `__","Trivial Relocatability For C++26","2025-02 (Hagenberg)","","","`#127872 `__","" +"`P3137R3 `__","``views::to_input``","2025-02 (Hagenberg)","","","`#127873 `__","" +"`P0472R3 `__","Put ``std::monostate`` in ````","2025-02 (Hagenberg)","|Complete|","21","`#127874 `__","" +"`P3349R1 `__","Converting contiguous iterators to pointers","2025-02 (Hagenberg)","","","`#127875 `__","" +"`P3372R3 `__","constexpr containers and adaptors","2025-02 (Hagenberg)","|In Progress|","","`#127876 `__","" +"`P3378R2 `__","constexpr exception types","2025-02 (Hagenberg)","","","`#127877 `__","" +"`P3441R2 `__","Rename ``simd_split`` to ``simd_chunk``","2025-02 (Hagenberg)","","","`#127878 `__","" +"`P3287R3 `__","Exploration of namespaces for ``std::simd``","2025-02 (Hagenberg)","","","`#127879 `__","" +"`P2976R1 `__","Freestanding Library: ``algorithm``, ``numeric``, and ``random``","2025-02 (Hagenberg)","","","`#127880 `__","" +"`P3430R3 `__","simd issues: explicit, unsequenced, identity-element position, and members of disabled simd","2025-02 (Hagenberg)","","","`#127881 `__","" +"`P2663R7 `__","Interleaved complex values support in ``std::simd``","2025-02 (Hagenberg)","","","`#127882 `__","" +"`P2933R4 `__","Extend ```` header function with overloads for ``std::simd``","2025-02 (Hagenberg)","","","`#127883 `__","" +"`P2846R6 `__","``reserve_hint``: Eagerly reserving memory for not-quite-sized lazy ranges","2025-02 (Hagenberg)","","","`#127884 `__","" +"`P3471R4 `__","Standard Library Hardening","2025-02 (Hagenberg)","","","`#127885 `__","" +"`P0447R28 `__","Introduction of ``std::hive`` to the standard library","2025-02 (Hagenberg)","","","`#127886 `__","" +"`P3019R14 `__","``indirect`` and ``polymorphic``: Vocabulary Types for Composite Class Design","2025-02 (Hagenberg)","","","`#127887 `__","" +"","","","","","","" +"`P2996R13 `__","Reflection for C++26","2025-06 (Sofia)","","","`#148123 `__","" +"`P3394R4 `__","Annotations for Reflection","2025-06 (Sofia)","","","`#148124 `__","" +"`P3293R3 `__","Splicing a base class subobject","2025-06 (Sofia)","","","`#148125 `__","" +"`P3491R3 `__","``define_static_{string,object,array}``","2025-06 (Sofia)","","","`#148126 `__","" +"`P3096R12 `__","Function Parameter Reflection in Reflection for C++26","2025-06 (Sofia)","","","`#148127 `__","" +"`P2988R12 `__","``std::optional``","2025-06 (Sofia)","","","`#148131 `__","" +"`P3348R4 `__","C++26 should refer to C23 not C17","2025-06 (Sofia)","","","`#148133 `__","" +"`P3037R6 `__","``constexpr`` ``std::shared_ptr`` and friends","2025-06 (Sofia)","","","`#148135 `__","" +"`P3284R4 `__","``write_env`` and ``unstoppable`` Sender Adaptors","2025-06 (Sofia)","","","`#148136 `__","" +"`P3179R9 `__","Parallel Range Algorithms","2025-06 (Sofia)","","","`#148137 `__","" +"`P3709R2 `__","Reconsider parallel ``ranges::rotate_copy`` and ``ranges::reverse_copy``","2025-06 (Sofia)","","","`#148138 `__","" +"`P3641R0 `__","Rename ``std::observable`` to ``std::observable_checkpoint``, and add a feature-test macro","2025-06 (Sofia)","","","`#148139 `__","" +"`P3044R2 `__","sub-``string_view`` from ``string``","2025-06 (Sofia)","","","`#148140 `__","" +"`P2876R3 `__","Proposal to extend ``std::simd`` with more constructors and accessors","2025-06 (Sofia)","","","`#148143 `__","" +"`P3480R6 `__","``std::simd`` is a range","2025-06 (Sofia)","","","`#148144 `__","" +"`P2664R11 `__","Extend ``std::simd`` with permutation API","2025-06 (Sofia)","","","`#148145 `__","" +"`P3691R1 `__","Reconsider naming of the namespace for ``std::simd``","2025-06 (Sofia)","","","`#148148 `__","" +"`P3383R3 `__","``mdspan.at()``","2025-06 (Sofia)","","","`#148149 `__","" +"`P2927R3 `__","Inspecting ``exception_ptr``","2025-06 (Sofia)","","","`#148150 `__","" +"`P3748R0 `__","Inspecting ``exception_ptr`` should be constexpr","2025-06 (Sofia)","","","`#148151 `__","" +"`P2830R10 `__","Standardized Constexpr Type Ordering","2025-06 (Sofia)","","","`#148152 `__","" +"`P3570R2 `__","optional variants in sender/receiver","2025-06 (Sofia)","","","`#148153 `__","" +"`P3481R5 `__","``std::execution::bulk()`` issues","2025-06 (Sofia)","","","`#148155 `__","" +"`P3433R1 `__","Allocator Support for Operation States","2025-06 (Sofia)","","","`#148157 `__","" +"`P3149R11 `__","``async_scope`` - Creating scopes for non-sequential concurrency","2025-06 (Sofia)","","","`#148158 `__","" +"`P3682R0 `__","Remove ``std::execution::split``","2025-06 (Sofia)","","","`#148160 `__","" +"`P2079R10 `__","Parallel scheduler","2025-06 (Sofia)","","","`#148161 `__","" +"`P3557R3 `__","High-Quality Sender Diagnostics with Constexpr Exceptions","2025-06 (Sofia)","","","`#148162 `__","" +"`P3560R2 `__","Error Handling in Reflection","2025-06 (Sofia)","","","`#148128 `__","" +"`P3503R3 `__","Make type-erased allocator use in ``promise`` and ``packaged_task`` consistent","2025-06 (Sofia)","","","`#148164 `__","" +"`P3008R6 `__","Atomic floating-point min/max","2025-06 (Sofia)","","","`#148168 `__","" +"`P3111R8 `__","Atomic Reduction Operations","2025-06 (Sofia)","","","`#148174 `__","" +"`P3060R3 `__","Add ``std::views::indices(n)``","2025-06 (Sofia)","","","`#148175 `__","" +"`P2319R5 `__","Prevent ``path`` presentation problems","2025-06 (Sofia)","","","`#148177 `__","" +"`P3223R2 `__","Making ``std::istream::ignore`` less surprising","2025-06 (Sofia)","","","`#148178 `__","" +"`P2781R9 `__","``std::constant_wrapper``","2025-06 (Sofia)","","","`#148179 `__","" +"`P3697R1 `__","Minor additions to C++26 standard library hardening","2025-06 (Sofia)","","","`#148180 `__","" +"`P3552R3 `__","Add a Coroutine Task Type","2025-06 (Sofia)","","","`#148182 `__","" +"`P1317R2 `__","Remove return type deduction in ``std::apply``","2025-06 (Sofia)","","","`#148183 `__","" +"","","","","","","" diff --git a/libcxx/utils/synchronize_csv_status_files.py b/libcxx/utils/synchronize_csv_status_files.py index 5dbd734de7fb0..66cc100a8eeee 100755 --- a/libcxx/utils/synchronize_csv_status_files.py +++ b/libcxx/utils/synchronize_csv_status_files.py @@ -154,6 +154,12 @@ class PaperInfo: First version of LLVM in which this paper/issue was resolved. """ + github_issue: Optional[str] + """ + Optional number of the Github issue tracking the implementation status of this paper. + This is used to cross-reference rows in the status pages with Github issues. + """ + notes: Optional[str] """ Optional plain text string representing notes to associate to the paper. @@ -170,6 +176,7 @@ def __init__(self, paper_number: str, paper_name: str, status: PaperStatus, meeting: Optional[str] = None, first_released_version: Optional[str] = None, + github_issue: Optional[str] = None, notes: Optional[str] = None, original: Optional[object] = None): self.paper_number = paper_number @@ -177,16 +184,18 @@ def __init__(self, paper_number: str, paper_name: str, self.status = status self.meeting = meeting self.first_released_version = first_released_version + self.github_issue = github_issue self.notes = notes self.original = original - def for_printing(self) -> Tuple[str, str, str, str, str, str]: + def for_printing(self) -> Tuple[str, str, str, str, str, str, str]: return ( f'`{self.paper_number} `__', self.paper_name, self.meeting if self.meeting is not None else '', self.status.to_csv_entry(), self.first_released_version if self.first_released_version is not None else '', + f'`#{self.github_issue} `__' if self.github_issue is not None else '', self.notes if self.notes is not None else '', ) @@ -203,13 +212,19 @@ def from_csv_row(row: Tuple[str, str, str, str, str, str]):# -> PaperInfo: if match is None: raise RuntimeError(f"Can't parse paper/issue number out of row: {row}") + # Match the issue number if present + github_issue = re.search(r'#([0-9]+)', row[5]) + if github_issue: + github_issue = github_issue.group(1) + return PaperInfo( paper_number=match.group(1), paper_name=row[1], status=PaperStatus.from_csv_entry(row[3]), meeting=row[2] or None, first_released_version=row[4] or None, - notes=row[5] or None, + github_issue=github_issue, + notes=row[6] or None, original=row, ) @@ -235,6 +250,7 @@ def from_github_issue(issue: Dict):# -> PaperInfo: status=PaperStatus.from_github_issue(issue), meeting=issue.get('meeting Voted', None), first_released_version=None, # TODO + github_issue=str(issue['content']['number']), notes=notes, original=issue, ) @@ -252,19 +268,24 @@ def merge(paper: PaperInfo, gh: PaperInfo) -> PaperInfo: is not useful. In case we don't update the CSV row's status, we still take any updated notes coming - from the Github issue. + from the Github issue and we add a link to the Github issue if it was previously missing. """ + took_gh_in_full = False # Whether we updated the entire PaperInfo from the Github version if paper.status == PaperStatus(PaperStatus.TODO) and gh.status == PaperStatus(PaperStatus.IN_PROGRESS): result = copy.deepcopy(paper) - result.notes = gh.notes elif paper.status < gh.status: result = copy.deepcopy(gh) + took_gh_in_full = True elif paper.status == gh.status: result = copy.deepcopy(paper) - result.notes = gh.notes else: print(f"We found a CSV row and a Github issue with different statuses:\nrow: {paper}\nGithub issue: {gh}") result = copy.deepcopy(paper) + + # If we didn't take the Github issue in full, make sure to update the notes, the link and anything else. + if not took_gh_in_full: + result.github_issue = gh.github_issue + result.notes = gh.notes return result def load_csv(file: pathlib.Path) -> List[Tuple]: @@ -285,6 +306,8 @@ def create_github_issue(paper: PaperInfo, labels: List[str]) -> None: """ Create a new Github issue representing the given PaperInfo. """ + assert paper.github_issue is None, "Trying to create a Github issue for a paper that is already tracked" + paper_name = paper.paper_name.replace('``', '`').replace('\\', '') create_cli = ['gh', 'issue', 'create', '--repo', 'llvm/llvm-project', @@ -363,6 +386,17 @@ def sync_csv(rows: List[Tuple], from_github: List[PaperInfo], create_new: bool, results.append(row) continue + # Validate the Github issue associated to the CSV row, if any + if paper.github_issue is not None: + if len(tracking) == 0: + print(f"Found row claiming to have a tracking issue, but failed to find a tracking issue on Github: {row}") + results.append(row) + continue + if len(tracking) == 1 and paper.github_issue != tracking[0].github_issue: + print(f"Found row with incorrect tracking issue: {row}\ntracked by: {tracking[0]}") + results.append(row) + continue + # If there is no tracking issue for that row and we are creating new issues, do that. # Otherwise just log that we're missing an issue. if len(tracking) == 0: