From d73501eb7b4c4fe6632f32315b189d691ba655f5 Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Wed, 28 Aug 2024 11:13:11 -0400 Subject: [PATCH 1/6] [TEMP] Change synchronization script to remove rows --- libcxx/utils/synchronize_csv_status_files.py | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/libcxx/utils/synchronize_csv_status_files.py b/libcxx/utils/synchronize_csv_status_files.py index 8e3be14675f97a..b3e28e1d07cf1e 100755 --- a/libcxx/utils/synchronize_csv_status_files.py +++ b/libcxx/utils/synchronize_csv_status_files.py @@ -303,18 +303,13 @@ def sync_csv(rows: List[Tuple], from_github: List[PaperInfo]) -> List[Tuple]: def main(): libcxx_root = pathlib.Path(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - # Extract the list of PaperInfos from issues we're tracking on Github. - print("Loading all issues from Github") - gh_command_line = ['gh', 'project', 'item-list', LIBCXX_CONFORMANCE_PROJECT, '--owner', 'llvm', '--format', 'json', '--limit', '9999999'] - project_info = json.loads(subprocess.check_output(gh_command_line)) - from_github = [PaperInfo.from_github_issue(i) for i in project_info['items']] - for filename in CSV_FILES_TO_SYNC: - print(f"Synchronizing {filename} with Github issues") + print(f"Updating {filename}") file = libcxx_root / 'docs' / 'Status' / filename csv = load_csv(file) - synced = sync_csv(csv, from_github) - write_csv(file, synced) + for row in csv: + del row[5] + write_csv(file, csv) if __name__ == '__main__': main() From 3b6d86246a2c4afab14dbbc9a232610749a4403d Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Wed, 28 Aug 2024 11:14:27 -0400 Subject: [PATCH 2/6] Actually remove the labels --- libcxx/docs/Status/Cxx17Issues.csv | 628 ++++++++++++++--------------- 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 | 246 +++++------ libcxx/docs/Status/Cxx2cIssues.csv | 162 ++++---- libcxx/docs/Status/Cxx2cPapers.csv | 156 +++---- 8 files changed, 1525 insertions(+), 1525 deletions(-) diff --git a/libcxx/docs/Status/Cxx17Issues.csv b/libcxx/docs/Status/Cxx17Issues.csv index 902a3717e5a388..efedd4b004f38e 100644 --- a/libcxx/docs/Status/Cxx17Issues.csv +++ b/libcxx/docs/Status/Cxx17Issues.csv @@ -1,314 +1,314 @@ -"Issue #","Issue Name","Meeting","Status","First released version","Labels" -"`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|","","" -"`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.0","" -"`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)","","","" -"`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)","","","" -"`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.0","" -"`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.0","" -"`LWG2569 `__","conjunction and disjunction requirements are too strict","2016-11 (Issaquah)","|Complete|","15.0","" -"`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| [#note-LWG2587]_","","" -"`LWG2588 `__","[fund.ts.v2] ""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do| [#note-LWG2588]_","","" -"`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|","","" -"`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.0","" -"`LWG2875 `__","shared_ptr::shared_ptr(Y\*, D, [|hellip|\ ]) constructors should be constrained","2017-02 (Kona)","|Complete|","","" -"`LWG2876 `__","``shared_ptr::shared_ptr(const weak_ptr&)``\ constructor should be constrained","2017-02 (Kona)","|Complete|","14.0","" -"`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|","","" -"`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| [#note-LWG2955]_","","" -"`LWG2956 `__","``filesystem::canonical()``\ still defined in terms of ``absolute(p, base)``\ ","2017-07 (Toronto)","|Complete|","","" +"Issue #","Issue Name","Meeting","Status","First released version" +"`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|","" +"`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.0" +"`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)","","" +"`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)","","" +"`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.0" +"`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.0" +"`LWG2569 `__","conjunction and disjunction requirements are too strict","2016-11 (Issaquah)","|Complete|","15.0" +"`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| [#note-LWG2587]_","" +"`LWG2588 `__","[fund.ts.v2] ""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do| [#note-LWG2588]_","" +"`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|","" +"`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.0" +"`LWG2875 `__","shared_ptr::shared_ptr(Y\*, D, [|hellip|\ ]) constructors should be constrained","2017-02 (Kona)","|Complete|","" +"`LWG2876 `__","``shared_ptr::shared_ptr(const weak_ptr&)``\ constructor should be constrained","2017-02 (Kona)","|Complete|","14.0" +"`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|","" +"`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| [#note-LWG2955]_","" +"`LWG2956 `__","``filesystem::canonical()``\ still defined in terms of ``absolute(p, base)``\ ","2017-07 (Toronto)","|Complete|","" diff --git a/libcxx/docs/Status/Cxx17Papers.csv b/libcxx/docs/Status/Cxx17Papers.csv index feb0c42df15bda..507bb0ee02b682 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","Labels" -"`N3911 `__","TransformationTrait Alias ``void_t``\ .","2014-11 (Urbana)","|Complete|","3.6","" -"`N4089 `__","Safe conversions in ``unique_ptr``\ .","2014-11 (Urbana)","|In Progress|","3.9","" -"`N4169 `__","A proposal to add invoke function template","2014-11 (Urbana)","|Complete|","3.7","" -"`N4190 `__","Removing auto_ptr, random_shuffle(), And Old Stuff.","2014-11 (Urbana)","|Complete|","15.0","" -"`N4258 `__","Cleaning-up noexcept in the Library.","2014-11 (Urbana)","|In Progress|","3.7","" -"`N4259 `__","Wording for std::uncaught_exceptions","2014-11 (Urbana)","|Complete| [#note-N4259]_","3.7","" -"`N4277 `__","TriviallyCopyable ``reference_wrapper``\ .","2014-11 (Urbana)","|Complete|","3.2","" -"`N4279 `__","Improved insertion interface for unique-key maps.","2014-11 (Urbana)","|Complete|","3.7","" -"`N4280 `__","Non-member size() and more","2014-11 (Urbana)","|Complete|","3.6","" -"`N4284 `__","Contiguous Iterators.","2014-11 (Urbana)","|Complete|","3.6","" -"`N4285 `__","Cleanup for exception-specification and throw-expression.","2014-11 (Urbana)","|Complete|","4.0","" -"","","","","","" -"`N4387 `__","improving pair and tuple","2015-05 (Lenexa)","|Complete|","4.0","" -"`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| [#note-P0156]_","","" -"`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| [#note-P0226]_","","" -"`P0220R1 `__","Adopt Library Fundamentals V1 TS Components for C++17","2016-02 (Jacksonville)","|Complete|","16.0","" -"`P0218R1 `__","Adopt the File System TS for C++17","2016-02 (Jacksonville)","|Complete|","7.0","" -"`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| [#note-P0154]_","19.0","" -"`P0030R1 `__","Proposal to Introduce a 3-Argument Overload to std::hypot","2016-02 (Jacksonville)","|Complete|","3.9","" -"`P0031R0 `__","A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access","2016-02 (Jacksonville)","|Complete|","4.0","" -"`P0272R1 `__","Give ``std::string``\ a non-const ``.data()``\ member function","2016-02 (Jacksonville)","|Complete|","3.9","" -"`P0077R2 `__","``is_callable``\ , the missing INVOKE related trait","2016-02 (Jacksonville)","|Complete|","3.9","" -"","","","","","" -"`P0032R3 `__","Homogeneous interface for variant, any and optional","2016-06 (Oulu)","|Complete|","4.0","" -"`P0040R3 `__","Extending memory management tools","2016-06 (Oulu)","|Complete|","4.0","" -"`P0063R3 `__","C++17 should refer to C11 instead of C99","2016-06 (Oulu)","|Complete|","7.0","" -"`P0067R3 `__","Elementary string conversions","2016-06 (Oulu)","|Nothing To Do| [#note-P0067R3]_","n/a","" -"`P0083R3 `__","Splicing Maps and Sets","2016-06 (Oulu)","|Complete|","8.0","" -"`P0084R2 `__","Emplace Return Type","2016-06 (Oulu)","|Complete|","4.0","" -"`P0088R3 `__","Variant: a type-safe union for C++17","2016-06 (Oulu)","|Complete|","4.0","" -"`P0137R1 `__","Core Issue 1776: Replacement of class objects containing reference members","2016-06 (Oulu)","|Complete|","6.0","" -"`P0163R0 `__","shared_ptr::weak_type","2016-06 (Oulu)","|Complete|","3.9","" -"`P0174R2 `__","Deprecating Vestigial Library Parts in C++17","2016-06 (Oulu)","|Complete|","15.0","" -"`P0175R1 `__","Synopses for the C library","2016-06 (Oulu)","","","" -"`P0180R2 `__","Reserve a New Library Namespace for Future Standardization","2016-06 (Oulu)","|Nothing To Do|","n/a","" -"`P0181R1 `__","Ordered by Default","2016-06 (Oulu)","|Nothing To Do| [#note-P0181]_","n/a","" -"`P0209R2 `__","make_from_tuple: apply for construction","2016-06 (Oulu)","|Complete|","3.9","" -"`P0219R1 `__","Relative Paths for Filesystem","2016-06 (Oulu)","|Complete|","7.0","" -"`P0254R2 `__","Integrating std::string_view and std::string","2016-06 (Oulu)","|Complete|","4.0","" -"`P0258R2 `__","has_unique_object_representations","2016-06 (Oulu)","|Complete|","6.0","" -"`P0295R0 `__","Adopt Selected Library Fundamentals V2 Components for C++17","2016-06 (Oulu)","|Complete|","4.0","" -"`P0302R1 `__","Removing Allocator Support in std::function","2016-06 (Oulu)","|Complete|","4.0","" -"`P0307R2 `__","Making Optional Greater Equal Again","2016-06 (Oulu)","|Complete|","4.0","" -"`P0336R1 `__","Better Names for Parallel Execution Policies in C++17","2016-06 (Oulu)","|Complete|","17.0","" -"`P0337R0 `__","Delete ``operator=``\ for polymorphic_allocator","2016-06 (Oulu)","|Complete|","3.9","" -"`P0346R1 `__","A Nomenclature Tweak","2016-06 (Oulu)","|Complete|","3.9","" -"`P0358R1 `__","Fixes for not_fn","2016-06 (Oulu)","|Complete|","3.9","" -"`P0371R1 `__","Temporarily discourage memory_order_consume","2016-06 (Oulu)","|Nothing To Do|","n/a","" -"`P0392R0 `__","Adapting string_view by filesystem paths","2016-06 (Oulu)","|Complete|","4.0","" -"`P0393R3 `__","Making Variant Greater Equal","2016-06 (Oulu)","|Complete|","4.0","" -"`P0394R4 `__","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","2016-06 (Oulu)","|Complete|","17.0","" -"","","","","","" -"`P0003R5 `__","Removing Deprecated Exception Specifications from C++17","2016-11 (Issaquah)","|Complete|","5.0","" -"`P0067R5 `__","Elementary string conversions, revision 5","2016-11 (Issaquah)","|Partial| [#note-P0067R5]_","","" -"`P0403R1 `__","Literal suffixes for ``basic_string_view``\ ","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0414R2 `__","Merging shared_ptr changes from Library Fundamentals to C++17","2016-11 (Issaquah)","|Complete|","11.0","" -"`P0418R2 `__","Fail or succeed: there is no atomic lattice","2016-11 (Issaquah)","","","" -"`P0426R1 `__","Constexpr for ``std::char_traits``\ ","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0435R1 `__","Resolving LWG Issues re ``common_type``\ ","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0502R0 `__","Throwing out of a parallel algorithm terminates - but how?","2016-11 (Issaquah)","","","" -"`P0503R0 `__","Correcting library usage of ""literal type""","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0504R0 `__","Revisiting in-place tag types for any/optional/variant","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0505R0 `__","Wording for GB 50 - constexpr for chrono","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0508R0 `__","Wording for GB 58 - structured bindings for node_handles","2016-11 (Issaquah)","","","" -"`P0509R1 `__","Updating ""Restrictions on exception handling""","2016-11 (Issaquah)","|Nothing To Do|","n/a","" -"`P0510R0 `__","Disallowing references, incomplete types, arrays, and empty variants","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0513R0 `__","Poisoning the Hash","2016-11 (Issaquah)","|Complete|","5.0","" -"`P0516R0 `__","Clarify That shared_future's Copy Operations have Wide Contracts","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0517R0 `__","Make future_error Constructible","2016-11 (Issaquah)","|Complete|","4.0","" -"`P0521R0 `__","Proposed Resolution for CA 14 (shared_ptr use_count/unique)","2016-11 (Issaquah)","|Complete|","18.0","" -"","","","","","" -"`P0156R2 `__","Variadic Lock guard(rev 5)","2017-02 (Kona)","|Complete|","5.0","" -"`P0270R3 `__","Removing C dependencies from signal handler wording","2017-02 (Kona)","","","" -"`P0298R3 `__","A byte type definition","2017-02 (Kona)","|Complete|","5.0","" -"`P0317R1 `__","Directory Entry Caching for Filesystem","2017-02 (Kona)","|Complete|","7.0","" -"`P0430R2 `__","File system library on non-POSIX-like operating systems","2017-02 (Kona)","|Complete|","7.0","" -"`P0433R2 `__","Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library","2017-02 (Kona)","|Complete|","14.0","" -"`P0452R1 `__","Unifying Parallel Algorithms","2017-02 (Kona)","|Partial| [#note-P0452]_","","" -"`P0467R2 `__","Iterator Concerns for Parallel Algorithms","2017-02 (Kona)","|Partial|","","" -"`P0492R2 `__","Proposed Resolution of C++17 National Body Comments for Filesystems","2017-02 (Kona)","|Complete|","7.0","" -"`P0518R1 `__","Allowing copies as arguments to function objects given to parallel algorithms in response to CH11","2017-02 (Kona)","|Nothing To Do|","","" -"`P0523R1 `__","Wording for CH 10: Complexity of parallel algorithms","2017-02 (Kona)","|Nothing To Do|","","" -"`P0548R1 `__","common_type and duration","2017-02 (Kona)","|Complete|","5.0","" -"`P0558R1 `__","Resolving atomic named base class inconsistencies","2017-02 (Kona)","|Complete|","","" -"`P0574R1 `__","Algorithm Complexity Constraints and Parallel Overloads","2017-02 (Kona)","|Nothing To Do|","","" -"`P0599R1 `__","noexcept for hash functions","2017-02 (Kona)","|Complete|","5.0","" -"`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| [#note-P0607]_","6.0","" -"`P0618R0 `__","Deprecating ","2017-02 (Kona)","|Complete|","15.0","" -"`P0623R0 `__","Final C++17 Parallel Algorithms Fixes","2017-02 (Kona)","|Nothing To Do|","","" -"","","","","","" -"`P0682R1 `__","Repairing elementary string conversions","2017-07 (Toronto)","","","" -"`P0739R0 `__","Some improvements to class template argument deduction integration into the standard library","2017-07 (Toronto)","|Complete|","5.0","" +"Paper #","Paper Name","Meeting","Status","First released version" +"`N3911 `__","TransformationTrait Alias ``void_t``\ .","2014-11 (Urbana)","|Complete|","3.6" +"`N4089 `__","Safe conversions in ``unique_ptr``\ .","2014-11 (Urbana)","|In Progress|","3.9" +"`N4169 `__","A proposal to add invoke function template","2014-11 (Urbana)","|Complete|","3.7" +"`N4190 `__","Removing auto_ptr, random_shuffle(), And Old Stuff.","2014-11 (Urbana)","|Complete|","15.0" +"`N4258 `__","Cleaning-up noexcept in the Library.","2014-11 (Urbana)","|In Progress|","3.7" +"`N4259 `__","Wording for std::uncaught_exceptions","2014-11 (Urbana)","|Complete| [#note-N4259]_","3.7" +"`N4277 `__","TriviallyCopyable ``reference_wrapper``\ .","2014-11 (Urbana)","|Complete|","3.2" +"`N4279 `__","Improved insertion interface for unique-key maps.","2014-11 (Urbana)","|Complete|","3.7" +"`N4280 `__","Non-member size() and more","2014-11 (Urbana)","|Complete|","3.6" +"`N4284 `__","Contiguous Iterators.","2014-11 (Urbana)","|Complete|","3.6" +"`N4285 `__","Cleanup for exception-specification and throw-expression.","2014-11 (Urbana)","|Complete|","4.0" +"","","","","" +"`N4387 `__","improving pair and tuple","2015-05 (Lenexa)","|Complete|","4.0" +"`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| [#note-P0156]_","" +"`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| [#note-P0226]_","" +"`P0220R1 `__","Adopt Library Fundamentals V1 TS Components for C++17","2016-02 (Jacksonville)","|Complete|","16.0" +"`P0218R1 `__","Adopt the File System TS for C++17","2016-02 (Jacksonville)","|Complete|","7.0" +"`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| [#note-P0154]_","19.0" +"`P0030R1 `__","Proposal to Introduce a 3-Argument Overload to std::hypot","2016-02 (Jacksonville)","|Complete|","3.9" +"`P0031R0 `__","A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access","2016-02 (Jacksonville)","|Complete|","4.0" +"`P0272R1 `__","Give ``std::string``\ a non-const ``.data()``\ member function","2016-02 (Jacksonville)","|Complete|","3.9" +"`P0077R2 `__","``is_callable``\ , the missing INVOKE related trait","2016-02 (Jacksonville)","|Complete|","3.9" +"","","","","" +"`P0032R3 `__","Homogeneous interface for variant, any and optional","2016-06 (Oulu)","|Complete|","4.0" +"`P0040R3 `__","Extending memory management tools","2016-06 (Oulu)","|Complete|","4.0" +"`P0063R3 `__","C++17 should refer to C11 instead of C99","2016-06 (Oulu)","|Complete|","7.0" +"`P0067R3 `__","Elementary string conversions","2016-06 (Oulu)","|Nothing To Do| [#note-P0067R3]_","n/a" +"`P0083R3 `__","Splicing Maps and Sets","2016-06 (Oulu)","|Complete|","8.0" +"`P0084R2 `__","Emplace Return Type","2016-06 (Oulu)","|Complete|","4.0" +"`P0088R3 `__","Variant: a type-safe union for C++17","2016-06 (Oulu)","|Complete|","4.0" +"`P0137R1 `__","Core Issue 1776: Replacement of class objects containing reference members","2016-06 (Oulu)","|Complete|","6.0" +"`P0163R0 `__","shared_ptr::weak_type","2016-06 (Oulu)","|Complete|","3.9" +"`P0174R2 `__","Deprecating Vestigial Library Parts in C++17","2016-06 (Oulu)","|Complete|","15.0" +"`P0175R1 `__","Synopses for the C library","2016-06 (Oulu)","","" +"`P0180R2 `__","Reserve a New Library Namespace for Future Standardization","2016-06 (Oulu)","|Nothing To Do|","n/a" +"`P0181R1 `__","Ordered by Default","2016-06 (Oulu)","|Nothing To Do| [#note-P0181]_","n/a" +"`P0209R2 `__","make_from_tuple: apply for construction","2016-06 (Oulu)","|Complete|","3.9" +"`P0219R1 `__","Relative Paths for Filesystem","2016-06 (Oulu)","|Complete|","7.0" +"`P0254R2 `__","Integrating std::string_view and std::string","2016-06 (Oulu)","|Complete|","4.0" +"`P0258R2 `__","has_unique_object_representations","2016-06 (Oulu)","|Complete|","6.0" +"`P0295R0 `__","Adopt Selected Library Fundamentals V2 Components for C++17","2016-06 (Oulu)","|Complete|","4.0" +"`P0302R1 `__","Removing Allocator Support in std::function","2016-06 (Oulu)","|Complete|","4.0" +"`P0307R2 `__","Making Optional Greater Equal Again","2016-06 (Oulu)","|Complete|","4.0" +"`P0336R1 `__","Better Names for Parallel Execution Policies in C++17","2016-06 (Oulu)","|Complete|","17.0" +"`P0337R0 `__","Delete ``operator=``\ for polymorphic_allocator","2016-06 (Oulu)","|Complete|","3.9" +"`P0346R1 `__","A Nomenclature Tweak","2016-06 (Oulu)","|Complete|","3.9" +"`P0358R1 `__","Fixes for not_fn","2016-06 (Oulu)","|Complete|","3.9" +"`P0371R1 `__","Temporarily discourage memory_order_consume","2016-06 (Oulu)","|Nothing To Do|","n/a" +"`P0392R0 `__","Adapting string_view by filesystem paths","2016-06 (Oulu)","|Complete|","4.0" +"`P0393R3 `__","Making Variant Greater Equal","2016-06 (Oulu)","|Complete|","4.0" +"`P0394R4 `__","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","2016-06 (Oulu)","|Complete|","17.0" +"","","","","" +"`P0003R5 `__","Removing Deprecated Exception Specifications from C++17","2016-11 (Issaquah)","|Complete|","5.0" +"`P0067R5 `__","Elementary string conversions, revision 5","2016-11 (Issaquah)","|Partial| [#note-P0067R5]_","" +"`P0403R1 `__","Literal suffixes for ``basic_string_view``\ ","2016-11 (Issaquah)","|Complete|","4.0" +"`P0414R2 `__","Merging shared_ptr changes from Library Fundamentals to C++17","2016-11 (Issaquah)","|Complete|","11.0" +"`P0418R2 `__","Fail or succeed: there is no atomic lattice","2016-11 (Issaquah)","","" +"`P0426R1 `__","Constexpr for ``std::char_traits``\ ","2016-11 (Issaquah)","|Complete|","4.0" +"`P0435R1 `__","Resolving LWG Issues re ``common_type``\ ","2016-11 (Issaquah)","|Complete|","4.0" +"`P0502R0 `__","Throwing out of a parallel algorithm terminates - but how?","2016-11 (Issaquah)","","" +"`P0503R0 `__","Correcting library usage of ""literal type""","2016-11 (Issaquah)","|Complete|","4.0" +"`P0504R0 `__","Revisiting in-place tag types for any/optional/variant","2016-11 (Issaquah)","|Complete|","4.0" +"`P0505R0 `__","Wording for GB 50 - constexpr for chrono","2016-11 (Issaquah)","|Complete|","4.0" +"`P0508R0 `__","Wording for GB 58 - structured bindings for node_handles","2016-11 (Issaquah)","","" +"`P0509R1 `__","Updating ""Restrictions on exception handling""","2016-11 (Issaquah)","|Nothing To Do|","n/a" +"`P0510R0 `__","Disallowing references, incomplete types, arrays, and empty variants","2016-11 (Issaquah)","|Complete|","4.0" +"`P0513R0 `__","Poisoning the Hash","2016-11 (Issaquah)","|Complete|","5.0" +"`P0516R0 `__","Clarify That shared_future's Copy Operations have Wide Contracts","2016-11 (Issaquah)","|Complete|","4.0" +"`P0517R0 `__","Make future_error Constructible","2016-11 (Issaquah)","|Complete|","4.0" +"`P0521R0 `__","Proposed Resolution for CA 14 (shared_ptr use_count/unique)","2016-11 (Issaquah)","|Complete|","18.0" +"","","","","" +"`P0156R2 `__","Variadic Lock guard(rev 5)","2017-02 (Kona)","|Complete|","5.0" +"`P0270R3 `__","Removing C dependencies from signal handler wording","2017-02 (Kona)","","" +"`P0298R3 `__","A byte type definition","2017-02 (Kona)","|Complete|","5.0" +"`P0317R1 `__","Directory Entry Caching for Filesystem","2017-02 (Kona)","|Complete|","7.0" +"`P0430R2 `__","File system library on non-POSIX-like operating systems","2017-02 (Kona)","|Complete|","7.0" +"`P0433R2 `__","Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library","2017-02 (Kona)","|Complete|","14.0" +"`P0452R1 `__","Unifying Parallel Algorithms","2017-02 (Kona)","|Partial| [#note-P0452]_","" +"`P0467R2 `__","Iterator Concerns for Parallel Algorithms","2017-02 (Kona)","|Partial|","" +"`P0492R2 `__","Proposed Resolution of C++17 National Body Comments for Filesystems","2017-02 (Kona)","|Complete|","7.0" +"`P0518R1 `__","Allowing copies as arguments to function objects given to parallel algorithms in response to CH11","2017-02 (Kona)","|Nothing To Do|","" +"`P0523R1 `__","Wording for CH 10: Complexity of parallel algorithms","2017-02 (Kona)","|Nothing To Do|","" +"`P0548R1 `__","common_type and duration","2017-02 (Kona)","|Complete|","5.0" +"`P0558R1 `__","Resolving atomic named base class inconsistencies","2017-02 (Kona)","|Complete|","" +"`P0574R1 `__","Algorithm Complexity Constraints and Parallel Overloads","2017-02 (Kona)","|Nothing To Do|","" +"`P0599R1 `__","noexcept for hash functions","2017-02 (Kona)","|Complete|","5.0" +"`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| [#note-P0607]_","6.0" +"`P0618R0 `__","Deprecating ","2017-02 (Kona)","|Complete|","15.0" +"`P0623R0 `__","Final C++17 Parallel Algorithms Fixes","2017-02 (Kona)","|Nothing To Do|","" +"","","","","" +"`P0682R1 `__","Repairing elementary string conversions","2017-07 (Toronto)","","" +"`P0739R0 `__","Some improvements to class template argument deduction integration into the standard library","2017-07 (Toronto)","|Complete|","5.0" diff --git a/libcxx/docs/Status/Cxx20Issues.csv b/libcxx/docs/Status/Cxx20Issues.csv index 7eeab85c6fa9e8..8c1b0c16f7c89d 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","Labels" -"`LWG2070 `__","``allocate_shared``\ should use ``allocator_traits::construct``\ ","2017-07 (Toronto)","|Nothing To Do| [#note-LWG2070]_","","" -"`LWG2444 `__","Inconsistent complexity for ``std::sort_heap``\ ","2017-07 (Toronto)","|Nothing To Do|","","" -"`LWG2593 `__","Moved-from state of Allocators","2017-07 (Toronto)","","","" -"`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.0","" -"`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)","","","" -"`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|","","" -"`LWG2977 `__","unordered_meow::merge() has incorrect Throws: clause","2017-11 (Albuquerque)","|Nothing To Do|","","" -"`LWG2978 `__","Hash support for pmr::string and friends","2017-11 (Albuquerque)","|Complete|","16.0","" -"`LWG2979 `__","aligned_union should require complete object types","2017-11 (Albuquerque)","|Complete|","","" -"`LWG2980 `__","Cannot compare_exchange empty pointers","2017-11 (Albuquerque)","","","" -"`LWG2981 `__","Remove redundant deduction guides from standard library","2017-11 (Albuquerque)","|Nothing To Do|","","" -"`LWG2982 `__","Making size_type consistent in associative container deduction guides","2017-11 (Albuquerque)","","","" -"`LWG2988 `__","Clause 32 cleanup missed one typename","2017-11 (Albuquerque)","|Complete|","13.0","" -"`LWG2993 `__","reference_wrapper conversion from T&&","2017-11 (Albuquerque)","|Complete|","13.0","" -"`LWG2998 `__","Requirements on function objects passed to {``forward_``,}list-specific algorithms","2017-11 (Albuquerque)","|Nothing To Do|","","" -"`LWG3001 `__","weak_ptr::element_type needs remove_extent_t","2017-11 (Albuquerque)","|Complete|","14.0","" -"`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.0","" -"`LWG3002 `__","[networking.ts] ``basic_socket_acceptor::is_open()``\ isn't ``noexcept``\ ","2018-03 (Jacksonville)","","","" -"`LWG3004 `__","|sect|\ [string.capacity] and |sect|\ [vector.capacity] should specify time complexity for ``capacity()``\ ","2018-03 (Jacksonville)","|Nothing To Do|","","" -"`LWG3005 `__","Destruction order of arrays by ``make_shared/allocate_shared``\ only recommended?","2018-03 (Jacksonville)","","","" -"`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)","","","" -"`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)","","","" -"`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.0","" -"`LWG3048 `__","``transform_reduce(exec, first1, last1, first2, init)``\ discards execution policy","2018-03 (Jacksonville)","|Complete|","17.0","" -"`LWG3051 `__","Floating point classifications were inadvertently changed in P0175","2018-03 (Jacksonville)","|Nothing To Do|","","" -"`LWG3075 `__","``basic_string``\ needs deduction guides from ``basic_string_view``\ ","2018-03 (Jacksonville)","|Complete|","","" -"","","","","","" -"`LWG2139 `__","What is a user-defined type?","2018-06 (Rapperswil)","","","" -"`LWG2970 `__","Return type of std::visit misspecified","2018-06 (Rapperswil)","|Complete|","11.0","" -"`LWG3058 `__","Parallel adjacent_difference shouldn't require creating temporaries","2018-06 (Rapperswil)","","","" -"`LWG3062 `__","Unnecessary decay_t in is_execution_policy_v should be remove_cvref_t","2018-06 (Rapperswil)","|Complete|","17.0","" -"`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| [#note-LWG2499]_","","" -"`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| [#note-LWG2797]_","","" -"`LWG2936 `__","Path comparison is defined in terms of the generic format","2018-11 (San Diego)","|Complete|","","" -"`LWG2943 `__","Problematic specification of the wide version of ``basic_filebuf::open``\ ","2018-11 (San Diego)","|Nothing To Do|","","" -"`LWG2960 `__","[fund.ts.v3] ``nonesuch``\ is insufficiently useless","2018-11 (San Diego)","|Complete|","","" -"`LWG2995 `__","``basic_stringbuf``\ default constructor forbids it from using SSO capacity","2018-11 (San Diego)","|Complete|","20.0","" -"`LWG2996 `__","Missing rvalue overloads for ``shared_ptr``\ operations","2018-11 (San Diego)","|Complete|","17.0","" -"`LWG3008 `__","``make_shared``\ (sub)object destruction semantics are not specified","2018-11 (San Diego)","|Complete|","16.0","" -"`LWG3022 `__","``is_convertible``\ may lead to ODR","2018-11 (San Diego)","|Nothing To Do| [#note-LWG3022]_","","" -"`LWG3025 `__","Map-like container deduction guides should use ``pair``\ , not ``pair``\ ","2018-11 (San Diego)","|Complete|","","" -"`LWG3031 `__","Algorithms and predicates with non-const reference arguments","2018-11 (San Diego)","","","" -"`LWG3037 `__","``polymorphic_allocator``\ and incomplete types","2018-11 (San Diego)","|Complete|","16.0","" -"`LWG3038 `__","``polymorphic_allocator::allocate``\ should not allow integer overflow to create vulnerabilities","2018-11 (San Diego)","|Complete|","14.0","" -"`LWG3054 `__","``uninitialized_copy``\ appears to not be able to meet its exception-safety guarantee","2018-11 (San Diego)","|Nothing To Do|","","" -"`LWG3065 `__","LWG 2989 missed that all ``path``\ 's other operators should be hidden friends as well","2018-11 (San Diego)","|Complete|","","" -"`LWG3096 `__","``path::lexically_relative``\ is confused by trailing slashes","2018-11 (San Diego)","|Complete|","","" -"`LWG3116 `__","``OUTERMOST_ALLOC_TRAITS``\ needs ``remove_reference_t``\ ","2018-11 (San Diego)","","","" -"`LWG3122 `__","``__cpp_lib_chrono_udls``\ was accidentally dropped","2018-11 (San Diego)","|Complete|","","" -"`LWG3127 `__","``basic_osyncstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Complete|","18.0","" -"`LWG3128 `__","``strstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Nothing To Do|","","" -"`LWG3129 `__","``regex_token_iterator``\ constructor uses wrong pointer arithmetic","2018-11 (San Diego)","","","" -"`LWG3130 `__","|sect|\ [input.output] needs many ``addressof``\ ","2018-11 (San Diego)","|Complete|","20.0","" -"`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| [#note-LWG3134]_","","" -"`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.0","" -"`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.0","|ranges|" -"`LWG3179 `__","``subrange``\ should always model ``Range``\ ","2019-02 (Kona)","|Nothing To Do|","","|ranges|" -"`LWG3180 `__","Inconsistently named return type for ``ranges::minmax_element``\ ","2019-02 (Kona)","|Complete|","15.0","|ranges|" -"`LWG3182 `__","Specification of ``Same``\ could be clearer","2019-02 (Kona)","|Complete|","15.0","" -"","","","","","" -"`LWG2899 `__","``is_(nothrow_)move_constructible``\ and ``tuple``\ , ``optional``\ and ``unique_ptr``\ ","2019-07 (Cologne)","","","" -"`LWG3055 `__","``path::operator+=(*single-character*)``\ misspecified","2019-07 (Cologne)","|Complete|","7.0","" -"`LWG3158 `__","``tuple(allocator_arg_t, const Alloc&)``\ should be conditionally explicit","2019-07 (Cologne)","|Complete|","10.0","" -"`LWG3169 `__","``ranges``\ permutation generators discard useful information","2019-07 (Cologne)","|Complete|","15.0","|ranges|" -"`LWG3183 `__","Normative permission to specialize Ranges variable templates","2019-07 (Cologne)","|Nothing To Do|","","|ranges|" -"`LWG3184 `__","Inconsistencies in ``bind_front``\ wording","2019-07 (Cologne)","|Complete|","13.0","" -"`LWG3185 `__","Uses-allocator construction functions missing ``constexpr``\ and ``noexcept``\ ","2019-07 (Cologne)","|Complete|","16.0","" -"`LWG3186 `__","``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful information","2019-07 (Cologne)","|Complete|","15.0","|ranges|" -"`LWG3187 `__","`P0591R4 `__ reverted DR 2586 fixes to ``scoped_allocator_adaptor::construct()``\ ","2019-07 (Cologne)","","","" -"`LWG3191 `__","``std::ranges::shuffle``\ synopsis does not match algorithm definition","2019-07 (Cologne)","|Complete|","15.0","|ranges|" -"`LWG3196 `__","``std::optional``\ is ill-formed is ``T``\ is an array","2019-07 (Cologne)","|Complete|","","" -"`LWG3198 `__","Bad constraint on ``std::span::span()``\ ","2019-07 (Cologne)","|Complete|","","" -"`LWG3199 `__","``istream >> bitset<0>``\ fails","2019-07 (Cologne)","|Complete|","10.0","" -"`LWG3202 `__","P0318R1 was supposed to be revised","2019-07 (Cologne)","|Complete|","","" -"`LWG3206 `__","``year_month_day``\ conversion to ``sys_days``\ uses not-existing member function","2019-07 (Cologne)","|Complete|","","" -"`LWG3208 `__","``Boolean``\ 's expression requirements are ordered inconsistently","2019-07 (Cologne)","|Nothing To Do|","","" -"`LWG3209 `__","Expression in ``year::ok()``\ returns clause is ill-formed","2019-07 (Cologne)","|Complete|","","" -"","","","","","" -"`LWG3231 `__","``year_month_day_last::day``\ specification does not cover ``!ok()``\ values","2019-11 (Belfast)","|Nothing To Do|","","" -"`LWG3225 `__","``zoned_time``\ converting constructor shall not be ``noexcept``\ ","2019-11 (Belfast)","|Complete|","19.0","|chrono|" -"`LWG3190 `__","``std::allocator::allocate``\ sometimes returns too little storage","2019-11 (Belfast)","|Complete|","14.0","" -"`LWG3218 `__","Modifier for ``%d``\ parse flag does not match POSIX and ``format``\ specification","2019-11 (Belfast)","","","|chrono| |format|" -"`LWG3224 `__","``zoned_time``\ constructor from ``TimeZonePtr``\ does not specify initialization of ``tp_``\ ","2019-11 (Belfast)","|Complete|","19.0","|chrono|" -"`LWG3230 `__","Format specifier ``%y/%Y``\ is missing locale alternative versions","2019-11 (Belfast)","|Complete|","16.0","|chrono| |format|" -"`LWG3232 `__","Inconsistency in ``zoned_time``\ deduction guides","2019-11 (Belfast)","|Complete|","19.0","|chrono|" -"`LWG3222 `__","P0574R1 introduced preconditions on non-existent parameters","2019-11 (Belfast)","","","" -"`LWG3221 `__","Result of ``year_month``\ arithmetic with ``months``\ is ambiguous","2019-11 (Belfast)","|Complete|","8.0","" -"`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|","","|format|" -"`LWG3253 `__","``basic_syncbuf::basic_syncbuf()``\ should not be explicit","2019-11 (Belfast)","","","" -"`LWG3245 `__","Unnecessary restriction on ``'%p'``\ parse specifier","2019-11 (Belfast)","","","|chrono|" -"`LWG3244 `__","Constraints for ``Source``\ in |sect|\ [fs.path.req] insufficiently constrainty","2019-11 (Belfast)","","","" -"`LWG3241 `__","``chrono-spec``\ grammar ambiguity in |sect|\ [time.format]","2019-11 (Belfast)","|Complete|","16.0","|chrono| |format|" -"`LWG3257 `__","Missing feature testing macro update from P0858","2019-11 (Belfast)","|Complete|","12.0","" -"`LWG3256 `__","Feature testing macro for ``constexpr``\ algorithms","2019-11 (Belfast)","|Complete|","13.0","" -"`LWG3273 `__","Specify ``weekday_indexed``\ to range of ``[0, 7]``\ ","2019-11 (Belfast)","|Complete|","16.0","|chrono|" -"`LWG3070 `__","``path::lexically_relative``\ causes surprising results if a filename can also be a *root-name*","2019-11 (Belfast)","","","" -"`LWG3266 `__","``to_chars(bool)``\ should be deleted","2019-11 (Belfast)","|Complete|","14.0","" -"`LWG3272 `__","``%I%p``\ should parse/format ``duration``\ since midnight","2019-11 (Belfast)","","","|chrono| |format|" -"`LWG3259 `__","The definition of *constexpr iterators* should be adjusted","2019-11 (Belfast)","|Nothing To Do|","","" -"`LWG3103 `__","Errors in taking subview of ``span``\ should be ill-formed where possible","2019-11 (Belfast)","|Complete|","11.0","" -"`LWG3274 `__","Missing feature test macro for ````\ ","2019-11 (Belfast)","|Complete|","11.0","" -"`LWG3276 `__","Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ ","2019-11 (Belfast)","|Complete|","15.0","|ranges|" -"`LWG3277 `__","Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ ","2019-11 (Belfast)","|Nothing To Do|","","|ranges|" -"`LWG3149 `__","``DefaultConstructible``\ should require default initialization","2019-11 (Belfast)","|Complete|","13.0","" -"","","","","","" -"`LWG1203 `__","More useful rvalue stream insertion","2020-02 (Prague)","|Complete|","12.0","" -"`LWG2859 `__","Definition of *reachable* in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object","2020-02 (Prague)","","","" -"`LWG3018 `__","``shared_ptr``\ of function type","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3050 `__","Conversion specification problem in ``chrono::duration``\ constructor","2020-02 (Prague)","|Complete|","19.0","|chrono|" -"`LWG3141 `__","``CopyConstructible``\ doesn't preserve source values","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3150 `__","``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ ","2020-02 (Prague)","|Complete|","13.0","|ranges|" -"`LWG3175 `__","The ``CommonReference``\ requirement of concept ``SwappableWith``\ is not satisfied in the example","2020-02 (Prague)","|Complete|","13.0","" -"`LWG3194 `__","``ConvertibleTo``\ prose does not match code","2020-02 (Prague)","|Complete|","13.0","" -"`LWG3200 `__","``midpoint``\ should not constrain ``T``\ is complete","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3201 `__","``lerp``\ should be marked as ``noexcept``\ ","2020-02 (Prague)","|Complete|","","" -"`LWG3226 `__","``zoned_time``\ constructor from ``string_view``\ should accept ``zoned_time``\ ","2020-02 (Prague)","|Complete|","19.0","|chrono|" -"`LWG3233 `__","Broken requirements for ``shared_ptr``\ converting constructors","2020-02 (Prague)","|Complete|","19.0","" -"`LWG3237 `__","LWG 3038 and 3190 have inconsistent PRs","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3238 `__","Insufficiently-defined behavior of ``std::function``\ deduction guides","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3242 `__","``std::format``\ : missing rules for ``arg-id``\ in ``width``\ and ``precision``\ ","2020-02 (Prague)","|Complete|","14.0","|format|" -"`LWG3243 `__","``std::format``\ and negative zeroes","2020-02 (Prague)","|Complete|","14.0","|format|" -"`LWG3247 `__","``ranges::iter_move``\ should perform ADL-only lookup of ``iter_move``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3248 `__","``std::format``\ ``#b``\ , ``#B``\ , ``#o``\ , ``#x``\ , and ``#X``\ presentation types misformat negative numbers","2020-02 (Prague)","|Complete|","14.0","|format|" -"`LWG3250 `__","``std::format``\ : ``#``\ (alternate form) for NaN and inf","2020-02 (Prague)","|Complete|","14.0","|format|" -"`LWG3251 `__","Are ``std::format``\ alignment specifiers applied to string arguments?","2020-02 (Prague)","|Complete|","14.0","|format|" -"`LWG3252 `__","Parse locale's aware modifiers for commands are not consistent with POSIX spec","2020-02 (Prague)","","","|chrono|" -"`LWG3254 `__","Strike ``stop_token``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17.0","" -"`LWG3255 `__","``span``\ 's ``array``\ constructor is too strict","2020-02 (Prague)","|Complete|","","" -"`LWG3260 `__","``year_month*``\ arithmetic rejects durations convertible to years","2020-02 (Prague)","","","|chrono|" -"`LWG3262 `__","Formatting of negative durations is not specified","2020-02 (Prague)","|Complete|","16.0","|chrono| |format|" -"`LWG3264 `__","``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3269 `__","Parse manipulators do not specify the result of the extraction from stream","2020-02 (Prague)","","","|chrono|" -"`LWG3270 `__","Parsing and formatting ``%j``\ with ``duration``\ s","2020-02 (Prague)","|Partial|","","|chrono| |format|" -"`LWG3280 `__","View converting constructors can cause constraint recursion and are unneeded","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3281 `__","Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion","2020-02 (Prague)","|Complete|","13.0","|ranges|" -"`LWG3282 `__","``subrange``\ converting constructor should disallow derived to base conversions","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3284 `__","``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negate","2020-02 (Prague)","|Nothing To Do|","","|ranges|" -"`LWG3285 `__","The type of a customization point object shall satisfy ``semiregular``\ ","2020-02 (Prague)","|Nothing To Do|","","|ranges|" -"`LWG3286 `__","``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3291 `__","``iota_view::iterator``\ has the wrong ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3292 `__","``iota_view``\ is under-constrained","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3294 `__","``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ ","2020-02 (Prague)","|Complete|","19.0","|chrono|" -"`LWG3296 `__","Inconsistent default argument for ``basic_regex<>::assign``\ ","2020-02 (Prague)","|Complete|","","" -"`LWG3299 `__","Pointers don't need customized iterator behavior","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3300 `__","Non-array ``ssize``\ overload is underconstrained","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3301 `__","``transform_view::iterator``\ has incorrect ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3302 `__","Range adaptor objects ``keys``\ and ``values``\ are unspecified","2020-02 (Prague)","|Complete|","16.0","|ranges|" -"`LWG3303 `__","Bad ""``constexpr``\ "" marker for ``destroy/destroy_n``\ ","2020-02 (Prague)","","","" -"`LWG3304 `__","Allocate functions of ``std::polymorphic_allocator``\ should require ``[[nodiscard]]``\ ","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3307 `__","``std::allocator().allocate(n)``\ ","2020-02 (Prague)","|Complete|","20.0","" -"`LWG3310 `__","Replace ``SIZE_MAX``\ with ``numeric_limits::max()``\ ","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3313 `__","``join_view::iterator::operator--``\ is incorrectly constrained","2020-02 (Prague)","|Complete|","14.0","|ranges|" -"`LWG3314 `__","Is stream insertion behavior locale dependent when ``Period::type``\ is ``micro``\ ?","2020-02 (Prague)","|Complete|","16.0","|chrono|" -"`LWG3315 `__","LWG3315: Correct Allocator Default Behavior","2020-02 (Prague)","|Complete|","","" -"`LWG3316 `__","Correctly define epoch for ``utc_clock``\ / ``utc_timepoint``\ ","2020-02 (Prague)","","","|chrono|" -"`LWG3317 `__","Incorrect ``operator<<``\ for floating-point durations","2020-02 (Prague)","","","|chrono|" -"`LWG3318 `__","Clarify whether clocks can represent time before their epoch","2020-02 (Prague)","","","|chrono|" -"`LWG3319 `__","Properly reference specification of IANA time zone database","2020-02 (Prague)","|Nothing To Do|","","|chrono|" -"`LWG3320 `__","``span::cbegin/cend``\ methods produce different results than ``std::[ranges::]cbegin/cend``\ ","2020-02 (Prague)","|Complete|","","" -"`LWG3321 `__","``uninitialized_construct_using_allocator``\ should use ``construct_at``\ ","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3323 `__","``*has-tuple-element*``\ helper concept needs ``convertible_to``\ ","2020-02 (Prague)","|Complete|","16.0","|ranges|" -"`LWG3324 `__","Special-case ``std::strong/weak/partial_order``\ for pointers","2020-02 (Prague)","|Complete|","14.0","|spaceship|" -"`LWG3325 `__","Constrain return type of transformation function for ``transform_view``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3326 `__","``enable_view``\ has false positives","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3327 `__","Format alignment specifiers vs. text direction","2020-02 (Prague)","|Nothing To Do|","","|format|" -"`LWG3328 `__","Clarify that ``std::string``\ is not good for UTF-8","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3329 `__","``totally_ordered_with``\ both directly and indirectly requires ``common_reference_with``\ ","2020-02 (Prague)","|Complete|","13.0","" -"`LWG3330 `__","Include ````\ from most library headers","2020-02 (Prague)","|Complete|","13.0","|spaceship|" -"`LWG3331 `__","Define ``totally_ordered/_with``\ in terms of ``partially-ordered-with``\ ","2020-02 (Prague)","|Complete|","13.0","" -"`LWG3332 `__","Issue in |sect|\ [time.format]","2020-02 (Prague)","|Complete|","16.0","|chrono| |format|" -"`LWG3334 `__","``basic_osyncstream``\ move assignment and destruction calls ``basic_syncbuf::emit()``\ twice","2020-02 (Prague)","|Complete|","18.0","" -"`LWG3335 `__","Resolve C++20 NB comments US 273 and GB 274","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3338 `__","Rename ``default_constructible``\ to ``default_initializable``\ ","2020-02 (Prague)","|Complete|","13.0","" -"`LWG3340 `__","Formatting functions should throw on argument/format string mismatch in |sect|\ [format.functions]","2020-02 (Prague)","|Complete|","14.0","|format|" -"`LWG3346 `__","``pair``\ and ``tuple``\ copy and move constructor have backwards specification","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3347 `__","``std::pair``\ now requires ``T``\ and ``U``\ to be less-than-comparable","2020-02 (Prague)","|Complete|","17.0","" -"`LWG3348 `__","``__cpp_lib_unwrap_ref``\ in wrong header","2020-02 (Prague)","|Complete|","12.0","" -"`LWG3349 `__","Missing ``__cpp_lib_constexpr_complex``\ for P0415R1","2020-02 (Prague)","|Complete|","16.0","" -"`LWG3350 `__","Simplify return type of ``lexicographical_compare_three_way``\ ","2020-02 (Prague)","|Complete|","17.0","|spaceship|" -"`LWG3351 `__","``ranges::enable_safe_range``\ should not be constrained","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3352 `__","``strong_equality``\ isn't a thing","2020-02 (Prague)","|Complete|","19.0","|spaceship|" -"`LWG3354 `__","``has_strong_structural_equality``\ has a meaningless definition","2020-02 (Prague)","|Nothing To Do|","","|spaceship|" -"`LWG3355 `__","The memory algorithms should support move-only input iterators introduced by P1207","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3356 `__","``__cpp_lib_nothrow_convertible``\ should be ``__cpp_lib_is_nothrow_convertible``\ ","2020-02 (Prague)","|Complete|","12.0","" -"`LWG3358 `__","|sect|\ [span.cons] is mistaken that ``to_address``\ can throw","2020-02 (Prague)","|Complete|","17.0","" -"`LWG3359 `__","````\ leap second support should allow for negative leap seconds","2020-02 (Prague)","|In Progress|","","|chrono|" -"`LWG3360 `__","``three_way_comparable_with``\ is inconsistent with similar concepts","2020-02 (Prague)","|Nothing To Do|","","|spaceship|" -"`LWG3362 `__","Strike ``stop_source``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17.0","" -"`LWG3363 `__","``drop_while_view``\ should opt-out of ``sized_range``\ ","2020-02 (Prague)","|Nothing To Do|","","|ranges|" -"`LWG3364 `__","Initialize data members of ranges and their iterators","2020-02 (Prague)","|Complete|","16.0","|ranges|" -"`LWG3367 `__","Integer-class conversions should not throw","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3369 `__","``span``\ 's deduction-guide for built-in arrays doesn't work","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3371 `__","``visit_format_arg``\ and ``make_format_args``\ are not hidden friends","2020-02 (Prague)","|Complete|","14.0","|format|" -"`LWG3372 `__","``vformat_to``\ should not try to deduce ``Out``\ twice","2020-02 (Prague)","|Complete|","14.0","|format|" -"`LWG3373 `__","``{to,from}_chars_result``\ and ``format_to_n_result``\ need the ""we really mean what we say"" wording","2020-02 (Prague)","|Complete|","14.0","|format|" -"`LWG3374 `__","P0653 + P1006 should have made the other ``std::to_address``\ overload ``constexpr``\ ","2020-02 (Prague)","|Complete|","12.0","" -"`LWG3375 `__","``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3377 `__","``elements_view::iterator``\ befriends a specialization of itself","2020-02 (Prague)","|Nothing To Do|","","|ranges|" -"`LWG3379 `__","""``safe``\ "" in several library names is misleading","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3380 `__","``common_type``\ and comparison categories","2020-02 (Prague)","|Complete|","15.0","|spaceship|" -"`LWG3381 `__","``begin``\ and ``data``\ must agree for ``contiguous_range``\ ","2020-02 (Prague)","|Nothing To Do|","","|ranges|" -"`LWG3382 `__","NTTP for ``pair``\ and ``array``\ ","2020-02 (Prague)","|Nothing To Do|","","" -"`LWG3383 `__","|sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ ","2020-02 (Prague)","|Complete|","19.0","|chrono|" -"`LWG3384 `__","``transform_view::*sentinel*``\ has an incorrect ``operator-``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3385 `__","``common_iterator``\ is not sufficiently constrained for non-copyable iterators","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3387 `__","|sect|\ [range.reverse.view] ``reverse_view``\ unintentionally requires ``range``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3388 `__","``view``\ iterator types have ill-formed ``<=>``\ operators","2020-02 (Prague)","|Complete|","16.0","|ranges|" -"`LWG3389 `__","A move-only iterator still does not have a ``counted_iterator``\ ","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`LWG3390 `__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","2020-02 (Prague)","|Complete|","14.0","|ranges|" -"`LWG3393 `__","Missing/incorrect feature test macro for coroutines","2020-02 (Prague)","|Complete|","14.0","" -"`LWG3395 `__","LWG3395: Definition for three-way comparison needs to be updated (US 152)","2020-02 (Prague)","|Nothing To Do|","","|spaceship|" -"`LWG3396 `__","Clarify point of reference for ``source_location::current()``\ (DE 169)","2020-02 (Prague)","|Nothing To Do|","16.0","" -"`LWG3397 `__","``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ ","2020-02 (Prague)","|Complete|","16.0","|ranges|" -"`LWG3398 `__","``tuple_element_t``\ is also wrong for ``const subrange``\ ","2020-02 (Prague)","|Complete|","14.0","|ranges|" -"","","","","","" -"`LWG3446 `__","``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ ","2020-11 (Virtual)","|Complete|","13.0","|ranges|" +"Issue #","Issue Name","Meeting","Status","First released version" +"`LWG2070 `__","``allocate_shared``\ should use ``allocator_traits::construct``\ ","2017-07 (Toronto)","|Nothing To Do| [#note-LWG2070]_","" +"`LWG2444 `__","Inconsistent complexity for ``std::sort_heap``\ ","2017-07 (Toronto)","|Nothing To Do|","" +"`LWG2593 `__","Moved-from state of Allocators","2017-07 (Toronto)","","" +"`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.0" +"`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)","","" +"`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|","" +"`LWG2977 `__","unordered_meow::merge() has incorrect Throws: clause","2017-11 (Albuquerque)","|Nothing To Do|","" +"`LWG2978 `__","Hash support for pmr::string and friends","2017-11 (Albuquerque)","|Complete|","16.0" +"`LWG2979 `__","aligned_union should require complete object types","2017-11 (Albuquerque)","|Complete|","" +"`LWG2980 `__","Cannot compare_exchange empty pointers","2017-11 (Albuquerque)","","" +"`LWG2981 `__","Remove redundant deduction guides from standard library","2017-11 (Albuquerque)","|Nothing To Do|","" +"`LWG2982 `__","Making size_type consistent in associative container deduction guides","2017-11 (Albuquerque)","","" +"`LWG2988 `__","Clause 32 cleanup missed one typename","2017-11 (Albuquerque)","|Complete|","13.0" +"`LWG2993 `__","reference_wrapper conversion from T&&","2017-11 (Albuquerque)","|Complete|","13.0" +"`LWG2998 `__","Requirements on function objects passed to {``forward_``,}list-specific algorithms","2017-11 (Albuquerque)","|Nothing To Do|","" +"`LWG3001 `__","weak_ptr::element_type needs remove_extent_t","2017-11 (Albuquerque)","|Complete|","14.0" +"`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.0" +"`LWG3002 `__","[networking.ts] ``basic_socket_acceptor::is_open()``\ isn't ``noexcept``\ ","2018-03 (Jacksonville)","","" +"`LWG3004 `__","|sect|\ [string.capacity] and |sect|\ [vector.capacity] should specify time complexity for ``capacity()``\ ","2018-03 (Jacksonville)","|Nothing To Do|","" +"`LWG3005 `__","Destruction order of arrays by ``make_shared/allocate_shared``\ only recommended?","2018-03 (Jacksonville)","","" +"`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)","","" +"`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)","","" +"`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.0" +"`LWG3048 `__","``transform_reduce(exec, first1, last1, first2, init)``\ discards execution policy","2018-03 (Jacksonville)","|Complete|","17.0" +"`LWG3051 `__","Floating point classifications were inadvertently changed in P0175","2018-03 (Jacksonville)","|Nothing To Do|","" +"`LWG3075 `__","``basic_string``\ needs deduction guides from ``basic_string_view``\ ","2018-03 (Jacksonville)","|Complete|","" +"","","","","" +"`LWG2139 `__","What is a user-defined type?","2018-06 (Rapperswil)","","" +"`LWG2970 `__","Return type of std::visit misspecified","2018-06 (Rapperswil)","|Complete|","11.0" +"`LWG3058 `__","Parallel adjacent_difference shouldn't require creating temporaries","2018-06 (Rapperswil)","","" +"`LWG3062 `__","Unnecessary decay_t in is_execution_policy_v should be remove_cvref_t","2018-06 (Rapperswil)","|Complete|","17.0" +"`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| [#note-LWG2499]_","" +"`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| [#note-LWG2797]_","" +"`LWG2936 `__","Path comparison is defined in terms of the generic format","2018-11 (San Diego)","|Complete|","" +"`LWG2943 `__","Problematic specification of the wide version of ``basic_filebuf::open``\ ","2018-11 (San Diego)","|Nothing To Do|","" +"`LWG2960 `__","[fund.ts.v3] ``nonesuch``\ is insufficiently useless","2018-11 (San Diego)","|Complete|","" +"`LWG2995 `__","``basic_stringbuf``\ default constructor forbids it from using SSO capacity","2018-11 (San Diego)","|Complete|","20.0" +"`LWG2996 `__","Missing rvalue overloads for ``shared_ptr``\ operations","2018-11 (San Diego)","|Complete|","17.0" +"`LWG3008 `__","``make_shared``\ (sub)object destruction semantics are not specified","2018-11 (San Diego)","|Complete|","16.0" +"`LWG3022 `__","``is_convertible``\ may lead to ODR","2018-11 (San Diego)","|Nothing To Do| [#note-LWG3022]_","" +"`LWG3025 `__","Map-like container deduction guides should use ``pair``\ , not ``pair``\ ","2018-11 (San Diego)","|Complete|","" +"`LWG3031 `__","Algorithms and predicates with non-const reference arguments","2018-11 (San Diego)","","" +"`LWG3037 `__","``polymorphic_allocator``\ and incomplete types","2018-11 (San Diego)","|Complete|","16.0" +"`LWG3038 `__","``polymorphic_allocator::allocate``\ should not allow integer overflow to create vulnerabilities","2018-11 (San Diego)","|Complete|","14.0" +"`LWG3054 `__","``uninitialized_copy``\ appears to not be able to meet its exception-safety guarantee","2018-11 (San Diego)","|Nothing To Do|","" +"`LWG3065 `__","LWG 2989 missed that all ``path``\ 's other operators should be hidden friends as well","2018-11 (San Diego)","|Complete|","" +"`LWG3096 `__","``path::lexically_relative``\ is confused by trailing slashes","2018-11 (San Diego)","|Complete|","" +"`LWG3116 `__","``OUTERMOST_ALLOC_TRAITS``\ needs ``remove_reference_t``\ ","2018-11 (San Diego)","","" +"`LWG3122 `__","``__cpp_lib_chrono_udls``\ was accidentally dropped","2018-11 (San Diego)","|Complete|","" +"`LWG3127 `__","``basic_osyncstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Complete|","18.0" +"`LWG3128 `__","``strstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Nothing To Do|","" +"`LWG3129 `__","``regex_token_iterator``\ constructor uses wrong pointer arithmetic","2018-11 (San Diego)","","" +"`LWG3130 `__","|sect|\ [input.output] needs many ``addressof``\ ","2018-11 (San Diego)","|Complete|","20.0" +"`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| [#note-LWG3134]_","" +"`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.0" +"`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.0" +"`LWG3179 `__","``subrange``\ should always model ``Range``\ ","2019-02 (Kona)","|Nothing To Do|","" +"`LWG3180 `__","Inconsistently named return type for ``ranges::minmax_element``\ ","2019-02 (Kona)","|Complete|","15.0" +"`LWG3182 `__","Specification of ``Same``\ could be clearer","2019-02 (Kona)","|Complete|","15.0" +"","","","","" +"`LWG2899 `__","``is_(nothrow_)move_constructible``\ and ``tuple``\ , ``optional``\ and ``unique_ptr``\ ","2019-07 (Cologne)","","" +"`LWG3055 `__","``path::operator+=(*single-character*)``\ misspecified","2019-07 (Cologne)","|Complete|","7.0" +"`LWG3158 `__","``tuple(allocator_arg_t, const Alloc&)``\ should be conditionally explicit","2019-07 (Cologne)","|Complete|","10.0" +"`LWG3169 `__","``ranges``\ permutation generators discard useful information","2019-07 (Cologne)","|Complete|","15.0" +"`LWG3183 `__","Normative permission to specialize Ranges variable templates","2019-07 (Cologne)","|Nothing To Do|","" +"`LWG3184 `__","Inconsistencies in ``bind_front``\ wording","2019-07 (Cologne)","|Complete|","13.0" +"`LWG3185 `__","Uses-allocator construction functions missing ``constexpr``\ and ``noexcept``\ ","2019-07 (Cologne)","|Complete|","16.0" +"`LWG3186 `__","``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful information","2019-07 (Cologne)","|Complete|","15.0" +"`LWG3187 `__","`P0591R4 `__ reverted DR 2586 fixes to ``scoped_allocator_adaptor::construct()``\ ","2019-07 (Cologne)","","" +"`LWG3191 `__","``std::ranges::shuffle``\ synopsis does not match algorithm definition","2019-07 (Cologne)","|Complete|","15.0" +"`LWG3196 `__","``std::optional``\ is ill-formed is ``T``\ is an array","2019-07 (Cologne)","|Complete|","" +"`LWG3198 `__","Bad constraint on ``std::span::span()``\ ","2019-07 (Cologne)","|Complete|","" +"`LWG3199 `__","``istream >> bitset<0>``\ fails","2019-07 (Cologne)","|Complete|","10.0" +"`LWG3202 `__","P0318R1 was supposed to be revised","2019-07 (Cologne)","|Complete|","" +"`LWG3206 `__","``year_month_day``\ conversion to ``sys_days``\ uses not-existing member function","2019-07 (Cologne)","|Complete|","" +"`LWG3208 `__","``Boolean``\ 's expression requirements are ordered inconsistently","2019-07 (Cologne)","|Nothing To Do|","" +"`LWG3209 `__","Expression in ``year::ok()``\ returns clause is ill-formed","2019-07 (Cologne)","|Complete|","" +"","","","","" +"`LWG3231 `__","``year_month_day_last::day``\ specification does not cover ``!ok()``\ values","2019-11 (Belfast)","|Nothing To Do|","" +"`LWG3225 `__","``zoned_time``\ converting constructor shall not be ``noexcept``\ ","2019-11 (Belfast)","|Complete|","19.0" +"`LWG3190 `__","``std::allocator::allocate``\ sometimes returns too little storage","2019-11 (Belfast)","|Complete|","14.0" +"`LWG3218 `__","Modifier for ``%d``\ parse flag does not match POSIX and ``format``\ specification","2019-11 (Belfast)","","" +"`LWG3224 `__","``zoned_time``\ constructor from ``TimeZonePtr``\ does not specify initialization of ``tp_``\ ","2019-11 (Belfast)","|Complete|","19.0" +"`LWG3230 `__","Format specifier ``%y/%Y``\ is missing locale alternative versions","2019-11 (Belfast)","|Complete|","16.0" +"`LWG3232 `__","Inconsistency in ``zoned_time``\ deduction guides","2019-11 (Belfast)","|Complete|","19.0" +"`LWG3222 `__","P0574R1 introduced preconditions on non-existent parameters","2019-11 (Belfast)","","" +"`LWG3221 `__","Result of ``year_month``\ arithmetic with ``months``\ is ambiguous","2019-11 (Belfast)","|Complete|","8.0" +"`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)","","" +"`LWG3245 `__","Unnecessary restriction on ``'%p'``\ parse specifier","2019-11 (Belfast)","","" +"`LWG3244 `__","Constraints for ``Source``\ in |sect|\ [fs.path.req] insufficiently constrainty","2019-11 (Belfast)","","" +"`LWG3241 `__","``chrono-spec``\ grammar ambiguity in |sect|\ [time.format]","2019-11 (Belfast)","|Complete|","16.0" +"`LWG3257 `__","Missing feature testing macro update from P0858","2019-11 (Belfast)","|Complete|","12.0" +"`LWG3256 `__","Feature testing macro for ``constexpr``\ algorithms","2019-11 (Belfast)","|Complete|","13.0" +"`LWG3273 `__","Specify ``weekday_indexed``\ to range of ``[0, 7]``\ ","2019-11 (Belfast)","|Complete|","16.0" +"`LWG3070 `__","``path::lexically_relative``\ causes surprising results if a filename can also be a *root-name*","2019-11 (Belfast)","","" +"`LWG3266 `__","``to_chars(bool)``\ should be deleted","2019-11 (Belfast)","|Complete|","14.0" +"`LWG3272 `__","``%I%p``\ should parse/format ``duration``\ since midnight","2019-11 (Belfast)","","" +"`LWG3259 `__","The definition of *constexpr iterators* should be adjusted","2019-11 (Belfast)","|Nothing To Do|","" +"`LWG3103 `__","Errors in taking subview of ``span``\ should be ill-formed where possible","2019-11 (Belfast)","|Complete|","11.0" +"`LWG3274 `__","Missing feature test macro for ````\ ","2019-11 (Belfast)","|Complete|","11.0" +"`LWG3276 `__","Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ ","2019-11 (Belfast)","|Complete|","15.0" +"`LWG3277 `__","Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ ","2019-11 (Belfast)","|Nothing To Do|","" +"`LWG3149 `__","``DefaultConstructible``\ should require default initialization","2019-11 (Belfast)","|Complete|","13.0" +"","","","","" +"`LWG1203 `__","More useful rvalue stream insertion","2020-02 (Prague)","|Complete|","12.0" +"`LWG2859 `__","Definition of *reachable* in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object","2020-02 (Prague)","","" +"`LWG3018 `__","``shared_ptr``\ of function type","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3050 `__","Conversion specification problem in ``chrono::duration``\ constructor","2020-02 (Prague)","|Complete|","19.0" +"`LWG3141 `__","``CopyConstructible``\ doesn't preserve source values","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3150 `__","``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ ","2020-02 (Prague)","|Complete|","13.0" +"`LWG3175 `__","The ``CommonReference``\ requirement of concept ``SwappableWith``\ is not satisfied in the example","2020-02 (Prague)","|Complete|","13.0" +"`LWG3194 `__","``ConvertibleTo``\ prose does not match code","2020-02 (Prague)","|Complete|","13.0" +"`LWG3200 `__","``midpoint``\ should not constrain ``T``\ is complete","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3201 `__","``lerp``\ should be marked as ``noexcept``\ ","2020-02 (Prague)","|Complete|","" +"`LWG3226 `__","``zoned_time``\ constructor from ``string_view``\ should accept ``zoned_time``\ ","2020-02 (Prague)","|Complete|","19.0" +"`LWG3233 `__","Broken requirements for ``shared_ptr``\ converting constructors","2020-02 (Prague)","|Complete|","19.0" +"`LWG3237 `__","LWG 3038 and 3190 have inconsistent PRs","2020-02 (Prague)","|Complete|","16.0" +"`LWG3238 `__","Insufficiently-defined behavior of ``std::function``\ deduction guides","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3242 `__","``std::format``\ : missing rules for ``arg-id``\ in ``width``\ and ``precision``\ ","2020-02 (Prague)","|Complete|","14.0" +"`LWG3243 `__","``std::format``\ and negative zeroes","2020-02 (Prague)","|Complete|","14.0" +"`LWG3247 `__","``ranges::iter_move``\ should perform ADL-only lookup of ``iter_move``\ ","2020-02 (Prague)","|Complete|","15.0" +"`LWG3248 `__","``std::format``\ ``#b``\ , ``#B``\ , ``#o``\ , ``#x``\ , and ``#X``\ presentation types misformat negative numbers","2020-02 (Prague)","|Complete|","14.0" +"`LWG3250 `__","``std::format``\ : ``#``\ (alternate form) for NaN and inf","2020-02 (Prague)","|Complete|","14.0" +"`LWG3251 `__","Are ``std::format``\ alignment specifiers applied to string arguments?","2020-02 (Prague)","|Complete|","14.0" +"`LWG3252 `__","Parse locale's aware modifiers for commands are not consistent with POSIX spec","2020-02 (Prague)","","" +"`LWG3254 `__","Strike ``stop_token``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17.0" +"`LWG3255 `__","``span``\ 's ``array``\ constructor is too strict","2020-02 (Prague)","|Complete|","" +"`LWG3260 `__","``year_month*``\ arithmetic rejects durations convertible to years","2020-02 (Prague)","","" +"`LWG3262 `__","Formatting of negative durations is not specified","2020-02 (Prague)","|Complete|","16.0" +"`LWG3264 `__","``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ ","2020-02 (Prague)","|Complete|","15.0" +"`LWG3269 `__","Parse manipulators do not specify the result of the extraction from stream","2020-02 (Prague)","","" +"`LWG3270 `__","Parsing and formatting ``%j``\ with ``duration``\ s","2020-02 (Prague)","|Partial|","" +"`LWG3280 `__","View converting constructors can cause constraint recursion and are unneeded","2020-02 (Prague)","|Complete|","15.0" +"`LWG3281 `__","Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion","2020-02 (Prague)","|Complete|","13.0" +"`LWG3282 `__","``subrange``\ converting constructor should disallow derived to base conversions","2020-02 (Prague)","|Complete|","15.0" +"`LWG3284 `__","``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negate","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3285 `__","The type of a customization point object shall satisfy ``semiregular``\ ","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3286 `__","``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range","2020-02 (Prague)","|Complete|","15.0" +"`LWG3291 `__","``iota_view::iterator``\ has the wrong ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0" +"`LWG3292 `__","``iota_view``\ is under-constrained","2020-02 (Prague)","|Complete|","15.0" +"`LWG3294 `__","``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ ","2020-02 (Prague)","|Complete|","19.0" +"`LWG3296 `__","Inconsistent default argument for ``basic_regex<>::assign``\ ","2020-02 (Prague)","|Complete|","" +"`LWG3299 `__","Pointers don't need customized iterator behavior","2020-02 (Prague)","|Complete|","15.0" +"`LWG3300 `__","Non-array ``ssize``\ overload is underconstrained","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3301 `__","``transform_view::iterator``\ has incorrect ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0" +"`LWG3302 `__","Range adaptor objects ``keys``\ and ``values``\ are unspecified","2020-02 (Prague)","|Complete|","16.0" +"`LWG3303 `__","Bad ""``constexpr``\ "" marker for ``destroy/destroy_n``\ ","2020-02 (Prague)","","" +"`LWG3304 `__","Allocate functions of ``std::polymorphic_allocator``\ should require ``[[nodiscard]]``\ ","2020-02 (Prague)","|Complete|","16.0" +"`LWG3307 `__","``std::allocator().allocate(n)``\ ","2020-02 (Prague)","|Complete|","20.0" +"`LWG3310 `__","Replace ``SIZE_MAX``\ with ``numeric_limits::max()``\ ","2020-02 (Prague)","|Complete|","16.0" +"`LWG3313 `__","``join_view::iterator::operator--``\ is incorrectly constrained","2020-02 (Prague)","|Complete|","14.0" +"`LWG3314 `__","Is stream insertion behavior locale dependent when ``Period::type``\ is ``micro``\ ?","2020-02 (Prague)","|Complete|","16.0" +"`LWG3315 `__","LWG3315: Correct Allocator Default Behavior","2020-02 (Prague)","|Complete|","" +"`LWG3316 `__","Correctly define epoch for ``utc_clock``\ / ``utc_timepoint``\ ","2020-02 (Prague)","","" +"`LWG3317 `__","Incorrect ``operator<<``\ for floating-point durations","2020-02 (Prague)","","" +"`LWG3318 `__","Clarify whether clocks can represent time before their epoch","2020-02 (Prague)","","" +"`LWG3319 `__","Properly reference specification of IANA time zone database","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3320 `__","``span::cbegin/cend``\ methods produce different results than ``std::[ranges::]cbegin/cend``\ ","2020-02 (Prague)","|Complete|","" +"`LWG3321 `__","``uninitialized_construct_using_allocator``\ should use ``construct_at``\ ","2020-02 (Prague)","|Complete|","16.0" +"`LWG3323 `__","``*has-tuple-element*``\ helper concept needs ``convertible_to``\ ","2020-02 (Prague)","|Complete|","16.0" +"`LWG3324 `__","Special-case ``std::strong/weak/partial_order``\ for pointers","2020-02 (Prague)","|Complete|","14.0" +"`LWG3325 `__","Constrain return type of transformation function for ``transform_view``\ ","2020-02 (Prague)","|Complete|","15.0" +"`LWG3326 `__","``enable_view``\ has false positives","2020-02 (Prague)","|Complete|","15.0" +"`LWG3327 `__","Format alignment specifiers vs. text direction","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3328 `__","Clarify that ``std::string``\ is not good for UTF-8","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3329 `__","``totally_ordered_with``\ both directly and indirectly requires ``common_reference_with``\ ","2020-02 (Prague)","|Complete|","13.0" +"`LWG3330 `__","Include ````\ from most library headers","2020-02 (Prague)","|Complete|","13.0" +"`LWG3331 `__","Define ``totally_ordered/_with``\ in terms of ``partially-ordered-with``\ ","2020-02 (Prague)","|Complete|","13.0" +"`LWG3332 `__","Issue in |sect|\ [time.format]","2020-02 (Prague)","|Complete|","16.0" +"`LWG3334 `__","``basic_osyncstream``\ move assignment and destruction calls ``basic_syncbuf::emit()``\ twice","2020-02 (Prague)","|Complete|","18.0" +"`LWG3335 `__","Resolve C++20 NB comments US 273 and GB 274","2020-02 (Prague)","|Complete|","15.0" +"`LWG3338 `__","Rename ``default_constructible``\ to ``default_initializable``\ ","2020-02 (Prague)","|Complete|","13.0" +"`LWG3340 `__","Formatting functions should throw on argument/format string mismatch in |sect|\ [format.functions]","2020-02 (Prague)","|Complete|","14.0" +"`LWG3346 `__","``pair``\ and ``tuple``\ copy and move constructor have backwards specification","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3347 `__","``std::pair``\ now requires ``T``\ and ``U``\ to be less-than-comparable","2020-02 (Prague)","|Complete|","17.0" +"`LWG3348 `__","``__cpp_lib_unwrap_ref``\ in wrong header","2020-02 (Prague)","|Complete|","12.0" +"`LWG3349 `__","Missing ``__cpp_lib_constexpr_complex``\ for P0415R1","2020-02 (Prague)","|Complete|","16.0" +"`LWG3350 `__","Simplify return type of ``lexicographical_compare_three_way``\ ","2020-02 (Prague)","|Complete|","17.0" +"`LWG3351 `__","``ranges::enable_safe_range``\ should not be constrained","2020-02 (Prague)","|Complete|","15.0" +"`LWG3352 `__","``strong_equality``\ isn't a thing","2020-02 (Prague)","|Complete|","19.0" +"`LWG3354 `__","``has_strong_structural_equality``\ has a meaningless definition","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3355 `__","The memory algorithms should support move-only input iterators introduced by P1207","2020-02 (Prague)","|Complete|","15.0" +"`LWG3356 `__","``__cpp_lib_nothrow_convertible``\ should be ``__cpp_lib_is_nothrow_convertible``\ ","2020-02 (Prague)","|Complete|","12.0" +"`LWG3358 `__","|sect|\ [span.cons] is mistaken that ``to_address``\ can throw","2020-02 (Prague)","|Complete|","17.0" +"`LWG3359 `__","````\ leap second support should allow for negative leap seconds","2020-02 (Prague)","|In Progress|","" +"`LWG3360 `__","``three_way_comparable_with``\ is inconsistent with similar concepts","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3362 `__","Strike ``stop_source``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17.0" +"`LWG3363 `__","``drop_while_view``\ should opt-out of ``sized_range``\ ","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3364 `__","Initialize data members of ranges and their iterators","2020-02 (Prague)","|Complete|","16.0" +"`LWG3367 `__","Integer-class conversions should not throw","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3369 `__","``span``\ 's deduction-guide for built-in arrays doesn't work","2020-02 (Prague)","|Complete|","14.0" +"`LWG3371 `__","``visit_format_arg``\ and ``make_format_args``\ are not hidden friends","2020-02 (Prague)","|Complete|","14.0" +"`LWG3372 `__","``vformat_to``\ should not try to deduce ``Out``\ twice","2020-02 (Prague)","|Complete|","14.0" +"`LWG3373 `__","``{to,from}_chars_result``\ and ``format_to_n_result``\ need the ""we really mean what we say"" wording","2020-02 (Prague)","|Complete|","14.0" +"`LWG3374 `__","P0653 + P1006 should have made the other ``std::to_address``\ overload ``constexpr``\ ","2020-02 (Prague)","|Complete|","12.0" +"`LWG3375 `__","``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ ","2020-02 (Prague)","|Complete|","15.0" +"`LWG3377 `__","``elements_view::iterator``\ befriends a specialization of itself","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3379 `__","""``safe``\ "" in several library names is misleading","2020-02 (Prague)","|Complete|","15.0" +"`LWG3380 `__","``common_type``\ and comparison categories","2020-02 (Prague)","|Complete|","15.0" +"`LWG3381 `__","``begin``\ and ``data``\ must agree for ``contiguous_range``\ ","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3382 `__","NTTP for ``pair``\ and ``array``\ ","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3383 `__","|sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ ","2020-02 (Prague)","|Complete|","19.0" +"`LWG3384 `__","``transform_view::*sentinel*``\ has an incorrect ``operator-``\ ","2020-02 (Prague)","|Complete|","15.0" +"`LWG3385 `__","``common_iterator``\ is not sufficiently constrained for non-copyable iterators","2020-02 (Prague)","|Complete|","15.0" +"`LWG3387 `__","|sect|\ [range.reverse.view] ``reverse_view``\ unintentionally requires ``range``\ ","2020-02 (Prague)","|Complete|","15.0" +"`LWG3388 `__","``view``\ iterator types have ill-formed ``<=>``\ operators","2020-02 (Prague)","|Complete|","16.0" +"`LWG3389 `__","A move-only iterator still does not have a ``counted_iterator``\ ","2020-02 (Prague)","|Complete|","15.0" +"`LWG3390 `__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","2020-02 (Prague)","|Complete|","14.0" +"`LWG3393 `__","Missing/incorrect feature test macro for coroutines","2020-02 (Prague)","|Complete|","14.0" +"`LWG3395 `__","LWG3395: Definition for three-way comparison needs to be updated (US 152)","2020-02 (Prague)","|Nothing To Do|","" +"`LWG3396 `__","Clarify point of reference for ``source_location::current()``\ (DE 169)","2020-02 (Prague)","|Nothing To Do|","16.0" +"`LWG3397 `__","``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ ","2020-02 (Prague)","|Complete|","16.0" +"`LWG3398 `__","``tuple_element_t``\ is also wrong for ``const subrange``\ ","2020-02 (Prague)","|Complete|","14.0" +"","","","","" +"`LWG3446 `__","``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ ","2020-11 (Virtual)","|Complete|","13.0" diff --git a/libcxx/docs/Status/Cxx20Papers.csv b/libcxx/docs/Status/Cxx20Papers.csv index 13275215d6dc7a..90d67191f9a0c2 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","Labels" -"`P0463R1 `__","Endian just Endian","2017-07 (Toronto)","|Complete|","7.0","" -"`P0674R1 `__","Extending make_shared to Support Arrays","2017-07 (Toronto)","|Complete|","15.0","" -"","","","","","" -"`P0020R6 `__","Floating Point Atomic","2017-11 (Albuquerque)","|Complete|","18.0","" -"`P0053R7 `__","C++ Synchronized Buffered Ostream","2017-11 (Albuquerque)","|Complete|","18.0","" -"`P0202R3 `__","Add constexpr modifiers to functions in and Headers","2017-11 (Albuquerque)","|Complete|","12.0","" -"`P0415R1 `__","Constexpr for ``std::complex``\ ","2017-11 (Albuquerque)","|Complete|","16.0","" -"`P0439R0 `__","Make ``std::memory_order``\ a scoped enumeration","2017-11 (Albuquerque)","|Complete|","","" -"`P0457R2 `__","String Prefix and Suffix Checking","2017-11 (Albuquerque)","|Complete|","6.0","" -"`P0550R2 `__","Transformation Trait ``remove_cvref``\ ","2017-11 (Albuquerque)","|Complete|","6.0","" -"`P0600R1 `__","nodiscard in the Library","2017-11 (Albuquerque)","|Complete|","16.0","" -"`P0616R0 `__","de-pessimize legacy algorithms with std::move","2017-11 (Albuquerque)","|Complete|","12.0","" -"`P0653R2 `__","Utility to convert a pointer to a raw pointer","2017-11 (Albuquerque)","|Complete|","6.0","" -"`P0718R2 `__","Atomic shared_ptr","2017-11 (Albuquerque)","","","" -"`P0767R1 `__","Deprecate POD","2017-11 (Albuquerque)","|Complete|","7.0","" -"`P0768R1 `__","Library Support for the Spaceship (Comparison) Operator","2017-11 (Albuquerque)","|Complete|","","" -"`P0777R1 `__","Treating Unnecessary ``decay``\ ","2017-11 (Albuquerque)","|Complete|","7.0","" -"","","","","","" -"`P0122R7 `__","","2018-03 (Jacksonville)","|Complete|","7.0","" -"`P0355R7 `__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial| [#note-P0355]_","","" -"`P0551R3 `__","Thou Shalt Not Specialize ``std``\ Function Templates!","2018-03 (Jacksonville)","|Complete|","11.0","" -"`P0753R2 `__","Manipulators for C++ Synchronized Buffered Ostream","2018-03 (Jacksonville)","","","" -"`P0754R2 `__","","2018-03 (Jacksonville)","|Complete|","7.0","" -"`P0809R0 `__","Comparing Unordered Containers","2018-03 (Jacksonville)","|Nothing To Do|","","" -"`P0858R0 `__","Constexpr iterator requirements","2018-03 (Jacksonville)","|Complete|","12.0","" -"`P0905R1 `__","Symmetry for spaceship","2018-03 (Jacksonville)","|Complete|","7.0","|spaceship|" -"`P0966R1 `__","``string::reserve``\ Should Not Shrink","2018-03 (Jacksonville)","|Complete| [#note-P0966]_","12.0","" -"","","","","","" -"`P0019R8 `__","Atomic Ref","2018-06 (Rapperswil)","|Complete|","19.0","" -"`P0458R2 `__","Checking for Existence of an Element in Associative Containers","2018-06 (Rapperswil)","|Complete|","13.0","" -"`P0475R1 `__","LWG 2511: guaranteed copy elision for piecewise construction","2018-06 (Rapperswil)","|Complete|","","" -"`P0476R2 `__","Bit-casting object representations","2018-06 (Rapperswil)","|Complete|","14.0","" -"`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| [#note-P0542]_","n/a","" -"`P0556R3 `__","Integral power-of-2 operations","2018-06 (Rapperswil)","|Complete|","9.0","" -"`P0619R4 `__","Reviewing Deprecated Facilities of C++17 for C++20","2018-06 (Rapperswil)","|Partial| [#note-P0619]_","","" -"`P0646R1 `__","Improving the Return Value of Erase-Like Algorithms","2018-06 (Rapperswil)","|Complete|","10.0","" -"`P0722R3 `__","Efficient sized delete for variable sized classes","2018-06 (Rapperswil)","|Complete|","9.0","" -"`P0758R1 `__","Implicit conversion traits and utility functions","2018-06 (Rapperswil)","|Complete|","","" -"`P0759R1 `__","fpos Requirements","2018-06 (Rapperswil)","|Complete|","11.0","" -"`P0769R2 `__","Add shift to ","2018-06 (Rapperswil)","|Complete|","12.0","" -"`P0788R3 `__","Standard Library Specification in a Concepts and Contracts World","2018-06 (Rapperswil)","|Nothing To Do| [#note-P0788]_","n/a","" -"`P0879R0 `__","Constexpr for swap and swap related functions Also resolves LWG issue 2800.","2018-06 (Rapperswil)","|Complete|","13.0","" -"`P0887R1 `__","The identity metafunction","2018-06 (Rapperswil)","|Complete|","8.0","" -"`P0892R2 `__","explicit(bool)","2018-06 (Rapperswil)","","","" -"`P0898R3 `__","Standard Library Concepts","2018-06 (Rapperswil)","|Complete|","13.0","" -"`P0935R0 `__","Eradicating unnecessarily explicit default constructors from the standard library","2018-06 (Rapperswil)","|Complete|","12.0","" -"`P0941R2 `__","Integrating feature-test macros into the C++ WD","2018-06 (Rapperswil)","|In Progress|","","" -"`P1023R0 `__","constexpr comparison operators for std::array","2018-06 (Rapperswil)","|Complete|","8.0","" -"`P1025R1 `__","Update The Reference To The Unicode Standard","2018-06 (Rapperswil)","","","" -"`P1120R0 `__","Consistency improvements for <=> and other comparison operators","2018-06 (Rapperswil)","","","|spaceship|" -"","","","","","" -"`P0318R1 `__","unwrap_ref_decay and unwrap_reference","2018-11 (San Diego)","|Complete|","8.0","" -"`P0356R5 `__","Simplified partial function application","2018-11 (San Diego)","|Complete|","13.0","" -"`P0357R3 `__","reference_wrapper for incomplete types","2018-11 (San Diego)","|Complete|","8.0","" -"`P0482R6 `__","char8_t: A type for UTF-8 characters and strings","2018-11 (San Diego)","|Complete|","16.0","" -"`P0487R1 `__","Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)","2018-11 (San Diego)","|Complete|","8.0","" -"`P0591R4 `__","Utility functions to implement uses-allocator construction","2018-11 (San Diego)","|Partial| [#note-P0591]_","","" -"`P0595R2 `__","std::is_constant_evaluated()","2018-11 (San Diego)","|Complete|","9.0","" -"`P0602R4 `__","variant and optional should propagate copy/move triviality","2018-11 (San Diego)","|Complete|","8.0","" -"`P0608R3 `__","A sane variant converting constructor","2018-11 (San Diego)","|Complete|","9.0","" -"`P0655R1 `__","visit: Explicit Return Type for visit","2018-11 (San Diego)","|Complete|","12.0","" -"`P0771R1 `__","std::function move constructor should be noexcept","2018-11 (San Diego)","|Complete|","6.0","" -"`P0896R4 `__","The One Ranges Proposal","2018-11 (San Diego)","|Complete|","15.0","|ranges|" -"`P0899R1 `__","P0899R1 - LWG 3016 is not a defect","2018-11 (San Diego)","|Nothing To Do|","","" -"`P0919R3 `__","Heterogeneous lookup for unordered containers","2018-11 (San Diego)","|Complete|","12.0","" -"`P0972R0 `__"," ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept","2018-11 (San Diego)","|Complete|","8.0","" -"`P1006R1 `__","Constexpr in std::pointer_traits","2018-11 (San Diego)","|Complete|","8.0","" -"`P1007R3 `__","``std::assume_aligned``\ ","2018-11 (San Diego)","|Complete|","15.0","" -"`P1020R1 `__","Smart pointer creation with default initialization","2018-11 (San Diego)","|Complete|","16.0","" -"`P1032R1 `__","Misc constexpr bits","2018-11 (San Diego)","|Complete|","13.0","" -"`P1085R2 `__","Should Span be Regular?","2018-11 (San Diego)","|Complete|","8.0","" -"`P1123R0 `__","Editorial Guidance for merging P0019r8 and P0528r3","2018-11 (San Diego)","","","" -"`P1148R0 `__","Cleaning up Clause 20","2018-11 (San Diego)","","","" -"`P1165R1 `__","Make stateful allocator propagation more consistent for ``operator+(basic_string)``\ ","2018-11 (San Diego)","|Complete|","15.0","" -"`P1209R0 `__","Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20","2018-11 (San Diego)","|Complete|","8.0","" -"`P1210R0 `__","P1210R0: Completing the Rebase of Library Fundamentals, Version 3, Working Draft","2018-11 (San Diego)","|Nothing To Do|","","" -"`P1236R1 `__","Alternative Wording for P0907R4 Signed Integers are Two's Complement","2018-11 (San Diego)","","","" -"`P1248R1 `__","Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)","2018-11 (San Diego)","|Complete|","13.0","" -"`P1285R0 `__","Improving Completeness Requirements for Type Traits","2018-11 (San Diego)","","","" -"`P1353R0 `__","Missing feature test macros","2018-11 (San Diego)","|In Progress|","","" -"","","","","","" -"`P0339R6 `__","polymorphic_allocator<> as a vocabulary type","2019-02 (Kona)","|Complete|","16.0","" -"`P0340R3 `__","Making std::underlying_type SFINAE-friendly","2019-02 (Kona)","|Complete|","9.0","" -"`P0738R2 `__","I Stream, You Stream, We All Stream for istream_iterator","2019-02 (Kona)","","","" -"`P0811R3 `__","Well-behaved interpolation for numbers and pointers","2019-02 (Kona)","|Complete|","9.0","" -"`P0920R2 `__","Precalculated hash values in lookup","2019-02 (Kona)","|Nothing To Do| [#note-P0920]_","","" -"`P1001R2 `__","Target Vectorization Policies from Parallelism V2 TS to C++20","2019-02 (Kona)","|Complete|","17.0","" -"`P1024R3 `__","Usability Enhancements for std::span","2019-02 (Kona)","|Complete|","9.0","" -"`P1164R1 `__","Make create_directory() Intuitive","2019-02 (Kona)","|Complete|","12.0","" -"`P1227R2 `__","Signed ssize() functions, unsigned size() functions","2019-02 (Kona)","|Complete|","9.0","" -"`P1252R2 `__","Ranges Design Cleanup","2019-02 (Kona)","|Complete|","15.0","|ranges|" -"`P1286R2 `__","Contra CWG DR1778","2019-02 (Kona)","","","" -"`P1357R1 `__","Traits for [Un]bounded Arrays","2019-02 (Kona)","|Complete|","9.0","" -"`P1458R1 `__","Mandating the Standard Library: Clause 16 - Language support library","2019-02 (Kona)","|Complete|","9.0","" -"`P1459R1 `__","Mandating the Standard Library: Clause 18 - Diagnostics library","2019-02 (Kona)","|Complete|","9.0","" -"`P1462R1 `__","Mandating the Standard Library: Clause 20 - Strings library","2019-02 (Kona)","|Complete|","9.0","" -"`P1463R1 `__","Mandating the Standard Library: Clause 21 - Containers library","2019-02 (Kona)","","","" -"`P1464R1 `__","Mandating the Standard Library: Clause 22 - Iterators library","2019-02 (Kona)","|Complete|","9.0","" -"","","","","","" -"`P0325R4 `__","to_array from LFTS with updates","2019-07 (Cologne)","|Complete|","10.0","" -"`P0408R7 `__","Efficient Access to basic_stringbuf's Buffer","2019-07 (Cologne)","|Complete|","17.0","" -"`P0466R5 `__","Layout-compatibility and Pointer-interconvertibility Traits","2019-07 (Cologne)","","","" -"`P0553R4 `__","Bit operations","2019-07 (Cologne)","|Complete|","9.0","" -"`P0631R8 `__","Math Constants","2019-07 (Cologne)","|Complete|","11.0","" -"`P0645R10 `__","Text Formatting","2019-07 (Cologne)","|Complete| [#note-P0645]_","14.0","" -"`P0660R10 `__","Stop Token and Joining Thread, Rev 10.","2019-07 (Cologne)","|Complete| [#note-P0660]_","18.0","" -"`P0784R7 `__","More constexpr containers","2019-07 (Cologne)","|Complete|","12.0","" -"`P0980R1 `__","Making std::string constexpr","2019-07 (Cologne)","|Complete|","15.0","" -"`P1004R2 `__","Making std::vector constexpr","2019-07 (Cologne)","|Complete|","15.0","" -"`P1035R7 `__","Input Range Adaptors","2019-07 (Cologne)","|Complete|","16.0","|ranges|" -"`P1065R2 `__","Constexpr INVOKE","2019-07 (Cologne)","|Complete|","12.0","" -"`P1135R6 `__","The C++20 Synchronization Library","2019-07 (Cologne)","|Complete|","11.0","" -"`P1207R4 `__","Movability of Single-pass Iterators","2019-07 (Cologne)","|Complete|","15.0","|ranges|" -"`P1208R6 `__","Adopt source_location for C++20","2019-07 (Cologne)","|Complete|","16.0","" -"`P1355R2 `__","Exposing a narrow contract for ceil2","2019-07 (Cologne)","|Complete|","9.0","" -"`P1361R2 `__","Integration of chrono with text formatting","2019-07 (Cologne)","|Partial|","","" -"`P1423R3 `__","char8_t backward compatibility remediation","2019-07 (Cologne)","|Complete|","15.0","" -"`P1424R1 `__","'constexpr' feature macro concerns","2019-07 (Cologne)","|Nothing To Do| [#note-P1424]_","","" -"`P1466R3 `__","Miscellaneous minor fixes for chrono","2019-07 (Cologne)","","","" -"`P1474R1 `__","Helpful pointers for ContiguousIterator","2019-07 (Cologne)","|Complete|","15.0","|ranges|" -"`P1502R1 `__","Standard library header units for C++20","2019-07 (Cologne)","","","" -"`P1522R1 `__","Iterator Difference Type and Integer Overflow","2019-07 (Cologne)","|Complete|","15.0","|ranges|" -"`P1523R1 `__","Views and Size Types","2019-07 (Cologne)","|Complete|","15.0","|ranges|" -"`P1612R1 `__","Relocate Endian's Specification","2019-07 (Cologne)","|Complete|","10.0","" -"`P1614R2 `__","The Mothership has Landed","2019-07 (Cologne)","|Complete| [#note-P1614]_","19.0","" -"`P1638R1 `__","basic_istream_view::iterator should not be copyable","2019-07 (Cologne)","|Complete|","16.0","|ranges|" -"`P1643R1 `__","Add wait/notify to atomic_ref","2019-07 (Cologne)","|Complete|","19.0","" -"`P1644R0 `__","Add wait/notify to atomic","2019-07 (Cologne)","","","" -"`P1650R0 `__","Output std::chrono::days with 'd' suffix","2019-07 (Cologne)","|Complete|","16.0","" -"`P1651R0 `__","bind_front should not unwrap reference_wrapper","2019-07 (Cologne)","|Complete|","13.0","" -"`P1652R1 `__","Printf corner cases in std::format","2019-07 (Cologne)","|Complete|","14.0","" -"`P1661R1 `__","Remove dedicated precalculated hash lookup interface","2019-07 (Cologne)","|Nothing To Do|","","" -"`P1754R1 `__","Rename concepts to standard_case for C++20, while we still can","2019-07 (Cologne)","|Complete|","15.0","|ranges|" -"","","","","","" -"`P0883R2 `__","Fixing Atomic Initialization","2019-11 (Belfast)","|Complete| [#note-P0883.1]_ [#note-P0883.2]_","14.0","" -"`P1391R4 `__","Range constructor for std::string_view","2019-11 (Belfast)","|Complete|","14.0","|ranges|" -"`P1394R4 `__","Range constructor for std::span","2019-11 (Belfast)","|Complete|","14.0","|ranges|" -"`P1456R1 `__","Move-only views","2019-11 (Belfast)","|Complete|","15.0","|ranges|" -"`P1622R3 `__","Mandating the Standard Library: Clause 32 - Thread support library","2019-11 (Belfast)","","","" -"`P1645R1 `__","constexpr for numeric algorithms","2019-11 (Belfast)","|Complete|","12.0","" -"`P1686R2 `__","Mandating the Standard Library: Clause 27 - Time library","2019-11 (Belfast)","","","" -"`P1690R1 `__","Refinement Proposal for P0919 Heterogeneous lookup for unordered containers","2019-11 (Belfast)","|Complete|","12.0","" -"`P1716R3 `__","ranges compare algorithm are over-constrained","2019-11 (Belfast)","|Complete|","15.0","|ranges|" -"`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.0","|ranges|" -"`P1865R1 `__","Add max() to latch and barrier","2019-11 (Belfast)","|Complete|","11.0","" -"`P1869R1 `__","Rename 'condition_variable_any' interruptible wait methods","2019-11 (Belfast)","","","" -"`P1870R1 `__","forwarding-range is too subtle","2019-11 (Belfast)","|Complete|","15.0","|ranges|" -"`P1871R1 `__","Concept traits should be named after concepts","2019-11 (Belfast)","|Complete|","14.0","|ranges|" -"`P1872R0 `__","span should have size_type, not index_type","2019-11 (Belfast)","|Complete|","10.0","" -"`P1878R1 `__","Constraining Readable Types","2019-11 (Belfast)","|Complete|","15.0","|ranges|" -"`P1892R1 `__","Extended locale-specific presentation specifiers for std::format","2019-11 (Belfast)","|Complete|","14.0","" -"`P1902R1 `__","Missing feature-test macros 2018-2019","2019-11 (Belfast)","","","" -"`P1959R0 `__","Remove std::weak_equality and std::strong_equality","2019-11 (Belfast)","|Nothing To Do|","","" -"`P1960R0 `__","NB Comment Changes Reviewed by SG1","2019-11 (Belfast)","","","" -"`P1961R0 `__","Harmonizing the definitions of total order for pointers","2019-11 (Belfast)","","","" -"`P1965R0 `__","Blanket Wording for Specifying ""Hidden Friends""","2019-11 (Belfast)","","","" -"","","","","","" -"`P0586R2 `__","Safe integral comparisons","2020-02 (Prague)","|Complete|","13.0","" -"`P0593R6 `__","Implicit creation of objects for low-level object manipulation","2020-02 (Prague)","","","" -"`P1115R3 `__","Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if","2020-02 (Prague)","|Complete|","11.0","" -"`P1243R4 `__","Rangify New Algorithms","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`P1460R1 `__","Mandating the Standard Library: Clause 20 - Utilities library","2020-02 (Prague)","","","" -"`P1739R4 `__","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`P1831R1 `__","Deprecating volatile: library","2020-02 (Prague)","","","" -"`P1868R2 `__","width: clarifying units of width and precision in std::format","2020-02 (Prague)","|Complete|","14.0","" -"`P1956R1 `__","On the names of low-level bit manipulation functions","2020-02 (Prague)","|Complete|","12.0","" -"`P1957R2 `__","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","2020-02 (Prague)","|Complete|","18.0","" -"`P1963R0 `__","Fixing US 313","2020-02 (Prague)","","","" -"`P1964R2 `__","Wording for boolean-testable","2020-02 (Prague)","|Complete|","13.0","" -"`P1970R2 `__","Consistency for size() functions: Add ranges::ssize","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`P1973R1 `__","Rename ""_default_init"" Functions, Rev1","2020-02 (Prague)","|Complete|","16.0","" -"`P1976R2 `__","Fixed-size span construction from dynamic range","2020-02 (Prague)","|Complete|","11.0","|ranges|" -"`P1981R0 `__","Rename leap to leap_second","2020-02 (Prague)","|Complete|","19.0","|chrono|" -"`P1982R0 `__","Rename link to time_zone_link","2020-02 (Prague)","|Complete|","19.0","|chrono|" -"`P1983R0 `__","Wording for GB301, US296, US292, US291, and US283","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`P1994R1 `__","elements_view needs its own sentinel","2020-02 (Prague)","|Complete|","16.0","|ranges|" -"`P2002R1 `__","Defaulted comparison specification cleanups","2020-02 (Prague)","|Complete|","7.0","" -"`P2045R1 `__","Missing Mandates for the standard library","2020-02 (Prague)","","","" -"`P2085R0 `__","Consistent defaulted comparisons","2020-02 (Prague)","","","" -"`P2091R0 `__","Issues with range access CPOs","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`P2101R0 `__","P2101R0: 'Models' subsumes 'satisfies' (Wording for US298 and US300)","2020-02 (Prague)","|Nothing To Do|","","" -"`P2102R0 `__","Make 'implicit expression variations' more explicit (Wording for US185)","2020-02 (Prague)","|Complete|","15.0","" -"`P2106R0 `__","Alternative wording for GB315 and GB316","2020-02 (Prague)","|Complete|","15.0","|ranges|" -"`P2116R0 `__","Remove tuple-like protocol support from fixed-extent span","2020-02 (Prague)","|Complete|","11.0","" -"","","","","","" -"`P2231R1 `__","Missing constexpr in std::optional and std::variant","2021-06 (Virtual)","|Complete|","19.0","" -"`P2325R3 `__","Views should not be required to be default constructible","2021-06 (Virtual)","|Complete|","16.0","|ranges|" -"`P2210R2 `__","Superior String Splitting","2021-06 (Virtual)","|Complete|","16.0","|ranges|" -"`P2216R3 `__","std::format improvements","2021-06 (Virtual)","|Complete|","15.0","" -"`P2281R1 `__","Clarifying range adaptor objects","2021-06 (Virtual)","|Complete|","14.0","|ranges|" -"`P2328R1 `__","join_view should join all views of ranges","2021-06 (Virtual)","|Complete|","15.0","|ranges|" -"`P2367R0 `__","Remove misuses of list-initialization from Clause 24","2021-06 (Virtual)","|Complete|","15.0","|ranges|" -"","","","","","" -"`P2372R3 `__","Fixing locale handling in chrono formatters","2021-10 (Virtual)","|In Progress|","","" -"`P2415R2 `__","What is a ``view``","2021-10 (Virtual)","|Complete|","14.0","|ranges|" -"`P2418R2 `__","Add support for ``std::generator``-like types to ``std::format``","2021-10 (Virtual)","|Complete|","15.0","" -"`P2432R1 `__","Fix ``istream_view``","2021-10 (Virtual)","|Complete|","16.0","|ranges|" +"Paper #","Paper Name","Meeting","Status","First released version" +"`P0463R1 `__","Endian just Endian","2017-07 (Toronto)","|Complete|","7.0" +"`P0674R1 `__","Extending make_shared to Support Arrays","2017-07 (Toronto)","|Complete|","15.0" +"","","","","" +"`P0020R6 `__","Floating Point Atomic","2017-11 (Albuquerque)","|Complete|","18.0" +"`P0053R7 `__","C++ Synchronized Buffered Ostream","2017-11 (Albuquerque)","|Complete|","18.0" +"`P0202R3 `__","Add constexpr modifiers to functions in and Headers","2017-11 (Albuquerque)","|Complete|","12.0" +"`P0415R1 `__","Constexpr for ``std::complex``\ ","2017-11 (Albuquerque)","|Complete|","16.0" +"`P0439R0 `__","Make ``std::memory_order``\ a scoped enumeration","2017-11 (Albuquerque)","|Complete|","" +"`P0457R2 `__","String Prefix and Suffix Checking","2017-11 (Albuquerque)","|Complete|","6.0" +"`P0550R2 `__","Transformation Trait ``remove_cvref``\ ","2017-11 (Albuquerque)","|Complete|","6.0" +"`P0600R1 `__","nodiscard in the Library","2017-11 (Albuquerque)","|Complete|","16.0" +"`P0616R0 `__","de-pessimize legacy algorithms with std::move","2017-11 (Albuquerque)","|Complete|","12.0" +"`P0653R2 `__","Utility to convert a pointer to a raw pointer","2017-11 (Albuquerque)","|Complete|","6.0" +"`P0718R2 `__","Atomic shared_ptr","2017-11 (Albuquerque)","","" +"`P0767R1 `__","Deprecate POD","2017-11 (Albuquerque)","|Complete|","7.0" +"`P0768R1 `__","Library Support for the Spaceship (Comparison) Operator","2017-11 (Albuquerque)","|Complete|","" +"`P0777R1 `__","Treating Unnecessary ``decay``\ ","2017-11 (Albuquerque)","|Complete|","7.0" +"","","","","" +"`P0122R7 `__","","2018-03 (Jacksonville)","|Complete|","7.0" +"`P0355R7 `__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial| [#note-P0355]_","" +"`P0551R3 `__","Thou Shalt Not Specialize ``std``\ Function Templates!","2018-03 (Jacksonville)","|Complete|","11.0" +"`P0753R2 `__","Manipulators for C++ Synchronized Buffered Ostream","2018-03 (Jacksonville)","","" +"`P0754R2 `__","","2018-03 (Jacksonville)","|Complete|","7.0" +"`P0809R0 `__","Comparing Unordered Containers","2018-03 (Jacksonville)","|Nothing To Do|","" +"`P0858R0 `__","Constexpr iterator requirements","2018-03 (Jacksonville)","|Complete|","12.0" +"`P0905R1 `__","Symmetry for spaceship","2018-03 (Jacksonville)","|Complete|","7.0" +"`P0966R1 `__","``string::reserve``\ Should Not Shrink","2018-03 (Jacksonville)","|Complete| [#note-P0966]_","12.0" +"","","","","" +"`P0019R8 `__","Atomic Ref","2018-06 (Rapperswil)","|Complete|","19.0" +"`P0458R2 `__","Checking for Existence of an Element in Associative Containers","2018-06 (Rapperswil)","|Complete|","13.0" +"`P0475R1 `__","LWG 2511: guaranteed copy elision for piecewise construction","2018-06 (Rapperswil)","|Complete|","" +"`P0476R2 `__","Bit-casting object representations","2018-06 (Rapperswil)","|Complete|","14.0" +"`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| [#note-P0542]_","n/a" +"`P0556R3 `__","Integral power-of-2 operations","2018-06 (Rapperswil)","|Complete|","9.0" +"`P0619R4 `__","Reviewing Deprecated Facilities of C++17 for C++20","2018-06 (Rapperswil)","|Partial| [#note-P0619]_","" +"`P0646R1 `__","Improving the Return Value of Erase-Like Algorithms","2018-06 (Rapperswil)","|Complete|","10.0" +"`P0722R3 `__","Efficient sized delete for variable sized classes","2018-06 (Rapperswil)","|Complete|","9.0" +"`P0758R1 `__","Implicit conversion traits and utility functions","2018-06 (Rapperswil)","|Complete|","" +"`P0759R1 `__","fpos Requirements","2018-06 (Rapperswil)","|Complete|","11.0" +"`P0769R2 `__","Add shift to ","2018-06 (Rapperswil)","|Complete|","12.0" +"`P0788R3 `__","Standard Library Specification in a Concepts and Contracts World","2018-06 (Rapperswil)","|Nothing To Do| [#note-P0788]_","n/a" +"`P0879R0 `__","Constexpr for swap and swap related functions Also resolves LWG issue 2800.","2018-06 (Rapperswil)","|Complete|","13.0" +"`P0887R1 `__","The identity metafunction","2018-06 (Rapperswil)","|Complete|","8.0" +"`P0892R2 `__","explicit(bool)","2018-06 (Rapperswil)","","" +"`P0898R3 `__","Standard Library Concepts","2018-06 (Rapperswil)","|Complete|","13.0" +"`P0935R0 `__","Eradicating unnecessarily explicit default constructors from the standard library","2018-06 (Rapperswil)","|Complete|","12.0" +"`P0941R2 `__","Integrating feature-test macros into the C++ WD","2018-06 (Rapperswil)","|In Progress|","" +"`P1023R0 `__","constexpr comparison operators for std::array","2018-06 (Rapperswil)","|Complete|","8.0" +"`P1025R1 `__","Update The Reference To The Unicode Standard","2018-06 (Rapperswil)","","" +"`P1120R0 `__","Consistency improvements for <=> and other comparison operators","2018-06 (Rapperswil)","","" +"","","","","" +"`P0318R1 `__","unwrap_ref_decay and unwrap_reference","2018-11 (San Diego)","|Complete|","8.0" +"`P0356R5 `__","Simplified partial function application","2018-11 (San Diego)","|Complete|","13.0" +"`P0357R3 `__","reference_wrapper for incomplete types","2018-11 (San Diego)","|Complete|","8.0" +"`P0482R6 `__","char8_t: A type for UTF-8 characters and strings","2018-11 (San Diego)","|Complete|","16.0" +"`P0487R1 `__","Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)","2018-11 (San Diego)","|Complete|","8.0" +"`P0591R4 `__","Utility functions to implement uses-allocator construction","2018-11 (San Diego)","|Partial| [#note-P0591]_","" +"`P0595R2 `__","std::is_constant_evaluated()","2018-11 (San Diego)","|Complete|","9.0" +"`P0602R4 `__","variant and optional should propagate copy/move triviality","2018-11 (San Diego)","|Complete|","8.0" +"`P0608R3 `__","A sane variant converting constructor","2018-11 (San Diego)","|Complete|","9.0" +"`P0655R1 `__","visit: Explicit Return Type for visit","2018-11 (San Diego)","|Complete|","12.0" +"`P0771R1 `__","std::function move constructor should be noexcept","2018-11 (San Diego)","|Complete|","6.0" +"`P0896R4 `__","The One Ranges Proposal","2018-11 (San Diego)","|Complete|","15.0" +"`P0899R1 `__","P0899R1 - LWG 3016 is not a defect","2018-11 (San Diego)","|Nothing To Do|","" +"`P0919R3 `__","Heterogeneous lookup for unordered containers","2018-11 (San Diego)","|Complete|","12.0" +"`P0972R0 `__"," ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept","2018-11 (San Diego)","|Complete|","8.0" +"`P1006R1 `__","Constexpr in std::pointer_traits","2018-11 (San Diego)","|Complete|","8.0" +"`P1007R3 `__","``std::assume_aligned``\ ","2018-11 (San Diego)","|Complete|","15.0" +"`P1020R1 `__","Smart pointer creation with default initialization","2018-11 (San Diego)","|Complete|","16.0" +"`P1032R1 `__","Misc constexpr bits","2018-11 (San Diego)","|Complete|","13.0" +"`P1085R2 `__","Should Span be Regular?","2018-11 (San Diego)","|Complete|","8.0" +"`P1123R0 `__","Editorial Guidance for merging P0019r8 and P0528r3","2018-11 (San Diego)","","" +"`P1148R0 `__","Cleaning up Clause 20","2018-11 (San Diego)","","" +"`P1165R1 `__","Make stateful allocator propagation more consistent for ``operator+(basic_string)``\ ","2018-11 (San Diego)","|Complete|","15.0" +"`P1209R0 `__","Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20","2018-11 (San Diego)","|Complete|","8.0" +"`P1210R0 `__","P1210R0: Completing the Rebase of Library Fundamentals, Version 3, Working Draft","2018-11 (San Diego)","|Nothing To Do|","" +"`P1236R1 `__","Alternative Wording for P0907R4 Signed Integers are Two's Complement","2018-11 (San Diego)","","" +"`P1248R1 `__","Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)","2018-11 (San Diego)","|Complete|","13.0" +"`P1285R0 `__","Improving Completeness Requirements for Type Traits","2018-11 (San Diego)","","" +"`P1353R0 `__","Missing feature test macros","2018-11 (San Diego)","|In Progress|","" +"","","","","" +"`P0339R6 `__","polymorphic_allocator<> as a vocabulary type","2019-02 (Kona)","|Complete|","16.0" +"`P0340R3 `__","Making std::underlying_type SFINAE-friendly","2019-02 (Kona)","|Complete|","9.0" +"`P0738R2 `__","I Stream, You Stream, We All Stream for istream_iterator","2019-02 (Kona)","","" +"`P0811R3 `__","Well-behaved interpolation for numbers and pointers","2019-02 (Kona)","|Complete|","9.0" +"`P0920R2 `__","Precalculated hash values in lookup","2019-02 (Kona)","|Nothing To Do| [#note-P0920]_","" +"`P1001R2 `__","Target Vectorization Policies from Parallelism V2 TS to C++20","2019-02 (Kona)","|Complete|","17.0" +"`P1024R3 `__","Usability Enhancements for std::span","2019-02 (Kona)","|Complete|","9.0" +"`P1164R1 `__","Make create_directory() Intuitive","2019-02 (Kona)","|Complete|","12.0" +"`P1227R2 `__","Signed ssize() functions, unsigned size() functions","2019-02 (Kona)","|Complete|","9.0" +"`P1252R2 `__","Ranges Design Cleanup","2019-02 (Kona)","|Complete|","15.0" +"`P1286R2 `__","Contra CWG DR1778","2019-02 (Kona)","","" +"`P1357R1 `__","Traits for [Un]bounded Arrays","2019-02 (Kona)","|Complete|","9.0" +"`P1458R1 `__","Mandating the Standard Library: Clause 16 - Language support library","2019-02 (Kona)","|Complete|","9.0" +"`P1459R1 `__","Mandating the Standard Library: Clause 18 - Diagnostics library","2019-02 (Kona)","|Complete|","9.0" +"`P1462R1 `__","Mandating the Standard Library: Clause 20 - Strings library","2019-02 (Kona)","|Complete|","9.0" +"`P1463R1 `__","Mandating the Standard Library: Clause 21 - Containers library","2019-02 (Kona)","","" +"`P1464R1 `__","Mandating the Standard Library: Clause 22 - Iterators library","2019-02 (Kona)","|Complete|","9.0" +"","","","","" +"`P0325R4 `__","to_array from LFTS with updates","2019-07 (Cologne)","|Complete|","10.0" +"`P0408R7 `__","Efficient Access to basic_stringbuf's Buffer","2019-07 (Cologne)","|Complete|","17.0" +"`P0466R5 `__","Layout-compatibility and Pointer-interconvertibility Traits","2019-07 (Cologne)","","" +"`P0553R4 `__","Bit operations","2019-07 (Cologne)","|Complete|","9.0" +"`P0631R8 `__","Math Constants","2019-07 (Cologne)","|Complete|","11.0" +"`P0645R10 `__","Text Formatting","2019-07 (Cologne)","|Complete| [#note-P0645]_","14.0" +"`P0660R10 `__","Stop Token and Joining Thread, Rev 10.","2019-07 (Cologne)","|Complete| [#note-P0660]_","18.0" +"`P0784R7 `__","More constexpr containers","2019-07 (Cologne)","|Complete|","12.0" +"`P0980R1 `__","Making std::string constexpr","2019-07 (Cologne)","|Complete|","15.0" +"`P1004R2 `__","Making std::vector constexpr","2019-07 (Cologne)","|Complete|","15.0" +"`P1035R7 `__","Input Range Adaptors","2019-07 (Cologne)","|Complete|","16.0" +"`P1065R2 `__","Constexpr INVOKE","2019-07 (Cologne)","|Complete|","12.0" +"`P1135R6 `__","The C++20 Synchronization Library","2019-07 (Cologne)","|Complete|","11.0" +"`P1207R4 `__","Movability of Single-pass Iterators","2019-07 (Cologne)","|Complete|","15.0" +"`P1208R6 `__","Adopt source_location for C++20","2019-07 (Cologne)","|Complete|","16.0" +"`P1355R2 `__","Exposing a narrow contract for ceil2","2019-07 (Cologne)","|Complete|","9.0" +"`P1361R2 `__","Integration of chrono with text formatting","2019-07 (Cologne)","|Partial|","" +"`P1423R3 `__","char8_t backward compatibility remediation","2019-07 (Cologne)","|Complete|","15.0" +"`P1424R1 `__","'constexpr' feature macro concerns","2019-07 (Cologne)","|Nothing To Do| [#note-P1424]_","" +"`P1466R3 `__","Miscellaneous minor fixes for chrono","2019-07 (Cologne)","","" +"`P1474R1 `__","Helpful pointers for ContiguousIterator","2019-07 (Cologne)","|Complete|","15.0" +"`P1502R1 `__","Standard library header units for C++20","2019-07 (Cologne)","","" +"`P1522R1 `__","Iterator Difference Type and Integer Overflow","2019-07 (Cologne)","|Complete|","15.0" +"`P1523R1 `__","Views and Size Types","2019-07 (Cologne)","|Complete|","15.0" +"`P1612R1 `__","Relocate Endian's Specification","2019-07 (Cologne)","|Complete|","10.0" +"`P1614R2 `__","The Mothership has Landed","2019-07 (Cologne)","|Complete| [#note-P1614]_","19.0" +"`P1638R1 `__","basic_istream_view::iterator should not be copyable","2019-07 (Cologne)","|Complete|","16.0" +"`P1643R1 `__","Add wait/notify to atomic_ref","2019-07 (Cologne)","|Complete|","19.0" +"`P1644R0 `__","Add wait/notify to atomic","2019-07 (Cologne)","","" +"`P1650R0 `__","Output std::chrono::days with 'd' suffix","2019-07 (Cologne)","|Complete|","16.0" +"`P1651R0 `__","bind_front should not unwrap reference_wrapper","2019-07 (Cologne)","|Complete|","13.0" +"`P1652R1 `__","Printf corner cases in std::format","2019-07 (Cologne)","|Complete|","14.0" +"`P1661R1 `__","Remove dedicated precalculated hash lookup interface","2019-07 (Cologne)","|Nothing To Do|","" +"`P1754R1 `__","Rename concepts to standard_case for C++20, while we still can","2019-07 (Cologne)","|Complete|","15.0" +"","","","","" +"`P0883R2 `__","Fixing Atomic Initialization","2019-11 (Belfast)","|Complete| [#note-P0883.1]_ [#note-P0883.2]_","14.0" +"`P1391R4 `__","Range constructor for std::string_view","2019-11 (Belfast)","|Complete|","14.0" +"`P1394R4 `__","Range constructor for std::span","2019-11 (Belfast)","|Complete|","14.0" +"`P1456R1 `__","Move-only views","2019-11 (Belfast)","|Complete|","15.0" +"`P1622R3 `__","Mandating the Standard Library: Clause 32 - Thread support library","2019-11 (Belfast)","","" +"`P1645R1 `__","constexpr for numeric algorithms","2019-11 (Belfast)","|Complete|","12.0" +"`P1686R2 `__","Mandating the Standard Library: Clause 27 - Time library","2019-11 (Belfast)","","" +"`P1690R1 `__","Refinement Proposal for P0919 Heterogeneous lookup for unordered containers","2019-11 (Belfast)","|Complete|","12.0" +"`P1716R3 `__","ranges compare algorithm are over-constrained","2019-11 (Belfast)","|Complete|","15.0" +"`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.0" +"`P1865R1 `__","Add max() to latch and barrier","2019-11 (Belfast)","|Complete|","11.0" +"`P1869R1 `__","Rename 'condition_variable_any' interruptible wait methods","2019-11 (Belfast)","","" +"`P1870R1 `__","forwarding-range is too subtle","2019-11 (Belfast)","|Complete|","15.0" +"`P1871R1 `__","Concept traits should be named after concepts","2019-11 (Belfast)","|Complete|","14.0" +"`P1872R0 `__","span should have size_type, not index_type","2019-11 (Belfast)","|Complete|","10.0" +"`P1878R1 `__","Constraining Readable Types","2019-11 (Belfast)","|Complete|","15.0" +"`P1892R1 `__","Extended locale-specific presentation specifiers for std::format","2019-11 (Belfast)","|Complete|","14.0" +"`P1902R1 `__","Missing feature-test macros 2018-2019","2019-11 (Belfast)","","" +"`P1959R0 `__","Remove std::weak_equality and std::strong_equality","2019-11 (Belfast)","|Nothing To Do|","" +"`P1960R0 `__","NB Comment Changes Reviewed by SG1","2019-11 (Belfast)","","" +"`P1961R0 `__","Harmonizing the definitions of total order for pointers","2019-11 (Belfast)","","" +"`P1965R0 `__","Blanket Wording for Specifying ""Hidden Friends""","2019-11 (Belfast)","","" +"","","","","" +"`P0586R2 `__","Safe integral comparisons","2020-02 (Prague)","|Complete|","13.0" +"`P0593R6 `__","Implicit creation of objects for low-level object manipulation","2020-02 (Prague)","","" +"`P1115R3 `__","Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if","2020-02 (Prague)","|Complete|","11.0" +"`P1243R4 `__","Rangify New Algorithms","2020-02 (Prague)","|Complete|","15.0" +"`P1460R1 `__","Mandating the Standard Library: Clause 20 - Utilities library","2020-02 (Prague)","","" +"`P1739R4 `__","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","2020-02 (Prague)","|Complete|","15.0" +"`P1831R1 `__","Deprecating volatile: library","2020-02 (Prague)","","" +"`P1868R2 `__","width: clarifying units of width and precision in std::format","2020-02 (Prague)","|Complete|","14.0" +"`P1956R1 `__","On the names of low-level bit manipulation functions","2020-02 (Prague)","|Complete|","12.0" +"`P1957R2 `__","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","2020-02 (Prague)","|Complete|","18.0" +"`P1963R0 `__","Fixing US 313","2020-02 (Prague)","","" +"`P1964R2 `__","Wording for boolean-testable","2020-02 (Prague)","|Complete|","13.0" +"`P1970R2 `__","Consistency for size() functions: Add ranges::ssize","2020-02 (Prague)","|Complete|","15.0" +"`P1973R1 `__","Rename ""_default_init"" Functions, Rev1","2020-02 (Prague)","|Complete|","16.0" +"`P1976R2 `__","Fixed-size span construction from dynamic range","2020-02 (Prague)","|Complete|","11.0" +"`P1981R0 `__","Rename leap to leap_second","2020-02 (Prague)","|Complete|","19.0" +"`P1982R0 `__","Rename link to time_zone_link","2020-02 (Prague)","|Complete|","19.0" +"`P1983R0 `__","Wording for GB301, US296, US292, US291, and US283","2020-02 (Prague)","|Complete|","15.0" +"`P1994R1 `__","elements_view needs its own sentinel","2020-02 (Prague)","|Complete|","16.0" +"`P2002R1 `__","Defaulted comparison specification cleanups","2020-02 (Prague)","|Complete|","7.0" +"`P2045R1 `__","Missing Mandates for the standard library","2020-02 (Prague)","","" +"`P2085R0 `__","Consistent defaulted comparisons","2020-02 (Prague)","","" +"`P2091R0 `__","Issues with range access CPOs","2020-02 (Prague)","|Complete|","15.0" +"`P2101R0 `__","P2101R0: 'Models' subsumes 'satisfies' (Wording for US298 and US300)","2020-02 (Prague)","|Nothing To Do|","" +"`P2102R0 `__","Make 'implicit expression variations' more explicit (Wording for US185)","2020-02 (Prague)","|Complete|","15.0" +"`P2106R0 `__","Alternative wording for GB315 and GB316","2020-02 (Prague)","|Complete|","15.0" +"`P2116R0 `__","Remove tuple-like protocol support from fixed-extent span","2020-02 (Prague)","|Complete|","11.0" +"","","","","" +"`P2231R1 `__","Missing constexpr in std::optional and std::variant","2021-06 (Virtual)","|Complete|","19.0" +"`P2325R3 `__","Views should not be required to be default constructible","2021-06 (Virtual)","|Complete|","16.0" +"`P2210R2 `__","Superior String Splitting","2021-06 (Virtual)","|Complete|","16.0" +"`P2216R3 `__","std::format improvements","2021-06 (Virtual)","|Complete|","15.0" +"`P2281R1 `__","Clarifying range adaptor objects","2021-06 (Virtual)","|Complete|","14.0" +"`P2328R1 `__","join_view should join all views of ranges","2021-06 (Virtual)","|Complete|","15.0" +"`P2367R0 `__","Remove misuses of list-initialization from Clause 24","2021-06 (Virtual)","|Complete|","15.0" +"","","","","" +"`P2372R3 `__","Fixing locale handling in chrono formatters","2021-10 (Virtual)","|In Progress|","" +"`P2415R2 `__","What is a ``view``","2021-10 (Virtual)","|Complete|","14.0" +"`P2418R2 `__","Add support for ``std::generator``-like types to ``std::format``","2021-10 (Virtual)","|Complete|","15.0" +"`P2432R1 `__","Fix ``istream_view``","2021-10 (Virtual)","|Complete|","16.0" diff --git a/libcxx/docs/Status/Cxx23Issues.csv b/libcxx/docs/Status/Cxx23Issues.csv index f104093e0ba426..a1ac143cbb0ac0 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","Labels" -"`LWG2839 `__","Self-move-assignment of library types, again","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3117 `__","Missing ``packaged_task`` deduction guides","2020-11 (Virtual)","|Complete|","16.0","" -"`LWG3143 `__","``monotonic_buffer_resource`` growth policy is unclear","2020-11 (Virtual)","","","" -"`LWG3195 `__","What is the stored pointer value of an empty ``weak_ptr``?","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3211 `__","``std::tuple<>`` should be trivially constructible","2020-11 (Virtual)","|Complete|","9.0","" -"`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| [#note-LWG3265]_","","" -"`LWG3435 `__","``three_way_comparable_with, reverse_iterator>``","2020-11 (Virtual)","|Complete|","13.0","" -"`LWG3432 `__","Missing requirement for ``comparison_category``","2020-11 (Virtual)","|Complete|","16.0","|spaceship|" -"`LWG3447 `__","Deduction guides for ``take_view`` and ``drop_view`` have different constraints","2020-11 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3450 `__","The const overloads of ``take_while_view::begin/end`` are underconstrained","2020-11 (Virtual)","|Complete|","16.0","|ranges|" -"`LWG3464 `__","``istream::gcount()`` can overflow","2020-11 (Virtual)","|Complete|","18.0","" -"`LWG2731 `__","Existence of ``lock_guard::mutex_type`` typedef unclear","2020-11 (Virtual)","|Complete|","5.0","" -"`LWG2743 `__","P0083R3 ``node_handle`` private members missing ""exposition only"" comment","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG2820 `__","Clarify ```` macros","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3120 `__","Unclear behavior of ``monotonic_buffer_resource::release()``","2020-11 (Virtual)","","","" -"`LWG3170 `__","``is_always_equal`` added to ``std::allocator`` makes the standard library treat derived types as always equal","2020-11 (Virtual)","|Complete|","18.0","" -"`LWG3036 `__","``polymorphic_allocator::destroy`` is extraneous","2020-11 (Virtual)","|Nothing To Do| [#note-LWG3036]_","","" -"`LWG3171 `__","LWG2989 breaks ``directory_entry`` stream insertion","2020-11 (Virtual)","|Complete|","14.0","" -"`LWG3306 `__","``ranges::advance`` violates its preconditions","2020-11 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3403 `__","Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)``","2020-11 (Virtual)","","","|ranges|" -"`LWG3404 `__","Finish removing subrange's conversions from pair-like","2020-11 (Virtual)","|Complete|","13.0","|ranges|" -"`LWG3405 `__","``common_view``'s converting constructor is bad, too","2020-11 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3406 `__","``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraints","2020-11 (Virtual)","|Complete|","16.0","|ranges|" -"`LWG3419 `__","[algorithms.requirements]/15 doesn't reserve as many rights as it intends to","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3420 `__","cpp17-iterator should check that the type looks like an iterator first","2020-11 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3421 `__","Imperfect ADL emulation for boolean-testable","2020-11 (Virtual)","|Nothing To Do|","","|ranges|" -"`LWG3425 `__","``condition_variable_any`` fails to constrain its Lock parameters","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3426 `__","``operator<=>(const unique_ptr&, nullptr_t)`` can't get no satisfaction","2020-11 (Virtual)","|Complete|","16.0","|spaceship|" -"`LWG3427 `__","``operator<=>(const shared_ptr&, nullptr_t)`` definition ill-formed","2020-11 (Virtual)","|Complete|","16.0","|spaceship|" -"`LWG3428 `__","``single_view``'s in place constructor should be explicit","2020-11 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3434 `__","``ios_base`` never reclaims memory for iarray and parray","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3437 `__","``__cpp_lib_polymorphic_allocator`` is in the wrong header","2020-11 (Virtual)","|Complete|","14.0","" -"`LWG3446 `__","``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type``","2020-11 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3448 `__","``transform_view``'s ``sentinel`` not comparable with ``iterator``","2020-11 (Virtual)","","","|ranges|" -"`LWG3449 `__","``take_view`` and ``take_while_view``'s ``sentinel`` not comparable with their ``const iterator``","2020-11 (Virtual)","|Complete|","16.0","|ranges|" -"`LWG3453 `__","Generic code cannot call ``ranges::advance(i, s)``","2020-11 (Virtual)","|Nothing To Do|","","|ranges|" -"`LWG3455 `__","Incorrect Postconditions on ``unique_ptr`` move assignment","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3460 `__","Unimplementable ``noop_coroutine_handle`` guarantees","2020-11 (Virtual)","|Complete|","14.0","" -"`LWG3461 `__","``convertible_to``'s description mishandles cv-qualified ``void``","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3465 `__","``compare_partial_order_fallback`` requires ``F < E``","2020-11 (Virtual)","|Complete|","14.0","|spaceship|" -"`LWG3466 `__","Specify the requirements for ``promise``/``future``/``shared_future`` consistently","2020-11 (Virtual)","|Nothing To Do|","","" -"`LWG3467 `__","``bool`` can't be an integer-like type","2020-11 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3472 `__","``counted_iterator`` is missing preconditions","2020-11 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3473 `__","Normative encouragement in non-normative note","2020-11 (Virtual)","|Complete|","15.0","|format|" -"`LWG3474 `__","Nesting ``join_views`` is broken because of CTAD","2020-11 (Virtual)","|Complete|","15.0","|ranges|" -"`LWG3476 `__","``thread`` and ``jthread`` constructors require that the parameters be move-constructible but never move construct the parameters","2020-11 (Virtual)","","","" -"`LWG3477 `__","Simplify constraints for ``semiregular-box``","2020-11 (Virtual)","|Complete|","13.0","|ranges|" -"`LWG3482 `__","``drop_view``'s const begin should additionally require ``sized_range``","2020-11 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3483 `__","``transform_view::iterator``'s difference is overconstrained","2020-11 (Virtual)","|Complete|","14.0","|ranges|" -"","","","","","" -"`LWG3391 `__","Problems with ``counted_iterator``/``move_iterator::base() const &``","2021-02 (Virtual)","","","|ranges|" -"`LWG3433 `__","``subrange::advance(n)`` has UB when ``n < 0``","2021-02 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3490 `__","``ranges::drop_while_view::begin()`` is missing a precondition","2021-02 (Virtual)","|Nothing To Do|","","|ranges|" -"`LWG3492 `__","Minimal improvements to ``elements_view::iterator``","2021-02 (Virtual)","|Complete|","16.0","|ranges|" -"`LWG3494 `__","Allow ranges to be conditionally borrowed","2021-02 (Virtual)","|Nothing To Do| [#note-LWG3494]_","","|ranges|" -"`LWG3495 `__","``constexpr launder`` makes pointers to inactive members of unions usable","2021-02 (Virtual)","|Nothing To Do|","","" -"`LWG3500 `__","``join_view::iterator::operator->()`` is bogus","2021-02 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3502 `__","``elements_view`` should not be allowed to return dangling reference","2021-02 (Virtual)","|Complete|","16.0","|ranges|" -"`LWG3505 `__","``split_view::outer-iterator::operator++`` misspecified","2021-02 (Virtual)","","","|ranges|" -"","","","","","" -"`LWG2774 `__","``std::function`` construction vs assignment","2021-06 (Virtual)","","","" -"`LWG2818 `__","``::std::`` everywhere rule needs tweaking","2021-06 (Virtual)","|Nothing To Do|","","" -"`LWG2997 `__","LWG 491 and the specification of ``{forward_,}list::unique``","2021-06 (Virtual)","","","" -"`LWG3410 `__","``lexicographical_compare_three_way`` is overspecified","2021-06 (Virtual)","|Complete|","17.0","|spaceship|" -"`LWG3430 `__","``std::fstream`` & co. should be constructible from string_view","2021-06 (Virtual)","|Complete|","19.0","" -"`LWG3462 `__","ยง[formatter.requirements]: Formatter requirements forbid use of ``fc.arg()``","2021-06 (Virtual)","|Nothing To Do|","","|format|" -"`LWG3481 `__","``viewable_range`` mishandles lvalue move-only views","2021-06 (Virtual)","|Nothing To Do| [#note-LWG3481]_","","|ranges|" -"`LWG3506 `__","Missing allocator-extended constructors for ``priority_queue``","2021-06 (Virtual)","|Complete|","14.0","" -"`LWG3517 `__","``join_view::iterator``'s ``iter_swap`` is underconstrained","2021-06 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3518 `__","Exception requirements on char trait operations unclear","2021-06 (Virtual)","|Nothing To Do|","","" -"`LWG3519 `__","Incomplete synopses for ```` classes","2021-06 (Virtual)","","","" -"`LWG3520 `__","``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator``","2021-06 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3521 `__","Overly strict requirements on ``qsort`` and ``bsearch``","2021-06 (Virtual)","|Nothing To Do|","","" -"`LWG3522 `__","Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructors","2021-06 (Virtual)","|Complete|","14.0","" -"`LWG3523 `__","``iota_view::sentinel`` is not always ``iota_view``'s sentinel","2021-06 (Virtual)","|Complete|","17.0","|ranges|" -"`LWG3526 `__","Return types of ``uses_allocator_construction_args`` unspecified","2021-06 (Virtual)","","","" -"`LWG3527 `__","``uses_allocator_construction_args`` handles rvalue pairs of rvalue references incorrectly","2021-06 (Virtual)","","","" -"`LWG3528 `__","``make_from_tuple`` can perform (the equivalent of) a C-style cast","2021-06 (Virtual)","|Complete|","19.0","" -"`LWG3529 `__","``priority_queue(first, last)`` should construct ``c`` with ``(first, last)``","2021-06 (Virtual)","|Complete|","14.0","" -"`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)","","","|ranges|" -"`LWG3533 `__","Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators``","2021-06 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3536 `__","Should ``chrono::from_stream()`` assign zero to duration for failure?","2021-06 (Virtual)","","","|chrono|" -"`LWG3539 `__","``format_to`` must not copy models of ``output_iterator``","2021-06 (Virtual)","|Complete|","14.0","|format|" -"`LWG3540 `__","ยง[format.arg] There should be no const in ``basic_format_arg(const T* p)``","2021-06 (Virtual)","|Complete|","14.0","|format|" -"`LWG3541 `__","``indirectly_readable_traits`` should be SFINAE-friendly for all types","2021-06 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3542 `__","``basic_format_arg`` mishandles ``basic_string_view`` with custom traits","2021-06 (Virtual)","|Complete|","14.0","|format|" -"`LWG3543 `__","Definition of when ``counted_iterators`` refer to the same sequence isn't quite right","2021-06 (Virtual)","|Nothing To Do|","","|ranges|" -"`LWG3544 `__","``format-arg-store::args`` is unintentionally not exposition-only","2021-06 (Virtual)","|Complete|","14.0","|format|" -"`LWG3546 `__","``common_iterator``'s postfix-proxy is not quite right","2021-06 (Virtual)","","","|ranges|" -"`LWG3548 `__","``shared_ptr`` construction from ``unique_ptr`` should move (not copy) the deleter","2021-06 (Virtual)","|Complete|","15.0","" -"`LWG3549 `__","``view_interface`` is overspecified to derive from ``view_base``","2021-06 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3551 `__","``borrowed_{iterator,subrange}_t`` are overspecified","2021-06 (Virtual)","|Nothing To Do|","","|ranges|" -"`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)","","","|ranges|" -"`LWG3555 `__","``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying range","2021-06 (Virtual)","","","|ranges|" -"","","","","","" -"`LWG2191 `__","Incorrect specification of ``match_results(match_results&&)``","2021-10 (Virtual)","|Nothing To Do|","","" -"`LWG2381 `__","Inconsistency in parsing floating point numbers","2021-10 (Virtual)","|Complete|","19.0","" -"`LWG2762 `__","``unique_ptr operator*()`` should be ``noexcept``","2021-10 (Virtual)","|Complete|","19.0","" -"`LWG3121 `__","``tuple`` constructor constraints for ``UTypes&&...`` overloads","2021-10 (Virtual)","","","" -"`LWG3123 `__","``duration`` constructor from representation shouldn't be effectively non-throwing","2021-10 (Virtual)","","","|chrono|" -"`LWG3146 `__","Excessive unwrapping in ``std::ref/cref``","2021-10 (Virtual)","|Complete|","14.0","" -"`LWG3152 `__","``common_type`` and ``common_reference`` have flaws in common","2021-10 (Virtual)","","","" -"`LWG3293 `__","``move_iterator operator+()`` has incorrect constraints","2021-10 (Virtual)","|Complete|","15.0","" -"`LWG3361 `__","``safe_range`` case","2021-10 (Virtual)","|Nothing To Do|","","|ranges|" -"`LWG3392 `__","``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinel","2021-10 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3407 `__","Some problems with the wording changes of P1739R4","2021-10 (Virtual)","|Complete|","15.0","|ranges|" -"`LWG3422 `__","Issues of ``seed_seq``'s constructors","2021-10 (Virtual)","|Complete|","14.0","" -"`LWG3470 `__","``convertible-to-non-slicing`` seems to reject valid case","2021-10 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3480 `__","``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 ranges","2021-10 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3498 `__","Inconsistent ``noexcept``-specifiers for ``basic_syncbuf``","2021-10 (Virtual)","","","" -"`LWG3535 `__","``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie","2021-10 (Virtual)","|Complete|","15.0","|ranges|" -"`LWG3554 `__","``chrono::parse`` needs ``const charT*`` and ``basic_string_view`` overloads","2021-10 (Virtual)","","","|chrono|" -"`LWG3557 `__","The ``static_cast`` expression in ``convertible_to`` has the wrong operand","2021-10 (Virtual)","|Complete|","14.0","" -"`LWG3559 `__","Semantic requirements of ``sized_range`` is circular","2021-10 (Virtual)","|Nothing To Do|","","|ranges|" -"`LWG3560 `__","``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges``","2021-10 (Virtual)","","","|ranges|" -"`LWG3561 `__","Issue with internal counter in ``discard_block_engine``","2021-10 (Virtual)","","","" -"`LWG3563 `__","``keys_view`` example is broken","2021-10 (Virtual)","","","|ranges|" -"`LWG3566 `__","Constraint recursion for ``operator<=>(optional, U)``","2021-10 (Virtual)","|Complete|","17.0","|spaceship|" -"`LWG3567 `__","Formatting move-only iterators take two","2021-10 (Virtual)","|Complete|","16.0","|format| |ranges|" -"`LWG3568 `__","``basic_istream_view`` needs to initialize ``value_``","2021-10 (Virtual)","|Complete|","16.0","|ranges|" -"`LWG3570 `__","``basic_osyncstream::emit`` should be an unformatted output function","2021-10 (Virtual)","|Complete|","18.0","" -"`LWG3571 `__","``flush_emit`` should set ``badbit`` if the ``emit`` call fails","2021-10 (Virtual)","","","" -"`LWG3572 `__","``copyable-box`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3573 `__","Missing Throws element for ``basic_string_view(It begin, End end)``","2021-10 (Virtual)","|Complete|","14.0","" -"`LWG3574 `__","``common_iterator`` should be completely ``constexpr``-able","2021-10 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3580 `__","``iota_view``'s ``iterator``'s binary ``operator+`` should be improved","2021-10 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3581 `__","The range constructor makes ``basic_string_view`` not trivially move constructible","2021-10 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3585 `__","``variant`` converting assignment with immovable alternative","2021-10 (Virtual)","","","" -"`LWG3589 `__","The ``const`` lvalue reference overload of ``get`` for ``subrange`` does not constrain ``I`` to be ``copyable`` when ``N == 0``","2021-10 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3590 `__","``split_view::base() const &`` is overconstrained","2021-10 (Virtual)","|Complete|","16.0","|ranges|" -"`LWG3591 `__","``lazy_split_view::inner-iterator::base() &&`` invalidates outer iterators","2021-10 (Virtual)","","","|ranges|" -"`LWG3592 `__","``lazy_split_view`` needs to check the simpleness of Pattern","2021-10 (Virtual)","","","|ranges|" -"`LWG3593 `__","Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept``","2021-10 (Virtual)","","","|ranges|" -"`LWG3595 `__","Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0","|ranges|" -"","","","","","" -"`LWG3088 `__","``forward_list::merge`` behaviour unclear when passed ``*this``","2022-02 (Virtual)","","","" -"`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)","","","|ranges|" -"`LWG3607 `__","``contiguous_iterator`` should not be allowed to have custom ``iter_move`` and ``iter_swap`` behavior","2022-02 (Virtual)","|Nothing To Do|","","|ranges|" -"`LWG3610 `__","``iota_view::size`` sometimes rejects integer-class types","2022-02 (Virtual)","","","|ranges|" -"`LWG3612 `__","Inconsistent pointer alignment in ``std::format`` ","2022-02 (Virtual)","|Complete|","14.0","|format|" -"`LWG3616 `__","LWG 3498 seems to miss the non-member ``swap`` for ``basic_syncbuf`` ","2022-02 (Virtual)","|Complete|","18.0","" -"`LWG3618 `__","Unnecessary ``iter_move`` for ``transform_view::iterator`` ","2022-02 (Virtual)","|Complete|","19.0","|ranges|" -"`LWG3619 `__","Specification of ``vformat_to`` contains ill-formed ``formatted_size`` calls","2022-02 (Virtual)","|Nothing To Do|","","|format|" -"`LWG3621 `__","Remove feature-test macro ``__cpp_lib_monadic_optional`` ","2022-02 (Virtual)","|Complete|","15.0","" -"`LWG3632 `__","``unique_ptr`` ""Mandates: This constructor is not selected by class template argument deduction""","2022-02 (Virtual)","|Nothing To Do|","","" -"`LWG3643 `__","Missing ``constexpr`` in ``std::counted_iterator`` ","2022-02 (Virtual)","|Complete|","19.0","|ranges|" -"`LWG3648 `__","``format`` should not print ``bool`` with ``'c'`` ","2022-02 (Virtual)","|Complete|","15.0","|format|" -"`LWG3649 `__","[fund.ts.v2] Reinstate and bump ``__cpp_lib_experimental_memory_resource`` feature test macro","2022-02 (Virtual)","","","" -"`LWG3650 `__","Are ``std::basic_string`` 's ``iterator`` and ``const_iterator`` constexpr iterators?","2022-02 (Virtual)","|Nothing To Do|","","" -"`LWG3654 `__","``basic_format_context::arg(size_t)`` should be ``noexcept`` ","2022-02 (Virtual)","|Complete|","15.0","|format|" -"`LWG3657 `__","``std::hash`` is not enabled","2022-02 (Virtual)","|Complete|","17.0","" -"`LWG3660 `__","``iterator_traits::pointer`` should conform to ยง[iterator.traits]","2022-02 (Virtual)","|Complete|","14.0","|ranges|" -"`LWG3661 `__","``constinit atomic> a(nullptr);`` should work","2022-02 (Virtual)","","","" -"","","","","","" -"`LWG3564 `__","``transform_view::iterator::value_type`` and ``iterator_category`` should use ``const F&``","2022-07 (Virtual)","|Complete|","20.0","|ranges|" -"`LWG3617 `__","``function``/``packaged_task`` deduction guides and deducing ``this``","2022-07 (Virtual)","","","" -"`LWG3656 `__","Inconsistent bit operations returning a count","2022-07 (Virtual)","|Complete|","15.0","" -"`LWG3659 `__","Consider ``ATOMIC_FLAG_INIT`` undeprecation","2022-07 (Virtual)","|Complete|","15.0","" -"`LWG3670 `__","``Cpp17InputIterators`` don't have integer-class difference types","2022-07 (Virtual)","","","|ranges|" -"`LWG3671 `__","``atomic_fetch_xor`` missing from ``stdatomic.h``","2022-07 (Virtual)","|Complete|","20.0","" -"`LWG3672 `__","``common_iterator::operator->()`` should return by value","2022-07 (Virtual)","|Complete|","19.0","|ranges|" -"`LWG3683 `__","``operator==`` for ``polymorphic_allocator`` cannot deduce template argument in common cases","2022-07 (Virtual)","|Complete|","20.0","" -"`LWG3687 `__","``expected`` move constructor should move","2022-07 (Virtual)","|Complete|","16.0","" -"`LWG3692 `__","``zip_view::iterator``'s ``operator<=>`` is overconstrained","2022-07 (Virtual)","","","|ranges| |spaceship|" -"`LWG3701 `__","Make ``formatter, charT>`` requirement explicit","2022-07 (Virtual)","|Complete|","15.0","|format|" -"`LWG3702 `__","Should ``zip_transform_view::iterator`` remove ``operator<``","2022-07 (Virtual)","","","|ranges| |spaceship|" -"`LWG3703 `__","Missing requirements for ``expected`` requires ``is_void``","2022-07 (Virtual)","|Complete|","16.0","" -"`LWG3704 `__","LWG 2059 added overloads that might be ill-formed for sets","2022-07 (Virtual)","","","" -"`LWG3705 `__","Hashability shouldn't depend on basic_string's allocator","2022-07 (Virtual)","|Complete|","16.0","" -"`LWG3707 `__","chunk_view::outer-iterator::value_type::size should return unsigned type","2022-07 (Virtual)","","","|ranges|" -"`LWG3708 `__","``take_while_view::sentinel``'s conversion constructor should move","2022-07 (Virtual)","|Complete|","16.0","|ranges|" -"`LWG3709 `__","LWG-3703 was underly ambitious","2022-07 (Virtual)","","","" -"`LWG3710 `__","The ``end`` of ``chunk_view`` for input ranges can be ``const``","2022-07 (Virtual)","","","|ranges|" -"`LWG3711 `__","Missing preconditions for slide_view constructor","2022-07 (Virtual)","","","|ranges|" -"`LWG3712 `__","``chunk_view`` and ``slide_view`` should not be ``default_initializable``","2022-07 (Virtual)","","","|ranges|" -"`LWG3713 `__","Sorted with respect to comparator (only)","2022-07 (Virtual)","|Nothing To Do|","","" -"`LWG3715 `__","``view_interface::empty`` is overconstrained","2022-07 (Virtual)","|Complete|","19.0","|ranges|" -"`LWG3719 `__","Directory iterators should be usable with default sentinel","2022-07 (Virtual)","|Complete|","17.0","|ranges|" -"`LWG3721 `__","Allow an ``arg-id`` with a value of zero for ``width`` in ``std-format-spec``","2022-07 (Virtual)","|Complete|","16.0","|format|" -"`LWG3724 `__","``decay-copy`` should be constrained","2022-07 (Virtual)","|Complete|","14.0","" -"","","","","","" -"`LWG3028 `__","Container requirements tables should distinguish ``const`` and non-``const`` variables","2022-11 (Kona)","","","" -"`LWG3118 `__","``fpos`` equality comparison unspecified","2022-11 (Kona)","","","" -"`LWG3177 `__","Limit permission to specialize variable templates to program-defined types","2022-11 (Kona)","|Nothing To Do|","","" -"`LWG3515 `__","ยง[stacktrace.basic.nonmem]: ``operator<<`` should be less templatized","2022-11 (Kona)","","","" -"`LWG3545 `__","``std::pointer_traits`` should be SFINAE-friendly","2022-11 (Kona)","|Complete|","18.0","" -"`LWG3569 `__","``join_view`` fails to support ranges of ranges with non-default_initializable iterators","2022-11 (Kona)","","","|ranges|" -"`LWG3594 `__","``inout_ptr`` โ€” inconsistent ``release()`` in destructor","2022-11 (Kona)","|Complete|","19.0","" -"`LWG3597 `__","Unsigned integer types don't model advanceable","2022-11 (Kona)","","","|ranges|" -"`LWG3600 `__","Making ``istream_iterator`` copy constructor trivial is an ABI break","2022-11 (Kona)","","","" -"`LWG3629 `__","``make_error_code`` and ``make_error_condition`` are customization points","2022-11 (Kona)","|Complete|","16.0","" -"`LWG3636 `__","``formatter::format`` should be ``const``-qualified","2022-11 (Kona)","|Complete|","16.0","|format|" -"`LWG3646 `__","``std::ranges::view_interface::size`` returns a signed type","2022-11 (Kona)","|Complete|","16.0","|ranges|" -"`LWG3677 `__","Is a cv-qualified ``pair`` specially handled in uses-allocator construction?","2022-11 (Kona)","|Complete|","18.0","" -"`LWG3717 `__","``common_view::end`` should improve ``random_access_range`` case","2022-11 (Kona)","","","|ranges|" -"`LWG3732 `__","``prepend_range`` and ``append_range`` can't be amortized constant time","2022-11 (Kona)","|Nothing To Do|","","|ranges|" -"`LWG3736 `__","``move_iterator`` missing ``disable_sized_sentinel_for`` specialization","2022-11 (Kona)","|Complete|","19.0","|ranges|" -"`LWG3737 `__","``take_view::sentinel`` should provide ``operator-``","2022-11 (Kona)","","","|ranges|" -"`LWG3738 `__","Missing preconditions for ``take_view`` constructor","2022-11 (Kona)","|Complete|","16.0","|ranges|" -"`LWG3743 `__","``ranges::to``'s reserve may be ill-formed","2022-11 (Kona)","","","|ranges|" -"`LWG3745 `__","``std::atomic_wait`` and its friends lack ``noexcept``","2022-11 (Kona)","|Complete|","16.0","" -"`LWG3746 `__","``optional``'s spaceship with ``U`` with a type derived from optional causes infinite constraint meta-recursion","2022-11 (Kona)","|Complete|","17.0","|spaceship|" -"`LWG3747 `__","``ranges::uninitialized_copy_n``, ``ranges::uninitialized_move_n``, and ``ranges::destroy_n`` should use ``std::move``","2022-11 (Kona)","","","|ranges|" -"`LWG3750 `__","Too many papers bump ``__cpp_lib_format``","2022-11 (Kona)","|Partial| [#note-LWG3750]_","","|format|" -"`LWG3751 `__","Missing feature macro for ``flat_set``","2022-11 (Kona)","","","|flat_containers|" -"`LWG3753 `__","Clarify entity vs. freestanding entity","2022-11 (Kona)","","","" -"`LWG3754 `__","Class template expected synopsis contains declarations that do not match the detailed description","2022-11 (Kona)","|Nothing To Do|","","" -"`LWG3755 `__","``tuple-for-each`` can call ``user-defined`` ``operator,``","2022-11 (Kona)","|Complete|","17.0","" -"`LWG3757 `__","What's the effect of ``std::forward_like(x)``?","2022-11 (Kona)","","","" -"`LWG3759 `__","``ranges::rotate_copy`` should use ``std::move``","2022-11 (Kona)","|Complete|","15.0","|ranges|" -"`LWG3760 `__","``cartesian_product_view::iterator``'s ``parent_`` is never valid","2022-11 (Kona)","","","|ranges|" -"`LWG3761 `__","``cartesian_product_view::iterator::operator-`` should pass by reference","2022-11 (Kona)","","","|ranges|" -"`LWG3762 `__","``generator::iterator::operator==`` should pass by reference","2022-11 (Kona)","","","" -"`LWG3764 `__","``reference_wrapper::operator()`` should propagate noexcept","2022-11 (Kona)","|Complete|","17.0","" -"`LWG3765 `__","``const_sentinel`` should be constrained","2022-11 (Kona)","","","|ranges|" -"`LWG3766 `__","``view_interface::cbegin`` is underconstrained","2022-11 (Kona)","","","|ranges|" -"`LWG3770 `__","``const_sentinel_t`` is missing","2022-11 (Kona)","","","|ranges|" -"`LWG3773 `__","``views::zip_transform`` still requires ``F`` to be ``copy_constructible`` when empty pack","2022-11 (Kona)","","","|ranges|" -"`LWG3774 `__","```` should include ````","2022-11 (Kona)","","","|flat_containers|" -"`LWG3775 `__","Broken dependencies in the ``Cpp17Allocator`` requirements","2022-11 (Kona)","","","" -"`LWG3778 `__","``vector`` missing exception specifications","2022-11 (Kona)","|Complete|","3.7","" -"`LWG3781 `__","The exposition-only alias templates ``cont-key-type`` and ``cont-mapped-type`` should be removed","2022-11 (Kona)","|Nothing To Do|","","" -"`LWG3782 `__","Should ```` declare ``::lerp``?","2022-11 (Kona)","|Complete|","17.0","" -"`LWG3784 `__","std.compat should not provide ``::byte`` and its friends","2022-11 (Kona)","|Complete|","19.0","" -"`LWG3785 `__","``ranges::to`` is over-constrained on the destination type being a range","2022-11 (Kona)","","","|ranges|" -"`LWG3788 `__","``jthread::operator=(jthread&&)`` postconditions are unimplementable under self-assignment","2022-11 (Kona)","","","" -"`LWG3792 `__","``__cpp_lib_constexpr_algorithms`` should also be defined in ````","2022-11 (Kona)","|Complete|","16.0","" -"`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)","","","|ranges|" -"`LWG3798 `__","Rvalue reference and ``iterator_category``","2022-11 (Kona)","|Partial| [#note-LWG3798]_","","|ranges|" -"`LWG3801 `__","``cartesian_product_view::iterator::distance-from`` ignores the size of last underlying range","2022-11 (Kona)","","","|ranges|" -"`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)","","","|flat_containers|" -"`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)","","","|ranges|" -"`LWG3720 `__","Restrict the valid types of ``arg-id`` for width and precision in ``std-format-spec``","2023-02 (Issaquah)","|Complete|","17.0","|format|" -"`LWG3756 `__","Is the ``std::atomic_flag`` class signal-safe?","2023-02 (Issaquah)","","","" -"`LWG3769 `__","``basic_const_iterator::operator==`` causes infinite constraint recursion","2023-02 (Issaquah)","","","|spaceship|" -"`LWG3807 `__","The feature test macro for ``ranges::find_last`` should be renamed","2023-02 (Issaquah)","","","|ranges|" -"`LWG3811 `__","``views::as_const`` on ``ref_view`` should return ``ref_view``","2023-02 (Issaquah)","","","|ranges|" -"`LWG3820 `__","``cartesian_product_view::iterator::prev`` is not quite right","2023-02 (Issaquah)","","","|ranges|" -"`LWG3825 `__","Missing compile-time argument ``id`` check in ``basic_format_parse_context::next_arg_id``","2023-02 (Issaquah)","|Complete|","17.0","|format|" -"`LWG3204 `__","``sub_match::swap`` only swaps the base class","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3733 `__","``ranges::to`` misuses ``cpp17-input-iterator``","2023-02 (Issaquah)","|Complete|","17.0","|ranges|" -"`LWG3742 `__","``deque::prepend_range`` needs to permute","2023-02 (Issaquah)","","","|ranges|" -"`LWG3790 `__","`P1467 `__ accidentally changed ``nexttoward``'s signature","2023-02 (Issaquah)","","","" -"`LWG3819 `__","``reference_meows_from_temporary`` should not use ``is_meowible``","2023-02 (Issaquah)","","","" -"`LWG3821 `__","``uses_allocator_construction_args`` should have overload for ``pair-like``","2023-02 (Issaquah)","|Complete|","18.0","" -"`LWG3834 `__","Missing ``constexpr`` for ``std::intmax_t`` math functions in ````","2023-02 (Issaquah)","","","" -"`LWG3839 `__","``range_formatter``'s ``set_separator``, ``set_brackets``, and ``underlying`` functions should be ``noexcept``","2023-02 (Issaquah)","|Complete|","17.0","|format|" -"`LWG3841 `__","```` should not be ""all freestanding""","2023-02 (Issaquah)","","","" -"`LWG3842 `__","Unclear wording for ``precision`` in ``chrono-format-spec``","2023-02 (Issaquah)","|Complete|","16.0","|format|" -"`LWG3848 `__","``adjacent_view``, ``adjacent_transform_view`` and ``slide_view`` missing ``base`` accessor","2023-02 (Issaquah)","","","|ranges|" -"`LWG3849 `__","``cartesian_product_view::iterator``'s default constructor is overconstrained","2023-02 (Issaquah)","","","|ranges|" -"`LWG3850 `__","``views::as_const`` on ``empty_view`` should return ``empty_view``","2023-02 (Issaquah)","","","|ranges|" -"`LWG3851 `__","``chunk_view::inner-iterator`` missing custom ``iter_move`` and ``iter_swap``","2023-02 (Issaquah)","","","|ranges|" -"`LWG3853 `__","``basic_const_iterator::operator->`` is ill-formed","2023-02 (Issaquah)","","","" -"`LWG3857 `__","``basic_string_view`` should allow explicit conversion when only traits vary","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3860 `__","``range_common_reference_t`` is missing","2023-02 (Issaquah)","|Complete|","17.0","|ranges|" -"`LWG3866 `__","Bad Mandates for ``expected::transform_error`` overloads","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3867 `__","Should ``std::basic_osyncstream``'s move assignment operator be ``noexcept``?","2023-02 (Issaquah)","|Complete|","18.0","" -"`LWG3441 `__","Misleading note about calls to customization points","2023-02 (Issaquah)","","","" -"`LWG3622 `__","Misspecified transitivity of equivalence in ยง[unord.req.general]","2023-02 (Issaquah)","","","" -"`LWG3631 `__","``basic_format_arg(T&&)`` should use ``remove_cvref_t`` throughout","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3645 `__","``resize_and_overwrite`` is overspecified to call its callback with lvalues","2023-02 (Issaquah)","|Complete|","14.0","" -"`LWG3655 `__","The ``INVOKE`` operation and union types","2023-02 (Issaquah)","|Complete|","18.0","" -"`LWG3723 `__","``priority_queue::push_range`` needs to ``append_range``","2023-02 (Issaquah)","","","|ranges|" -"`LWG3734 `__","Inconsistency in ``inout_ptr`` and ``out_ptr`` for empty case","2023-02 (Issaquah)","|Complete|","19.0","" -"`LWG3772 `__","``repeat_view``'s ``piecewise`` constructor is missing Postconditions","2023-02 (Issaquah)","|Complete|","17.0","|ranges|" -"`LWG3786 `__","Flat maps' deduction guide needs to default ``Allocator`` to be useful","2023-02 (Issaquah)","","","" -"`LWG3803 `__","``flat_foo`` constructors taking ``KeyContainer`` lack ``KeyCompare`` parameter","2023-02 (Issaquah)","","","" -"`LWG3810 `__","CTAD for ``std::basic_format_args``","2023-02 (Issaquah)","|Complete|","17.0","|format|" -"`LWG3827 `__","Deprecate ```` and ```` macros","2023-02 (Issaquah)","","","" -"`LWG3828 `__","Sync ``intmax_t`` and ``uintmax_t`` with C2x","2023-02 (Issaquah)","|Nothing To Do|","","" -"`LWG3833 `__","Remove specialization ``template struct formatter``","2023-02 (Issaquah)","|Complete|","17.0","|format|" -"`LWG3836 `__","``std::expected`` conversion constructor ``expected(const expected&)`` should take precedence over ``expected(U&&)`` with operator ``bool``","2023-02 (Issaquah)","|Complete|","18.0","" -"`LWG3843 `__","``std::expected::value() &`` assumes ``E`` is copy constructible","2023-02 (Issaquah)","|Complete|","17.0","" -"`LWG3847 `__","``ranges::to`` can still return views","2023-02 (Issaquah)","|Complete|","17.0","|ranges|" -"`LWG3862 `__","``basic_const_iterator``'s ``common_type`` specialization is underconstrained","2023-02 (Issaquah)","","","" -"`LWG3865 `__","Sorting a range of ``pairs``","2023-02 (Issaquah)","|Complete|","17.0","|ranges|" -"`LWG3869 `__","Deprecate ``std::errc`` constants related to UNIX STREAMS","2023-02 (Issaquah)","|Complete|","19.0","" -"`LWG3870 `__","Remove ``voidify``","2023-02 (Issaquah)","","","" -"`LWG3871 `__","Adjust note about ``terminate``","2023-02 (Issaquah)","","","" -"`LWG3872 `__","``basic_const_iterator`` should have custom ``iter_move``","2023-02 (Issaquah)","","","" -"`LWG3875 `__","``std::ranges::repeat_view::iterator`` may be ill-formed","2023-02 (Issaquah)","|Complete|","17.0","|ranges|" -"`LWG3876 `__","Default constructor of ``std::layout_XX::mapping`` misses precondition","2023-02 (Issaquah)","","","" -"`LWG3877 `__","Incorrect constraints on ``const``-qualified monadic overloads for ``std::expected``","2023-02 (Issaquah)","|Complete|","17.0","" -"`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)","","","|ranges|" -"`LWG3881 `__","Incorrect formatting of container adapters backed by ``std::string``","2023-02 (Issaquah)","|Complete|","17.0","|format|" +"Issue #","Issue Name","Meeting","Status","First released version" +"`LWG2839 `__","Self-move-assignment of library types, again","2020-11 (Virtual)","|Nothing To Do|","" +"`LWG3117 `__","Missing ``packaged_task`` deduction guides","2020-11 (Virtual)","|Complete|","16.0" +"`LWG3143 `__","``monotonic_buffer_resource`` growth policy is unclear","2020-11 (Virtual)","","" +"`LWG3195 `__","What is the stored pointer value of an empty ``weak_ptr``?","2020-11 (Virtual)","|Nothing To Do|","" +"`LWG3211 `__","``std::tuple<>`` should be trivially constructible","2020-11 (Virtual)","|Complete|","9.0" +"`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| [#note-LWG3265]_","" +"`LWG3435 `__","``three_way_comparable_with, reverse_iterator>``","2020-11 (Virtual)","|Complete|","13.0" +"`LWG3432 `__","Missing requirement for ``comparison_category``","2020-11 (Virtual)","|Complete|","16.0" +"`LWG3447 `__","Deduction guides for ``take_view`` and ``drop_view`` have different constraints","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3450 `__","The const overloads of ``take_while_view::begin/end`` are underconstrained","2020-11 (Virtual)","|Complete|","16.0" +"`LWG3464 `__","``istream::gcount()`` can overflow","2020-11 (Virtual)","|Complete|","18.0" +"`LWG2731 `__","Existence of ``lock_guard::mutex_type`` typedef unclear","2020-11 (Virtual)","|Complete|","5.0" +"`LWG2743 `__","P0083R3 ``node_handle`` private members missing ""exposition only"" comment","2020-11 (Virtual)","|Nothing To Do|","" +"`LWG2820 `__","Clarify ```` macros","2020-11 (Virtual)","|Nothing To Do|","" +"`LWG3120 `__","Unclear behavior of ``monotonic_buffer_resource::release()``","2020-11 (Virtual)","","" +"`LWG3170 `__","``is_always_equal`` added to ``std::allocator`` makes the standard library treat derived types as always equal","2020-11 (Virtual)","|Complete|","18.0" +"`LWG3036 `__","``polymorphic_allocator::destroy`` is extraneous","2020-11 (Virtual)","|Nothing To Do| [#note-LWG3036]_","" +"`LWG3171 `__","LWG2989 breaks ``directory_entry`` stream insertion","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3306 `__","``ranges::advance`` violates its preconditions","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3403 `__","Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)``","2020-11 (Virtual)","","" +"`LWG3404 `__","Finish removing subrange's conversions from pair-like","2020-11 (Virtual)","|Complete|","13.0" +"`LWG3405 `__","``common_view``'s converting constructor is bad, too","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3406 `__","``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraints","2020-11 (Virtual)","|Complete|","16.0" +"`LWG3419 `__","[algorithms.requirements]/15 doesn't reserve as many rights as it intends to","2020-11 (Virtual)","|Nothing To Do|","" +"`LWG3420 `__","cpp17-iterator should check that the type looks like an iterator first","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3421 `__","Imperfect ADL emulation for boolean-testable","2020-11 (Virtual)","|Nothing To Do|","" +"`LWG3425 `__","``condition_variable_any`` fails to constrain its Lock parameters","2020-11 (Virtual)","|Nothing To Do|","" +"`LWG3426 `__","``operator<=>(const unique_ptr&, nullptr_t)`` can't get no satisfaction","2020-11 (Virtual)","|Complete|","16.0" +"`LWG3427 `__","``operator<=>(const shared_ptr&, nullptr_t)`` definition ill-formed","2020-11 (Virtual)","|Complete|","16.0" +"`LWG3428 `__","``single_view``'s in place constructor should be explicit","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3434 `__","``ios_base`` never reclaims memory for iarray and parray","2020-11 (Virtual)","|Nothing To Do|","" +"`LWG3437 `__","``__cpp_lib_polymorphic_allocator`` is in the wrong header","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3446 `__","``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type``","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3448 `__","``transform_view``'s ``sentinel`` not comparable with ``iterator``","2020-11 (Virtual)","","" +"`LWG3449 `__","``take_view`` and ``take_while_view``'s ``sentinel`` not comparable with their ``const iterator``","2020-11 (Virtual)","|Complete|","16.0" +"`LWG3453 `__","Generic code cannot call ``ranges::advance(i, s)``","2020-11 (Virtual)","|Nothing To Do|","" +"`LWG3455 `__","Incorrect Postconditions on ``unique_ptr`` move assignment","2020-11 (Virtual)","|Nothing To Do|","" +"`LWG3460 `__","Unimplementable ``noop_coroutine_handle`` guarantees","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3461 `__","``convertible_to``'s description mishandles cv-qualified ``void``","2020-11 (Virtual)","|Nothing To Do|","" +"`LWG3465 `__","``compare_partial_order_fallback`` requires ``F < E``","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3466 `__","Specify the requirements for ``promise``/``future``/``shared_future`` consistently","2020-11 (Virtual)","|Nothing To Do|","" +"`LWG3467 `__","``bool`` can't be an integer-like type","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3472 `__","``counted_iterator`` is missing preconditions","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3473 `__","Normative encouragement in non-normative note","2020-11 (Virtual)","|Complete|","15.0" +"`LWG3474 `__","Nesting ``join_views`` is broken because of CTAD","2020-11 (Virtual)","|Complete|","15.0" +"`LWG3476 `__","``thread`` and ``jthread`` constructors require that the parameters be move-constructible but never move construct the parameters","2020-11 (Virtual)","","" +"`LWG3477 `__","Simplify constraints for ``semiregular-box``","2020-11 (Virtual)","|Complete|","13.0" +"`LWG3482 `__","``drop_view``'s const begin should additionally require ``sized_range``","2020-11 (Virtual)","|Complete|","14.0" +"`LWG3483 `__","``transform_view::iterator``'s difference is overconstrained","2020-11 (Virtual)","|Complete|","14.0" +"","","","","" +"`LWG3391 `__","Problems with ``counted_iterator``/``move_iterator::base() const &``","2021-02 (Virtual)","","" +"`LWG3433 `__","``subrange::advance(n)`` has UB when ``n < 0``","2021-02 (Virtual)","|Complete|","14.0" +"`LWG3490 `__","``ranges::drop_while_view::begin()`` is missing a precondition","2021-02 (Virtual)","|Nothing To Do|","" +"`LWG3492 `__","Minimal improvements to ``elements_view::iterator``","2021-02 (Virtual)","|Complete|","16.0" +"`LWG3494 `__","Allow ranges to be conditionally borrowed","2021-02 (Virtual)","|Nothing To Do| [#note-LWG3494]_","" +"`LWG3495 `__","``constexpr launder`` makes pointers to inactive members of unions usable","2021-02 (Virtual)","|Nothing To Do|","" +"`LWG3500 `__","``join_view::iterator::operator->()`` is bogus","2021-02 (Virtual)","|Complete|","14.0" +"`LWG3502 `__","``elements_view`` should not be allowed to return dangling reference","2021-02 (Virtual)","|Complete|","16.0" +"`LWG3505 `__","``split_view::outer-iterator::operator++`` misspecified","2021-02 (Virtual)","","" +"","","","","" +"`LWG2774 `__","``std::function`` construction vs assignment","2021-06 (Virtual)","","" +"`LWG2818 `__","``::std::`` everywhere rule needs tweaking","2021-06 (Virtual)","|Nothing To Do|","" +"`LWG2997 `__","LWG 491 and the specification of ``{forward_,}list::unique``","2021-06 (Virtual)","","" +"`LWG3410 `__","``lexicographical_compare_three_way`` is overspecified","2021-06 (Virtual)","|Complete|","17.0" +"`LWG3430 `__","``std::fstream`` & co. should be constructible from string_view","2021-06 (Virtual)","|Complete|","19.0" +"`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| [#note-LWG3481]_","" +"`LWG3506 `__","Missing allocator-extended constructors for ``priority_queue``","2021-06 (Virtual)","|Complete|","14.0" +"`LWG3517 `__","``join_view::iterator``'s ``iter_swap`` is underconstrained","2021-06 (Virtual)","|Complete|","14.0" +"`LWG3518 `__","Exception requirements on char trait operations unclear","2021-06 (Virtual)","|Nothing To Do|","" +"`LWG3519 `__","Incomplete synopses for ```` classes","2021-06 (Virtual)","","" +"`LWG3520 `__","``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator``","2021-06 (Virtual)","|Complete|","14.0" +"`LWG3521 `__","Overly strict requirements on ``qsort`` and ``bsearch``","2021-06 (Virtual)","|Nothing To Do|","" +"`LWG3522 `__","Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructors","2021-06 (Virtual)","|Complete|","14.0" +"`LWG3523 `__","``iota_view::sentinel`` is not always ``iota_view``'s sentinel","2021-06 (Virtual)","|Complete|","17.0" +"`LWG3526 `__","Return types of ``uses_allocator_construction_args`` unspecified","2021-06 (Virtual)","","" +"`LWG3527 `__","``uses_allocator_construction_args`` handles rvalue pairs of rvalue references incorrectly","2021-06 (Virtual)","","" +"`LWG3528 `__","``make_from_tuple`` can perform (the equivalent of) a C-style cast","2021-06 (Virtual)","|Complete|","19.0" +"`LWG3529 `__","``priority_queue(first, last)`` should construct ``c`` with ``(first, last)``","2021-06 (Virtual)","|Complete|","14.0" +"`LWG3530 `__","``BUILTIN-PTR-MEOW`` should not opt the type out of syntactic checks","2021-06 (Virtual)","","" +"`LWG3532 `__","``split_view::inner-iterator::operator++(int)`` should depend on ``Base``","2021-06 (Virtual)","","" +"`LWG3533 `__","Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators``","2021-06 (Virtual)","|Complete|","14.0" +"`LWG3536 `__","Should ``chrono::from_stream()`` assign zero to duration for failure?","2021-06 (Virtual)","","" +"`LWG3539 `__","``format_to`` must not copy models of ``output_iterator``","2021-06 (Virtual)","|Complete|","14.0" +"`LWG3540 `__","ยง[format.arg] There should be no const in ``basic_format_arg(const T* p)``","2021-06 (Virtual)","|Complete|","14.0" +"`LWG3541 `__","``indirectly_readable_traits`` should be SFINAE-friendly for all types","2021-06 (Virtual)","|Complete|","14.0" +"`LWG3542 `__","``basic_format_arg`` mishandles ``basic_string_view`` with custom traits","2021-06 (Virtual)","|Complete|","14.0" +"`LWG3543 `__","Definition of when ``counted_iterators`` refer to the same sequence isn't quite right","2021-06 (Virtual)","|Nothing To Do|","" +"`LWG3544 `__","``format-arg-store::args`` is unintentionally not exposition-only","2021-06 (Virtual)","|Complete|","14.0" +"`LWG3546 `__","``common_iterator``'s postfix-proxy is not quite right","2021-06 (Virtual)","","" +"`LWG3548 `__","``shared_ptr`` construction from ``unique_ptr`` should move (not copy) the deleter","2021-06 (Virtual)","|Complete|","15.0" +"`LWG3549 `__","``view_interface`` is overspecified to derive from ``view_base``","2021-06 (Virtual)","|Complete|","14.0" +"`LWG3551 `__","``borrowed_{iterator,subrange}_t`` are overspecified","2021-06 (Virtual)","|Nothing To Do|","" +"`LWG3552 `__","Parallel specialized memory algorithms should require forward iterators","2021-06 (Virtual)","","" +"`LWG3553 `__","Useless constraint in ``split_view::outer-iterator::value_type::begin()``","2021-06 (Virtual)","","" +"`LWG3555 `__","``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying range","2021-06 (Virtual)","","" +"","","","","" +"`LWG2191 `__","Incorrect specification of ``match_results(match_results&&)``","2021-10 (Virtual)","|Nothing To Do|","" +"`LWG2381 `__","Inconsistency in parsing floating point numbers","2021-10 (Virtual)","|Complete|","19.0" +"`LWG2762 `__","``unique_ptr operator*()`` should be ``noexcept``","2021-10 (Virtual)","|Complete|","19.0" +"`LWG3121 `__","``tuple`` constructor constraints for ``UTypes&&...`` overloads","2021-10 (Virtual)","","" +"`LWG3123 `__","``duration`` constructor from representation shouldn't be effectively non-throwing","2021-10 (Virtual)","","" +"`LWG3146 `__","Excessive unwrapping in ``std::ref/cref``","2021-10 (Virtual)","|Complete|","14.0" +"`LWG3152 `__","``common_type`` and ``common_reference`` have flaws in common","2021-10 (Virtual)","","" +"`LWG3293 `__","``move_iterator operator+()`` has incorrect constraints","2021-10 (Virtual)","|Complete|","15.0" +"`LWG3361 `__","``safe_range`` case","2021-10 (Virtual)","|Nothing To Do|","" +"`LWG3392 `__","``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinel","2021-10 (Virtual)","|Complete|","14.0" +"`LWG3407 `__","Some problems with the wording changes of P1739R4","2021-10 (Virtual)","|Complete|","15.0" +"`LWG3422 `__","Issues of ``seed_seq``'s constructors","2021-10 (Virtual)","|Complete|","14.0" +"`LWG3470 `__","``convertible-to-non-slicing`` seems to reject valid case","2021-10 (Virtual)","|Complete|","14.0" +"`LWG3480 `__","``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 ranges","2021-10 (Virtual)","|Complete|","14.0" +"`LWG3498 `__","Inconsistent ``noexcept``-specifiers for ``basic_syncbuf``","2021-10 (Virtual)","","" +"`LWG3535 `__","``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie","2021-10 (Virtual)","|Complete|","15.0" +"`LWG3554 `__","``chrono::parse`` needs ``const charT*`` and ``basic_string_view`` overloads","2021-10 (Virtual)","","" +"`LWG3557 `__","The ``static_cast`` expression in ``convertible_to`` has the wrong operand","2021-10 (Virtual)","|Complete|","14.0" +"`LWG3559 `__","Semantic requirements of ``sized_range`` is circular","2021-10 (Virtual)","|Nothing To Do|","" +"`LWG3560 `__","``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges``","2021-10 (Virtual)","","" +"`LWG3561 `__","Issue with internal counter in ``discard_block_engine``","2021-10 (Virtual)","","" +"`LWG3563 `__","``keys_view`` example is broken","2021-10 (Virtual)","","" +"`LWG3566 `__","Constraint recursion for ``operator<=>(optional, U)``","2021-10 (Virtual)","|Complete|","17.0" +"`LWG3567 `__","Formatting move-only iterators take two","2021-10 (Virtual)","|Complete|","16.0" +"`LWG3568 `__","``basic_istream_view`` needs to initialize ``value_``","2021-10 (Virtual)","|Complete|","16.0" +"`LWG3570 `__","``basic_osyncstream::emit`` should be an unformatted output function","2021-10 (Virtual)","|Complete|","18.0" +"`LWG3571 `__","``flush_emit`` should set ``badbit`` if the ``emit`` call fails","2021-10 (Virtual)","","" +"`LWG3572 `__","``copyable-box`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0" +"`LWG3573 `__","Missing Throws element for ``basic_string_view(It begin, End end)``","2021-10 (Virtual)","|Complete|","14.0" +"`LWG3574 `__","``common_iterator`` should be completely ``constexpr``-able","2021-10 (Virtual)","|Complete|","14.0" +"`LWG3580 `__","``iota_view``'s ``iterator``'s binary ``operator+`` should be improved","2021-10 (Virtual)","|Complete|","14.0" +"`LWG3581 `__","The range constructor makes ``basic_string_view`` not trivially move constructible","2021-10 (Virtual)","|Complete|","14.0" +"`LWG3585 `__","``variant`` converting assignment with immovable alternative","2021-10 (Virtual)","","" +"`LWG3589 `__","The ``const`` lvalue reference overload of ``get`` for ``subrange`` does not constrain ``I`` to be ``copyable`` when ``N == 0``","2021-10 (Virtual)","|Complete|","14.0" +"`LWG3590 `__","``split_view::base() const &`` is overconstrained","2021-10 (Virtual)","|Complete|","16.0" +"`LWG3591 `__","``lazy_split_view::inner-iterator::base() &&`` invalidates outer iterators","2021-10 (Virtual)","","" +"`LWG3592 `__","``lazy_split_view`` needs to check the simpleness of Pattern","2021-10 (Virtual)","","" +"`LWG3593 `__","Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept``","2021-10 (Virtual)","","" +"`LWG3595 `__","Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0" +"","","","","" +"`LWG3088 `__","``forward_list::merge`` behaviour unclear when passed ``*this``","2022-02 (Virtual)","","" +"`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.0" +"`LWG3616 `__","LWG 3498 seems to miss the non-member ``swap`` for ``basic_syncbuf`` ","2022-02 (Virtual)","|Complete|","18.0" +"`LWG3618 `__","Unnecessary ``iter_move`` for ``transform_view::iterator`` ","2022-02 (Virtual)","|Complete|","19.0" +"`LWG3619 `__","Specification of ``vformat_to`` contains ill-formed ``formatted_size`` calls","2022-02 (Virtual)","|Nothing To Do|","" +"`LWG3621 `__","Remove feature-test macro ``__cpp_lib_monadic_optional`` ","2022-02 (Virtual)","|Complete|","15.0" +"`LWG3632 `__","``unique_ptr`` ""Mandates: This constructor is not selected by class template argument deduction""","2022-02 (Virtual)","|Nothing To Do|","" +"`LWG3643 `__","Missing ``constexpr`` in ``std::counted_iterator`` ","2022-02 (Virtual)","|Complete|","19.0" +"`LWG3648 `__","``format`` should not print ``bool`` with ``'c'`` ","2022-02 (Virtual)","|Complete|","15.0" +"`LWG3649 `__","[fund.ts.v2] Reinstate and bump ``__cpp_lib_experimental_memory_resource`` feature test macro","2022-02 (Virtual)","","" +"`LWG3650 `__","Are ``std::basic_string`` 's ``iterator`` and ``const_iterator`` constexpr iterators?","2022-02 (Virtual)","|Nothing To Do|","" +"`LWG3654 `__","``basic_format_context::arg(size_t)`` should be ``noexcept`` ","2022-02 (Virtual)","|Complete|","15.0" +"`LWG3657 `__","``std::hash`` is not enabled","2022-02 (Virtual)","|Complete|","17.0" +"`LWG3660 `__","``iterator_traits::pointer`` should conform to ยง[iterator.traits]","2022-02 (Virtual)","|Complete|","14.0" +"`LWG3661 `__","``constinit atomic> a(nullptr);`` should work","2022-02 (Virtual)","","" +"","","","","" +"`LWG3564 `__","``transform_view::iterator::value_type`` and ``iterator_category`` should use ``const F&``","2022-07 (Virtual)","|Complete|","20.0" +"`LWG3617 `__","``function``/``packaged_task`` deduction guides and deducing ``this``","2022-07 (Virtual)","","" +"`LWG3656 `__","Inconsistent bit operations returning a count","2022-07 (Virtual)","|Complete|","15.0" +"`LWG3659 `__","Consider ``ATOMIC_FLAG_INIT`` undeprecation","2022-07 (Virtual)","|Complete|","15.0" +"`LWG3670 `__","``Cpp17InputIterators`` don't have integer-class difference types","2022-07 (Virtual)","","" +"`LWG3671 `__","``atomic_fetch_xor`` missing from ``stdatomic.h``","2022-07 (Virtual)","|Complete|","20.0" +"`LWG3672 `__","``common_iterator::operator->()`` should return by value","2022-07 (Virtual)","|Complete|","19.0" +"`LWG3683 `__","``operator==`` for ``polymorphic_allocator`` cannot deduce template argument in common cases","2022-07 (Virtual)","|Complete|","20.0" +"`LWG3687 `__","``expected`` move constructor should move","2022-07 (Virtual)","|Complete|","16.0" +"`LWG3692 `__","``zip_view::iterator``'s ``operator<=>`` is overconstrained","2022-07 (Virtual)","","" +"`LWG3701 `__","Make ``formatter, charT>`` requirement explicit","2022-07 (Virtual)","|Complete|","15.0" +"`LWG3702 `__","Should ``zip_transform_view::iterator`` remove ``operator<``","2022-07 (Virtual)","","" +"`LWG3703 `__","Missing requirements for ``expected`` requires ``is_void``","2022-07 (Virtual)","|Complete|","16.0" +"`LWG3704 `__","LWG 2059 added overloads that might be ill-formed for sets","2022-07 (Virtual)","","" +"`LWG3705 `__","Hashability shouldn't depend on basic_string's allocator","2022-07 (Virtual)","|Complete|","16.0" +"`LWG3707 `__","chunk_view::outer-iterator::value_type::size should return unsigned type","2022-07 (Virtual)","","" +"`LWG3708 `__","``take_while_view::sentinel``'s conversion constructor should move","2022-07 (Virtual)","|Complete|","16.0" +"`LWG3709 `__","LWG-3703 was underly ambitious","2022-07 (Virtual)","","" +"`LWG3710 `__","The ``end`` of ``chunk_view`` for input ranges can be ``const``","2022-07 (Virtual)","","" +"`LWG3711 `__","Missing preconditions for slide_view constructor","2022-07 (Virtual)","","" +"`LWG3712 `__","``chunk_view`` and ``slide_view`` should not be ``default_initializable``","2022-07 (Virtual)","","" +"`LWG3713 `__","Sorted with respect to comparator (only)","2022-07 (Virtual)","|Nothing To Do|","" +"`LWG3715 `__","``view_interface::empty`` is overconstrained","2022-07 (Virtual)","|Complete|","19.0" +"`LWG3719 `__","Directory iterators should be usable with default sentinel","2022-07 (Virtual)","|Complete|","17.0" +"`LWG3721 `__","Allow an ``arg-id`` with a value of zero for ``width`` in ``std-format-spec``","2022-07 (Virtual)","|Complete|","16.0" +"`LWG3724 `__","``decay-copy`` should be constrained","2022-07 (Virtual)","|Complete|","14.0" +"","","","","" +"`LWG3028 `__","Container requirements tables should distinguish ``const`` and non-``const`` variables","2022-11 (Kona)","","" +"`LWG3118 `__","``fpos`` equality comparison unspecified","2022-11 (Kona)","","" +"`LWG3177 `__","Limit permission to specialize variable templates to program-defined types","2022-11 (Kona)","|Nothing To Do|","" +"`LWG3515 `__","ยง[stacktrace.basic.nonmem]: ``operator<<`` should be less templatized","2022-11 (Kona)","","" +"`LWG3545 `__","``std::pointer_traits`` should be SFINAE-friendly","2022-11 (Kona)","|Complete|","18.0" +"`LWG3569 `__","``join_view`` fails to support ranges of ranges with non-default_initializable iterators","2022-11 (Kona)","","" +"`LWG3594 `__","``inout_ptr`` โ€” inconsistent ``release()`` in destructor","2022-11 (Kona)","|Complete|","19.0" +"`LWG3597 `__","Unsigned integer types don't model advanceable","2022-11 (Kona)","","" +"`LWG3600 `__","Making ``istream_iterator`` copy constructor trivial is an ABI break","2022-11 (Kona)","","" +"`LWG3629 `__","``make_error_code`` and ``make_error_condition`` are customization points","2022-11 (Kona)","|Complete|","16.0" +"`LWG3636 `__","``formatter::format`` should be ``const``-qualified","2022-11 (Kona)","|Complete|","16.0" +"`LWG3646 `__","``std::ranges::view_interface::size`` returns a signed type","2022-11 (Kona)","|Complete|","16.0" +"`LWG3677 `__","Is a cv-qualified ``pair`` specially handled in uses-allocator construction?","2022-11 (Kona)","|Complete|","18.0" +"`LWG3717 `__","``common_view::end`` should improve ``random_access_range`` case","2022-11 (Kona)","","" +"`LWG3732 `__","``prepend_range`` and ``append_range`` can't be amortized constant time","2022-11 (Kona)","|Nothing To Do|","" +"`LWG3736 `__","``move_iterator`` missing ``disable_sized_sentinel_for`` specialization","2022-11 (Kona)","|Complete|","19.0" +"`LWG3737 `__","``take_view::sentinel`` should provide ``operator-``","2022-11 (Kona)","","" +"`LWG3738 `__","Missing preconditions for ``take_view`` constructor","2022-11 (Kona)","|Complete|","16.0" +"`LWG3743 `__","``ranges::to``'s reserve may be ill-formed","2022-11 (Kona)","","" +"`LWG3745 `__","``std::atomic_wait`` and its friends lack ``noexcept``","2022-11 (Kona)","|Complete|","16.0" +"`LWG3746 `__","``optional``'s spaceship with ``U`` with a type derived from optional causes infinite constraint meta-recursion","2022-11 (Kona)","|Complete|","17.0" +"`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| [#note-LWG3750]_","" +"`LWG3751 `__","Missing feature macro for ``flat_set``","2022-11 (Kona)","","" +"`LWG3753 `__","Clarify entity vs. freestanding entity","2022-11 (Kona)","","" +"`LWG3754 `__","Class template expected synopsis contains declarations that do not match the detailed description","2022-11 (Kona)","|Nothing To Do|","" +"`LWG3755 `__","``tuple-for-each`` can call ``user-defined`` ``operator,``","2022-11 (Kona)","|Complete|","17.0" +"`LWG3757 `__","What's the effect of ``std::forward_like(x)``?","2022-11 (Kona)","","" +"`LWG3759 `__","``ranges::rotate_copy`` should use ``std::move``","2022-11 (Kona)","|Complete|","15.0" +"`LWG3760 `__","``cartesian_product_view::iterator``'s ``parent_`` is never valid","2022-11 (Kona)","","" +"`LWG3761 `__","``cartesian_product_view::iterator::operator-`` should pass by reference","2022-11 (Kona)","","" +"`LWG3762 `__","``generator::iterator::operator==`` should pass by reference","2022-11 (Kona)","","" +"`LWG3764 `__","``reference_wrapper::operator()`` should propagate noexcept","2022-11 (Kona)","|Complete|","17.0" +"`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)","","" +"`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.0" +"`LWG3784 `__","std.compat should not provide ``::byte`` and its friends","2022-11 (Kona)","|Complete|","19.0" +"`LWG3785 `__","``ranges::to`` is over-constrained on the destination type being a range","2022-11 (Kona)","","" +"`LWG3788 `__","``jthread::operator=(jthread&&)`` postconditions are unimplementable under self-assignment","2022-11 (Kona)","","" +"`LWG3792 `__","``__cpp_lib_constexpr_algorithms`` should also be defined in ````","2022-11 (Kona)","|Complete|","16.0" +"`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| [#note-LWG3798]_","" +"`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.0" +"`LWG3756 `__","Is the ``std::atomic_flag`` class signal-safe?","2023-02 (Issaquah)","","" +"`LWG3769 `__","``basic_const_iterator::operator==`` causes infinite constraint recursion","2023-02 (Issaquah)","","" +"`LWG3807 `__","The feature test macro for ``ranges::find_last`` should be renamed","2023-02 (Issaquah)","","" +"`LWG3811 `__","``views::as_const`` on ``ref_view`` should return ``ref_view``","2023-02 (Issaquah)","","" +"`LWG3820 `__","``cartesian_product_view::iterator::prev`` is not quite right","2023-02 (Issaquah)","","" +"`LWG3825 `__","Missing compile-time argument ``id`` check in ``basic_format_parse_context::next_arg_id``","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3204 `__","``sub_match::swap`` only swaps the base class","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3733 `__","``ranges::to`` misuses ``cpp17-input-iterator``","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3742 `__","``deque::prepend_range`` needs to permute","2023-02 (Issaquah)","","" +"`LWG3790 `__","`P1467 `__ accidentally changed ``nexttoward``'s signature","2023-02 (Issaquah)","","" +"`LWG3819 `__","``reference_meows_from_temporary`` should not use ``is_meowible``","2023-02 (Issaquah)","","" +"`LWG3821 `__","``uses_allocator_construction_args`` should have overload for ``pair-like``","2023-02 (Issaquah)","|Complete|","18.0" +"`LWG3834 `__","Missing ``constexpr`` for ``std::intmax_t`` math functions in ````","2023-02 (Issaquah)","","" +"`LWG3839 `__","``range_formatter``'s ``set_separator``, ``set_brackets``, and ``underlying`` functions should be ``noexcept``","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3841 `__","```` should not be ""all freestanding""","2023-02 (Issaquah)","","" +"`LWG3842 `__","Unclear wording for ``precision`` in ``chrono-format-spec``","2023-02 (Issaquah)","|Complete|","16.0" +"`LWG3848 `__","``adjacent_view``, ``adjacent_transform_view`` and ``slide_view`` missing ``base`` accessor","2023-02 (Issaquah)","","" +"`LWG3849 `__","``cartesian_product_view::iterator``'s default constructor is overconstrained","2023-02 (Issaquah)","","" +"`LWG3850 `__","``views::as_const`` on ``empty_view`` should return ``empty_view``","2023-02 (Issaquah)","","" +"`LWG3851 `__","``chunk_view::inner-iterator`` missing custom ``iter_move`` and ``iter_swap``","2023-02 (Issaquah)","","" +"`LWG3853 `__","``basic_const_iterator::operator->`` is ill-formed","2023-02 (Issaquah)","","" +"`LWG3857 `__","``basic_string_view`` should allow explicit conversion when only traits vary","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3860 `__","``range_common_reference_t`` is missing","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3866 `__","Bad Mandates for ``expected::transform_error`` overloads","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3867 `__","Should ``std::basic_osyncstream``'s move assignment operator be ``noexcept``?","2023-02 (Issaquah)","|Complete|","18.0" +"`LWG3441 `__","Misleading note about calls to customization points","2023-02 (Issaquah)","","" +"`LWG3622 `__","Misspecified transitivity of equivalence in ยง[unord.req.general]","2023-02 (Issaquah)","","" +"`LWG3631 `__","``basic_format_arg(T&&)`` should use ``remove_cvref_t`` throughout","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3645 `__","``resize_and_overwrite`` is overspecified to call its callback with lvalues","2023-02 (Issaquah)","|Complete|","14.0" +"`LWG3655 `__","The ``INVOKE`` operation and union types","2023-02 (Issaquah)","|Complete|","18.0" +"`LWG3723 `__","``priority_queue::push_range`` needs to ``append_range``","2023-02 (Issaquah)","","" +"`LWG3734 `__","Inconsistency in ``inout_ptr`` and ``out_ptr`` for empty case","2023-02 (Issaquah)","|Complete|","19.0" +"`LWG3772 `__","``repeat_view``'s ``piecewise`` constructor is missing Postconditions","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3786 `__","Flat maps' deduction guide needs to default ``Allocator`` to be useful","2023-02 (Issaquah)","","" +"`LWG3803 `__","``flat_foo`` constructors taking ``KeyContainer`` lack ``KeyCompare`` parameter","2023-02 (Issaquah)","","" +"`LWG3810 `__","CTAD for ``std::basic_format_args``","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3827 `__","Deprecate ```` and ```` macros","2023-02 (Issaquah)","","" +"`LWG3828 `__","Sync ``intmax_t`` and ``uintmax_t`` with C2x","2023-02 (Issaquah)","|Nothing To Do|","" +"`LWG3833 `__","Remove specialization ``template struct formatter``","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3836 `__","``std::expected`` conversion constructor ``expected(const expected&)`` should take precedence over ``expected(U&&)`` with operator ``bool``","2023-02 (Issaquah)","|Complete|","18.0" +"`LWG3843 `__","``std::expected::value() &`` assumes ``E`` is copy constructible","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3847 `__","``ranges::to`` can still return views","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3862 `__","``basic_const_iterator``'s ``common_type`` specialization is underconstrained","2023-02 (Issaquah)","","" +"`LWG3865 `__","Sorting a range of ``pairs``","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3869 `__","Deprecate ``std::errc`` constants related to UNIX STREAMS","2023-02 (Issaquah)","|Complete|","19.0" +"`LWG3870 `__","Remove ``voidify``","2023-02 (Issaquah)","","" +"`LWG3871 `__","Adjust note about ``terminate``","2023-02 (Issaquah)","","" +"`LWG3872 `__","``basic_const_iterator`` should have custom ``iter_move``","2023-02 (Issaquah)","","" +"`LWG3875 `__","``std::ranges::repeat_view::iterator`` may be ill-formed","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3876 `__","Default constructor of ``std::layout_XX::mapping`` misses precondition","2023-02 (Issaquah)","","" +"`LWG3877 `__","Incorrect constraints on ``const``-qualified monadic overloads for ``std::expected``","2023-02 (Issaquah)","|Complete|","17.0" +"`LWG3878 `__","import ``std;`` should guarantee initialization of standard iostreams objects","2023-02 (Issaquah)","","" +"`LWG3879 `__","``erase_if`` for ``flat_{,multi}set`` is incorrectly specified","2023-02 (Issaquah)","","" +"`LWG3880 `__","Clarify ``operator+=`` complexity for ``{chunk,stride}_view::iterator``","2023-02 (Issaquah)","","" +"`LWG3881 `__","Incorrect formatting of container adapters backed by ``std::string``","2023-02 (Issaquah)","|Complete|","17.0" diff --git a/libcxx/docs/Status/Cxx23Papers.csv b/libcxx/docs/Status/Cxx23Papers.csv index c2b4f8c344a8b5..e8c28cb45cb0e6 100644 --- a/libcxx/docs/Status/Cxx23Papers.csv +++ b/libcxx/docs/Status/Cxx23Papers.csv @@ -1,123 +1,123 @@ -"Paper #","Paper Name","Meeting","Status","First released version","Labels" -"`P0881R7 `__","A Proposal to add stacktrace library","2020-11 (Virtual)","","","" -"`P0943R6 `__","Support C atomics in C++","2020-11 (Virtual)","|Complete|","15.0","" -"`P1048R1 `__","A proposal for a type trait to detect scoped enumerations","2020-11 (Virtual)","|Complete|","12.0","" -"`P1679R3 `__","string contains function","2020-11 (Virtual)","|Complete|","12.0","" -"","","","","","" -"`P1682R3 `__","std::to_underlying for enumerations","2021-02 (Virtual)","|Complete|","13.0","" -"`P2017R1 `__","Conditionally borrowed ranges","2021-02 (Virtual)","|Complete|","16.0","|ranges|" -"`P2160R1 `__","Locks lock lockables","2021-02 (Virtual)","|Nothing To Do|","","" -"`P2162R2 `__","Inheriting from std::variant","2021-02 (Virtual)","|Complete|","13.0","" -"`P2212R2 `__","Relax Requirements for time_point::clock","2021-02 (Virtual)","|Nothing To Do|","","" -"`P2259R1 `__","Repairing input range adaptors and counted_iterator","2021-02 (Virtual)","","","|ranges|" -"","","","","","" -"`P0401R6 `__","Providing size feedback in the Allocator interface","2021-06 (Virtual)","|Complete|","15.0","" -"`P0448R4 `__","A strstream replacement using span as buffer","2021-06 (Virtual)","","","" -"`P1132R8 `__","out_ptr - a scalable output pointer abstraction","2021-06 (Virtual)","|Complete|","19.0","" -"`P1328R1 `__","Making std::type_info::operator== constexpr","2021-06 (Virtual)","|Complete|","17.0","" -"`P1425R4 `__","Iterators pair constructors for stack and queue","2021-06 (Virtual)","|Complete|","14.0","|ranges|" -"`P1518R2 `__","Stop overconstraining allocators in container deduction guides","2021-06 (Virtual)","|Complete|","13.0","" -"`P1659R3 `__","starts_with and ends_with","2021-06 (Virtual)","|Complete|","19.0","|ranges|" -"`P1951R1 `__","Default Arguments for pair Forwarding Constructor","2021-06 (Virtual)","|Complete|","14.0","" -"`P1989R2 `__","Range constructor for std::string_view","2021-06 (Virtual)","|Complete|","14.0","|ranges|" -"`P2136R3 `__","invoke_r","2021-06 (Virtual)","|Complete|","17.0","" -"`P2166R1 `__","A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr","2021-06 (Virtual)","|Complete|","13.0","" -"","","","","","" -"`P0288R9 `__","``any_invocable``","2021-10 (Virtual)","","","" -"`P0798R8 `__","Monadic operations for ``std::optional``","2021-10 (Virtual)","|Complete|","14.0","" -"`P0849R8 `__","``auto(x)``: ``DECAY_COPY`` in the language","2021-10 (Virtual)","|Complete|","14.0","" -"`P1072R10 `__","``basic_string::resize_and_overwrite``","2021-10 (Virtual)","|Complete|","14.0","" -"`P1147R1 `__","Printing ``volatile`` Pointers","2021-10 (Virtual)","|Complete|","14.0","" -"`P1272R4 `__","Byteswapping for fun&&nuf","2021-10 (Virtual)","|Complete|","14.0","" -"`P1675R2 `__","``rethrow_exception`` must be allowed to copy","2021-10 (Virtual)","|Nothing To Do|","","" -"`P2077R3 `__","Heterogeneous erasure overloads for associative containers","2021-10 (Virtual)","","","" -"`P2251R1 `__","Require ``span`` & ``basic_string_view`` to be Trivially Copyable","2021-10 (Virtual)","|Complete|","14.0","" -"`P2301R1 `__","Add a ``pmr`` alias for ``std::stacktrace``","2021-10 (Virtual)","","","" -"`P2321R2 `__","``zip``","2021-10 (Virtual)","|In Progress|","","|ranges|" -"`P2340R1 `__","Clarifying the status of the 'C headers'","2021-10 (Virtual)","|Nothing To Do|","","" -"`P2393R1 `__","Cleaning up ``integer``-class types","2021-10 (Virtual)","","","" -"`P2401R0 `__","Add a conditional ``noexcept`` specification to ``std::exchange``","2021-10 (Virtual)","|Complete|","14.0","" -"","","","","","" -"`P0323R12 `__","``std::expected``","2022-02 (Virtual)","|Complete|","16.0","" -"`P0533R9 `__","``constexpr`` for ```` and ````","2022-02 (Virtual)","|In Progress| [#note-P0533R9]_","","" -"`P0627R6 `__","Function to mark unreachable code","2022-02 (Virtual)","|Complete|","15.0","" -"`P1206R7 `__","``ranges::to``: A function to convert any range to a container","2022-02 (Virtual)","|Complete|","17.0","|ranges|" -"`P1413R3 `__","Deprecate ``std::aligned_storage`` and ``std::aligned_union``","2022-02 (Virtual)","|Complete| [#note-P1413R3]_","","" -"`P2255R2 `__","A type trait to detect reference binding to temporary","2022-02 (Virtual)","","","" -"`P2273R3 `__","Making ``std::unique_ptr`` constexpr","2022-02 (Virtual)","|Complete|","16.0","" -"`P2387R3 `__","Pipe support for user-defined range adaptors","2022-02 (Virtual)","|Complete|","19.0","|ranges|" -"`P2440R1 `__","``ranges::iota``, ``ranges::shift_left`` and ``ranges::shift_right``","2022-02 (Virtual)","","","|ranges|" -"`P2441R2 `__","``views::join_with``","2022-02 (Virtual)","|In Progress|","","|ranges|" -"`P2442R1 `__","Windowing range adaptors: ``views::chunk`` and ``views::slide``","2022-02 (Virtual)","","","|ranges|" -"`P2443R1 `__","``views::chunk_by``","2022-02 (Virtual)","|Complete|","18.0","|ranges|" -"","","","","","" -"`P0009R18 `__","mdspan: A Non-Owning Multidimensional Array Reference","2022-07 (Virtual)","|Complete|","18.0","" -"`P0429R9 `__","A Standard ``flat_map``","2022-07 (Virtual)","","","" -"`P1169R4 `__","``static operator()``","2022-07 (Virtual)","|Complete|","16.0","" -"`P1222R4 `__","A Standard ``flat_set``","2022-07 (Virtual)","","","" -"`P1223R5 `__","``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()``","2022-07 (Virtual)","|Complete|","19.0","|ranges|" -"`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)","","","|ranges|" -"`P2093R14 `__","Formatted output","2022-07 (Virtual)","|Complete|","18.0","|format|" -"`P2165R4 `__","Compatibility between ``tuple``, ``pair`` and ``tuple-like`` objects","2022-07 (Virtual)","","","" -"`P2278R4 `__","``cbegin`` should always return a constant iterator","2022-07 (Virtual)","","","|ranges|" -"`P2286R8 `__","Formatting Ranges","2022-07 (Virtual)","|Complete|","16.0","|format| |ranges|" -"`P2291R3 `__","Add Constexpr Modifiers to Functions ``to_chars`` and ``from_chars`` for Integral Types in ```` Header","2022-07 (Virtual)","|Complete|","16.0","" -"`P2302R4 `__","``std::ranges::contains``","2022-07 (Virtual)","|Complete|","19.0","|ranges|" -"`P2322R6 `__","``ranges::fold``","2022-07 (Virtual)","","","|ranges|" -"`P2374R4 `__","``views::cartesian_product``","2022-07 (Virtual)","","","|ranges|" -"`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)","","","|ranges|" -"`P2417R2 `__","A more ``constexpr`` ``bitset``","2022-07 (Virtual)","|Complete|","16.0","" -"`P2419R2 `__","Clarify handling of encodings in localized formatting of chrono types","2022-07 (Virtual)","","","" -"`P2438R2 `__","``std::string::substr() &&``","2022-07 (Virtual)","|Complete|","16.0","" -"`P2445R1 `__","``forward_like``","2022-07 (Virtual)","|Complete|","16.0","" -"`P2446R2 `__","``views::as_rvalue``","2022-07 (Virtual)","|Complete|","16.0","|ranges|" -"`P2460R2 `__","Relax requirements on ``wchar_t`` to match existing practices","2022-07 (Virtual)","|Nothing To Do|","","" -"`P2465R3 `__","Standard Library Modules ``std`` and ``std.compat``","2022-07 (Virtual)","|Complete|","19.0","" -"`P2467R1 `__","Support exclusive mode for ``fstreams``","2022-07 (Virtual)","|Complete|","18.0","" -"`P2474R2 `__","``views::repeat``","2022-07 (Virtual)","|Complete|","17.0","|ranges|" -"`P2494R2 `__","Relaxing range adaptors to allow for move only types","2022-07 (Virtual)","|Complete|","17.0","|ranges|" -"`P2499R0 `__","``string_view`` range constructor should be ``explicit``","2022-07 (Virtual)","|Complete|","16.0","|ranges|" -"`P2502R2 `__","``std::generator``: Synchronous Coroutine Generator for Ranges","2022-07 (Virtual)","","","|ranges|" -"`P2508R1 `__","Exposing ``std::basic-format-string``","2022-07 (Virtual)","|Complete|","15.0","" -"`P2513R4 `__","``char8_t`` Compatibility and Portability Fixes","2022-07 (Virtual)","","","" -"`P2517R1 `__","Add a conditional ``noexcept`` specification to ``std::apply``","2022-07 (Virtual)","|Complete|","3.9","" -"`P2520R0 `__","``move_iterator`` should be a random access iterator","2022-07 (Virtual)","|Complete| [#note-P2520R0]_","17.0","|ranges|" -"`P2540R1 `__","Empty Product for certain Views","2022-07 (Virtual)","","","|ranges|" -"`P2549R1 `__","``std::unexpected`` should have ``error()`` as member accessor","2022-07 (Virtual)","|Complete|","16.0","" -"`P2585R0 `__","Improving default container formatting","2022-07 (Virtual)","|Complete|","17.0","" -"`P2590R2 `__","Explicit lifetime management","2022-07 (Virtual)","","","" -"`P2599R2 `__","``mdspan::size_type`` should be ``index_type``","2022-07 (Virtual)","|Complete|","18.0","" -"`P2604R0 `__","mdspan: rename pointer and contiguous","2022-07 (Virtual)","|Complete|","18.0","" -"`P2613R1 `__","Add the missing ``empty`` to ``mdspan``","2022-07 (Virtual)","|Complete|","18.0","" -"","","","","","" -"`P1202R5 `__","Asymmetric Fences","2022-11 (Kona)","","","|concurrency TS|" -"`P1264R2 `__","Revising the wording of ``stream`` input operations","2022-11 (Kona)","|Complete|","9.0","" -"`P1478R8 `__","``Byte-wise`` ``atomic`` ``memcpy``","2022-11 (Kona)","","","|concurrency TS|" -"`P2167R3 `__","Improved Proposed Wording for LWG 2114","2022-11 (Kona)","","","" -"`P2396R1 `__","Concurrency TS 2 fixes ","2022-11 (Kona)","","","|concurrency TS|" -"`P2505R5 `__","Monadic Functions for ``std::expected``","2022-11 (Kona)","|Complete|","17.0","" -"`P2539R4 `__","Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?","2022-11 (Kona)","|Complete|","18.0","|format|" -"`P2602R2 `__","Poison Pills are Too Toxic","2022-11 (Kona)","|Complete|","19.0","|ranges|" -"`P2708R1 `__","No Further Fundamentals TSes","2022-11 (Kona)","|Nothing To Do|","","" -"","","","","","" -"`P0290R4 `__","``apply()`` for ``synchronized_value``","2023-02 (Issaquah)","","","|concurrency TS|" -"`P2770R0 `__","Stashing stashing ``iterators`` for proper flattening","2023-02 (Issaquah)","|Partial| [#note-P2770R0]_","","|ranges|" -"`P2164R9 `__","``views::enumerate``","2023-02 (Issaquah)","","","|ranges|" -"`P2711R1 `__","Making multi-param constructors of ``views`` ``explicit``","2023-02 (Issaquah)","|In Progress| [#note-P2711R1]_","","|ranges|" -"`P2609R3 `__","Relaxing Ranges Just A Smidge","2023-02 (Issaquah)","|Complete| [#note-P2609R3]_","20.0","|ranges|" -"`P2713R1 `__","Escaping improvements in ``std::format``","2023-02 (Issaquah)","|Complete|","19.0","|format|" -"`P2675R1 `__","``format``'s width estimation is too approximate and not forward compatible","2023-02 (Issaquah)","|Complete|","17.0","|format|" -"`P2572R1 `__","``std::format`` fill character allowances","2023-02 (Issaquah)","|Complete|","17.0","|format|" -"`P2693R1 `__","Formatting ``thread::id`` and ``stacktrace``","2023-02 (Issaquah)","|Partial| [#note-P2693R1]_","","|format|" -"`P2679R2 `__","Fixing ``std::start_lifetime_as`` for arrays","2023-02 (Issaquah)","","","" -"`P2674R1 `__","A trait for implicit lifetime types","2023-02 (Issaquah)","","","" -"`P2655R3 `__","``common_reference_t`` of ``reference_wrapper`` Should Be a Reference Type","2023-02 (Issaquah)","","","" -"`P2652R2 `__","Disallow User Specialization of ``allocator_traits``","2023-02 (Issaquah)","|Complete|","19.0","" -"`P2787R1 `__","``pmr::generator`` - Promise Types are not Values","2023-02 (Issaquah)","","","" -"`P2614R2 `__","Deprecate ``numeric_limits::has_denorm``","2023-02 (Issaquah)","|Complete|","18.0","" -"`P2588R3 `__","``barrier``โ€™s phase completion guarantees","2023-02 (Issaquah)","","","" -"`P2763R1 `__","``layout_stride`` static extents default constructor fix","2023-02 (Issaquah)","","","" -"`P2736R2 `__","Referencing The Unicode Standard","2023-02 (Issaquah)","|Complete|","19.0","|format|" +"Paper #","Paper Name","Meeting","Status","First released version" +"`P0881R7 `__","A Proposal to add stacktrace library","2020-11 (Virtual)","","" +"`P0943R6 `__","Support C atomics in C++","2020-11 (Virtual)","|Complete|","15.0" +"`P1048R1 `__","A proposal for a type trait to detect scoped enumerations","2020-11 (Virtual)","|Complete|","12.0" +"`P1679R3 `__","string contains function","2020-11 (Virtual)","|Complete|","12.0" +"","","","","" +"`P1682R3 `__","std::to_underlying for enumerations","2021-02 (Virtual)","|Complete|","13.0" +"`P2017R1 `__","Conditionally borrowed ranges","2021-02 (Virtual)","|Complete|","16.0" +"`P2160R1 `__","Locks lock lockables","2021-02 (Virtual)","|Nothing To Do|","" +"`P2162R2 `__","Inheriting from std::variant","2021-02 (Virtual)","|Complete|","13.0" +"`P2212R2 `__","Relax Requirements for time_point::clock","2021-02 (Virtual)","|Nothing To Do|","" +"`P2259R1 `__","Repairing input range adaptors and counted_iterator","2021-02 (Virtual)","","" +"","","","","" +"`P0401R6 `__","Providing size feedback in the Allocator interface","2021-06 (Virtual)","|Complete|","15.0" +"`P0448R4 `__","A strstream replacement using span as buffer","2021-06 (Virtual)","","" +"`P1132R8 `__","out_ptr - a scalable output pointer abstraction","2021-06 (Virtual)","|Complete|","19.0" +"`P1328R1 `__","Making std::type_info::operator== constexpr","2021-06 (Virtual)","|Complete|","17.0" +"`P1425R4 `__","Iterators pair constructors for stack and queue","2021-06 (Virtual)","|Complete|","14.0" +"`P1518R2 `__","Stop overconstraining allocators in container deduction guides","2021-06 (Virtual)","|Complete|","13.0" +"`P1659R3 `__","starts_with and ends_with","2021-06 (Virtual)","|Complete|","19.0" +"`P1951R1 `__","Default Arguments for pair Forwarding Constructor","2021-06 (Virtual)","|Complete|","14.0" +"`P1989R2 `__","Range constructor for std::string_view","2021-06 (Virtual)","|Complete|","14.0" +"`P2136R3 `__","invoke_r","2021-06 (Virtual)","|Complete|","17.0" +"`P2166R1 `__","A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr","2021-06 (Virtual)","|Complete|","13.0" +"","","","","" +"`P0288R9 `__","``any_invocable``","2021-10 (Virtual)","","" +"`P0798R8 `__","Monadic operations for ``std::optional``","2021-10 (Virtual)","|Complete|","14.0" +"`P0849R8 `__","``auto(x)``: ``DECAY_COPY`` in the language","2021-10 (Virtual)","|Complete|","14.0" +"`P1072R10 `__","``basic_string::resize_and_overwrite``","2021-10 (Virtual)","|Complete|","14.0" +"`P1147R1 `__","Printing ``volatile`` Pointers","2021-10 (Virtual)","|Complete|","14.0" +"`P1272R4 `__","Byteswapping for fun&&nuf","2021-10 (Virtual)","|Complete|","14.0" +"`P1675R2 `__","``rethrow_exception`` must be allowed to copy","2021-10 (Virtual)","|Nothing To Do|","" +"`P2077R3 `__","Heterogeneous erasure overloads for associative containers","2021-10 (Virtual)","","" +"`P2251R1 `__","Require ``span`` & ``basic_string_view`` to be Trivially Copyable","2021-10 (Virtual)","|Complete|","14.0" +"`P2301R1 `__","Add a ``pmr`` alias for ``std::stacktrace``","2021-10 (Virtual)","","" +"`P2321R2 `__","``zip``","2021-10 (Virtual)","|In Progress|","" +"`P2340R1 `__","Clarifying the status of the 'C headers'","2021-10 (Virtual)","|Nothing To Do|","" +"`P2393R1 `__","Cleaning up ``integer``-class types","2021-10 (Virtual)","","" +"`P2401R0 `__","Add a conditional ``noexcept`` specification to ``std::exchange``","2021-10 (Virtual)","|Complete|","14.0" +"","","","","" +"`P0323R12 `__","``std::expected``","2022-02 (Virtual)","|Complete|","16.0" +"`P0533R9 `__","``constexpr`` for ```` and ````","2022-02 (Virtual)","|In Progress| [#note-P0533R9]_","" +"`P0627R6 `__","Function to mark unreachable code","2022-02 (Virtual)","|Complete|","15.0" +"`P1206R7 `__","``ranges::to``: A function to convert any range to a container","2022-02 (Virtual)","|Complete|","17.0" +"`P1413R3 `__","Deprecate ``std::aligned_storage`` and ``std::aligned_union``","2022-02 (Virtual)","|Complete| [#note-P1413R3]_","" +"`P2255R2 `__","A type trait to detect reference binding to temporary","2022-02 (Virtual)","","" +"`P2273R3 `__","Making ``std::unique_ptr`` constexpr","2022-02 (Virtual)","|Complete|","16.0" +"`P2387R3 `__","Pipe support for user-defined range adaptors","2022-02 (Virtual)","|Complete|","19.0" +"`P2440R1 `__","``ranges::iota``, ``ranges::shift_left`` and ``ranges::shift_right``","2022-02 (Virtual)","","" +"`P2441R2 `__","``views::join_with``","2022-02 (Virtual)","|In Progress|","" +"`P2442R1 `__","Windowing range adaptors: ``views::chunk`` and ``views::slide``","2022-02 (Virtual)","","" +"`P2443R1 `__","``views::chunk_by``","2022-02 (Virtual)","|Complete|","18.0" +"","","","","" +"`P0009R18 `__","mdspan: A Non-Owning Multidimensional Array Reference","2022-07 (Virtual)","|Complete|","18.0" +"`P0429R9 `__","A Standard ``flat_map``","2022-07 (Virtual)","","" +"`P1169R4 `__","``static operator()``","2022-07 (Virtual)","|Complete|","16.0" +"`P1222R4 `__","A Standard ``flat_set``","2022-07 (Virtual)","","" +"`P1223R5 `__","``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()``","2022-07 (Virtual)","|Complete|","19.0" +"`P1467R9 `__","Extended ``floating-point`` types and standard names","2022-07 (Virtual)","","" +"`P1642R11 `__","Freestanding ``[utilities]``, ``[ranges]``, and ``[iterators]``","2022-07 (Virtual)","","" +"`P1899R3 `__","``stride_view``","2022-07 (Virtual)","","" +"`P2093R14 `__","Formatted output","2022-07 (Virtual)","|Complete|","18.0" +"`P2165R4 `__","Compatibility between ``tuple``, ``pair`` and ``tuple-like`` objects","2022-07 (Virtual)","","" +"`P2278R4 `__","``cbegin`` should always return a constant iterator","2022-07 (Virtual)","","" +"`P2286R8 `__","Formatting Ranges","2022-07 (Virtual)","|Complete|","16.0" +"`P2291R3 `__","Add Constexpr Modifiers to Functions ``to_chars`` and ``from_chars`` for Integral Types in ```` Header","2022-07 (Virtual)","|Complete|","16.0" +"`P2302R4 `__","``std::ranges::contains``","2022-07 (Virtual)","|Complete|","19.0" +"`P2322R6 `__","``ranges::fold``","2022-07 (Virtual)","","" +"`P2374R4 `__","``views::cartesian_product``","2022-07 (Virtual)","","" +"`P2404R3 `__","Move-only types for ``equality_comparable_with``, ``totally_ordered_with``, and ``three_way_comparable_with``","2022-07 (Virtual)","","" +"`P2408R5 `__","Ranges iterators as inputs to non-Ranges algorithms","2022-07 (Virtual)","","" +"`P2417R2 `__","A more ``constexpr`` ``bitset``","2022-07 (Virtual)","|Complete|","16.0" +"`P2419R2 `__","Clarify handling of encodings in localized formatting of chrono types","2022-07 (Virtual)","","" +"`P2438R2 `__","``std::string::substr() &&``","2022-07 (Virtual)","|Complete|","16.0" +"`P2445R1 `__","``forward_like``","2022-07 (Virtual)","|Complete|","16.0" +"`P2446R2 `__","``views::as_rvalue``","2022-07 (Virtual)","|Complete|","16.0" +"`P2460R2 `__","Relax requirements on ``wchar_t`` to match existing practices","2022-07 (Virtual)","|Nothing To Do|","" +"`P2465R3 `__","Standard Library Modules ``std`` and ``std.compat``","2022-07 (Virtual)","|Complete|","19.0" +"`P2467R1 `__","Support exclusive mode for ``fstreams``","2022-07 (Virtual)","|Complete|","18.0" +"`P2474R2 `__","``views::repeat``","2022-07 (Virtual)","|Complete|","17.0" +"`P2494R2 `__","Relaxing range adaptors to allow for move only types","2022-07 (Virtual)","|Complete|","17.0" +"`P2499R0 `__","``string_view`` range constructor should be ``explicit``","2022-07 (Virtual)","|Complete|","16.0" +"`P2502R2 `__","``std::generator``: Synchronous Coroutine Generator for Ranges","2022-07 (Virtual)","","" +"`P2508R1 `__","Exposing ``std::basic-format-string``","2022-07 (Virtual)","|Complete|","15.0" +"`P2513R4 `__","``char8_t`` Compatibility and Portability Fixes","2022-07 (Virtual)","","" +"`P2517R1 `__","Add a conditional ``noexcept`` specification to ``std::apply``","2022-07 (Virtual)","|Complete|","3.9" +"`P2520R0 `__","``move_iterator`` should be a random access iterator","2022-07 (Virtual)","|Complete| [#note-P2520R0]_","17.0" +"`P2540R1 `__","Empty Product for certain Views","2022-07 (Virtual)","","" +"`P2549R1 `__","``std::unexpected`` should have ``error()`` as member accessor","2022-07 (Virtual)","|Complete|","16.0" +"`P2585R0 `__","Improving default container formatting","2022-07 (Virtual)","|Complete|","17.0" +"`P2590R2 `__","Explicit lifetime management","2022-07 (Virtual)","","" +"`P2599R2 `__","``mdspan::size_type`` should be ``index_type``","2022-07 (Virtual)","|Complete|","18.0" +"`P2604R0 `__","mdspan: rename pointer and contiguous","2022-07 (Virtual)","|Complete|","18.0" +"`P2613R1 `__","Add the missing ``empty`` to ``mdspan``","2022-07 (Virtual)","|Complete|","18.0" +"","","","","" +"`P1202R5 `__","Asymmetric Fences","2022-11 (Kona)","","" +"`P1264R2 `__","Revising the wording of ``stream`` input operations","2022-11 (Kona)","|Complete|","9.0" +"`P1478R8 `__","``Byte-wise`` ``atomic`` ``memcpy``","2022-11 (Kona)","","" +"`P2167R3 `__","Improved Proposed Wording for LWG 2114","2022-11 (Kona)","","" +"`P2396R1 `__","Concurrency TS 2 fixes ","2022-11 (Kona)","","" +"`P2505R5 `__","Monadic Functions for ``std::expected``","2022-11 (Kona)","|Complete|","17.0" +"`P2539R4 `__","Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?","2022-11 (Kona)","|Complete|","18.0" +"`P2602R2 `__","Poison Pills are Too Toxic","2022-11 (Kona)","|Complete|","19.0" +"`P2708R1 `__","No Further Fundamentals TSes","2022-11 (Kona)","|Nothing To Do|","" +"","","","","" +"`P0290R4 `__","``apply()`` for ``synchronized_value``","2023-02 (Issaquah)","","" +"`P2770R0 `__","Stashing stashing ``iterators`` for proper flattening","2023-02 (Issaquah)","|Partial| [#note-P2770R0]_","" +"`P2164R9 `__","``views::enumerate``","2023-02 (Issaquah)","","" +"`P2711R1 `__","Making multi-param constructors of ``views`` ``explicit``","2023-02 (Issaquah)","|In Progress| [#note-P2711R1]_","" +"`P2609R3 `__","Relaxing Ranges Just A Smidge","2023-02 (Issaquah)","|Complete| [#note-P2609R3]_","20.0" +"`P2713R1 `__","Escaping improvements in ``std::format``","2023-02 (Issaquah)","|Complete|","19.0" +"`P2675R1 `__","``format``'s width estimation is too approximate and not forward compatible","2023-02 (Issaquah)","|Complete|","17.0" +"`P2572R1 `__","``std::format`` fill character allowances","2023-02 (Issaquah)","|Complete|","17.0" +"`P2693R1 `__","Formatting ``thread::id`` and ``stacktrace``","2023-02 (Issaquah)","|Partial| [#note-P2693R1]_","" +"`P2679R2 `__","Fixing ``std::start_lifetime_as`` for arrays","2023-02 (Issaquah)","","" +"`P2674R1 `__","A trait for implicit lifetime types","2023-02 (Issaquah)","","" +"`P2655R3 `__","``common_reference_t`` of ``reference_wrapper`` Should Be a Reference Type","2023-02 (Issaquah)","","" +"`P2652R2 `__","Disallow User Specialization of ``allocator_traits``","2023-02 (Issaquah)","|Complete|","19.0" +"`P2787R1 `__","``pmr::generator`` - Promise Types are not Values","2023-02 (Issaquah)","","" +"`P2614R2 `__","Deprecate ``numeric_limits::has_denorm``","2023-02 (Issaquah)","|Complete|","18.0" +"`P2588R3 `__","``barrier``โ€™s phase completion guarantees","2023-02 (Issaquah)","","" +"`P2763R1 `__","``layout_stride`` static extents default constructor fix","2023-02 (Issaquah)","","" +"`P2736R2 `__","Referencing The Unicode Standard","2023-02 (Issaquah)","|Complete|","19.0" diff --git a/libcxx/docs/Status/Cxx2cIssues.csv b/libcxx/docs/Status/Cxx2cIssues.csv index be0621caaa9c69..41c0d56a2a2a0e 100644 --- a/libcxx/docs/Status/Cxx2cIssues.csv +++ b/libcxx/docs/Status/Cxx2cIssues.csv @@ -1,81 +1,81 @@ -"Issue #","Issue Name","Meeting","Status","First released version","Labels" -"`LWG2994 `__","Needless UB for ``basic_string`` and ``basic_string_view``","2023-06 (Varna)","|Complete|","5.0","" -"`LWG3884 `__","``flat_foo`` is missing allocator-extended copy/move constructors","2023-06 (Varna)","","","|flat_containers|" -"`LWG3885 `__","``op`` should be in [zombie.names]","2023-06 (Varna)","|Nothing To Do|","","" -"`LWG3887 `__","Version macro for ``allocate_at_least``","2023-06 (Varna)","|Complete|","19.0","" -"`LWG3893 `__","LWG 3661 broke ``atomic> a; a = nullptr;``","2023-06 (Varna)","","","" -"`LWG3894 `__","``generator::promise_type::yield_value(ranges::elements_of)`` should not be ``noexcept``","2023-06 (Varna)","","","" -"`LWG3903 `__","span destructor is redundantly noexcept","2023-06 (Varna)","|Complete|","7.0","" -"`LWG3904 `__","``lazy_split_view::outer-iterator``'s const-converting constructor isn't setting ``trailing_empty_``","2023-06 (Varna)","","","|ranges|" -"`LWG3905 `__","Type of ``std::fexcept_t``","2023-06 (Varna)","|Complete|","3.4","" -"`LWG3912 `__","``enumerate_view::iterator::operator-`` should be ``noexcept``","2023-06 (Varna)","","","|ranges|" -"`LWG3914 `__","Inconsistent template-head of ``ranges::enumerate_view``","2023-06 (Varna)","","","|ranges|" -"`LWG3915 `__","Redundant paragraph about expression variations","2023-06 (Varna)","","","|ranges|" -"`LWG3925 `__","Concept ``formattable``'s definition is incorrect","2023-06 (Varna)","|Complete|","17.0","|format|" -"`LWG3927 `__","Unclear preconditions for ``operator[]`` for sequence containers","2023-06 (Varna)","|Nothing To Do|","","" -"`LWG3935 `__","``template constexpr complex& operator=(const complex&)`` has no specification","2023-06 (Varna)","|Complete|","3.4","" -"`LWG3938 `__","Cannot use ``std::expected`` monadic ops with move-only ``error_type``","2023-06 (Varna)","|Complete|","18.0","" -"`LWG3940 `__","``std::expected::value()`` also needs ``E`` to be copy constructible","2023-06 (Varna)","|Complete|","18.0","" -"","","","","","" -"`LWG2392 `__","""character type"" is used but not defined","2023-11 (Kona)","","","" -"`LWG3203 `__","``span`` element access invalidation","2023-11 (Kona)","|Nothing To Do|","","" -"`LWG3305 `__","``any_cast``","2023-11 (Kona)","|Complete|","18.0","" -"`LWG3431 `__","``<=>`` for containers should require ``three_way_comparable`` instead of ``<=>``","2023-11 (Kona)","","","" -"`LWG3749 `__","``common_iterator`` should handle integer-class difference types","2023-11 (Kona)","","","" -"`LWG3809 `__","Is ``std::subtract_with_carry_engine`` supposed to work","2023-11 (Kona)","","","" -"`LWG3892 `__","Incorrect formatting of nested ranges and tuples","2023-11 (Kona)","|Complete|","17.0","|format|" -"`LWG3897 `__","``inout_ptr`` will not update raw pointer to 0","2023-11 (Kona)","|Complete|","19.0","" -"`LWG3946 `__","The definition of ``const_iterator_t`` should be reworked","2023-11 (Kona)","","","" -"`LWG3947 `__","Unexpected constraints on ``adjacent_transform_view::base()``","2023-11 (Kona)","","","|ranges|" -"`LWG3948 `__","``possibly-const-range and as-const-pointer`` should be ``noexcept``","2023-11 (Kona)","","","|ranges|" -"`LWG3949 `__","``std::atomic``'s trivial destructor dropped in C++17 spec wording","2023-11 (Kona)","","","" -"`LWG3951 `__","[expected.object.swap]: Using ``value()`` instead of ``has_value()``","2023-11 (Kona)","|Complete|","16.0","" -"`LWG3953 `__","``iter_move`` for ``common_iterator`` and ``counted_iterator`` should return ``decltype(auto)``","2023-11 (Kona)","","","|ranges|" -"`LWG3957 `__","[container.alloc.reqmts] The value category of v should be claimed","2023-11 (Kona)","","","" -"`LWG3965 `__","Incorrect example in [format.string.escaped] p3 for formatting of combining characters","2023-11 (Kona)","|Complete|","19.0","|format|" -"`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)","","","|flat_containers|" -"`LWG3990 `__","Program-defined specializations of ``std::tuple`` and ``std::variant`` can't be properly supported","2023-11 (Kona)","","","" -"`LWG4001 `__","``iota_view`` should provide ``empty``","2023-11 (Kona)","|Complete|","19.0","|ranges|" -"","","","","","" -"`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)","","","|ranges|" -"`LWG3950 `__","``std::basic_string_view`` comparison operators are overspecified","2024-03 (Tokyo)","|Complete|","18.0","" -"`LWG3975 `__","Specializations of ``basic_format_context`` should not be permitted","2024-03 (Tokyo)","|Nothing To Do|","","|format|" -"`LWG3984 `__","``ranges::to``'s recursion branch may be ill-formed","2024-03 (Tokyo)","|Complete|","19.0","|ranges|" -"`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)","","","|ranges|" -"`LWG4013 `__","``lazy_split_view::outer-iterator::value_type`` should not provide default constructor","2024-03 (Tokyo)","","","|ranges|" -"`LWG4016 `__","container-insertable checks do not match what container-inserter does","2024-03 (Tokyo)","","","" -"`LWG4023 `__","Preconditions of ``std::basic_streambuf::setg/setp``","2024-03 (Tokyo)","|Complete|","19.0","" -"`LWG4025 `__","Move assignment operator of ``std::expected`` should not be conditionally deleted","2024-03 (Tokyo)","","","" -"`LWG4030 `__","Clarify whether arithmetic expressions in ``[numeric.sat.func]`` are mathematical or C++","2024-03 (Tokyo)","|Nothing To Do|","","" -"`LWG4031 `__","``bad_expected_access`` member functions should be ``noexcept``","2024-03 (Tokyo)","|Complete|","16.0","" -"`LWG4035 `__","``single_view`` should provide ``empty``","2024-03 (Tokyo)","|Complete|","19.0","|ranges|" -"`LWG4036 `__","``__alignof_is_defined`` is only implicitly specified in C++ and not yet deprecated","2024-03 (Tokyo)","","","" -"`LWG4037 `__","Static data members of ``ctype_base`` are not yet required to be usable in constant expressions","2024-03 (Tokyo)","","","" -"`LWG4038 `__","``std::text_encoding::aliases_view`` should have constexpr iterators","2024-03 (Tokyo)","","","" -"`LWG4043 `__","""ASCII"" is not a registered character encoding","2024-03 (Tokyo)","|Nothing To Do|","","" -"`LWG4045 `__","``tuple`` can create dangling references from ``tuple-like``","2024-03 (Tokyo)","","","" -"`LWG4053 `__","Unary call to ``std::views::repeat`` does not decay the argument","2024-03 (Tokyo)","|Complete|","19.0","|ranges|" -"`LWG4054 `__","Repeating a ``repeat_view`` should repeat the view","2024-03 (Tokyo)","|Complete|","19.0","|ranges|" -"","","","","","" -"`LWG3944 `__","Formatters converting sequences of ``char`` to sequences of ``wchar_t``","2024-06 (St. Louis)","","","|format|" -"`LWG4060 `__","``submdspan`` preconditions do not forbid creating invalid pointer","2024-06 (St. Louis)","","","" -"`LWG4061 `__","Should ``std::basic_format_context`` be default-constructible/copyable/movable?","2024-06 (St. Louis)","|Complete|","19.0","|format|" -"`LWG4071 `__","``reference_wrapper`` comparisons are not SFINAE-friendly","2024-06 (St. Louis)","|Complete|","19.0","" -"`LWG4074 `__","``compatible-joinable-ranges`` is underconstrained","2024-06 (St. Louis)","","","|ranges|" -"`LWG4076 `__","``concat_view`` should be freestanding","2024-06 (St. Louis)","","","" -"`LWG4079 `__","Missing Preconditions in ``concat_view::iterator``\`s conversion constructor","2024-06 (St. Louis)","","","|ranges|" -"`LWG4082 `__","``views::concat(r)`` is well-formed when ``r`` is an ``output_range``","2024-06 (St. Louis)","","","|ranges|" -"`LWG4083 `__","``views::as_rvalue`` should reject non-input ranges","2024-06 (St. Louis)","","","|ranges|" -"`LWG4096 `__","``views::iota(views::iota(0))`` should be rejected","2024-06 (St. Louis)","","","|ranges|" -"`LWG4098 `__","``views::adjacent<0>`` should reject non-forward ranges","2024-06 (St. Louis)","","","|ranges|" -"`LWG4105 `__","``ranges::ends_with``\`s Returns misses difference casting","2024-06 (St. Louis)","","","|ranges|" -"`LWG4106 `__","``basic_format_args`` should not be default-constructible","2024-06 (St. Louis)","|Complete|","19.0","|format|" -"","","","","","" -"`LWG3343 `__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","Not Adopted Yet","|Complete|","16.0","" -"`LWG4139 `__","ยง[time.zone.leap] recursive constraint in <=>","Not Adopted Yet","|Complete|","20.0","" -"","","","","","" +"Issue #","Issue Name","Meeting","Status","First released version" +"`LWG2994 `__","Needless UB for ``basic_string`` and ``basic_string_view``","2023-06 (Varna)","|Complete|","5.0" +"`LWG3884 `__","``flat_foo`` is missing allocator-extended copy/move constructors","2023-06 (Varna)","","" +"`LWG3885 `__","``op`` should be in [zombie.names]","2023-06 (Varna)","|Nothing To Do|","" +"`LWG3887 `__","Version macro for ``allocate_at_least``","2023-06 (Varna)","|Complete|","19.0" +"`LWG3893 `__","LWG 3661 broke ``atomic> a; a = nullptr;``","2023-06 (Varna)","","" +"`LWG3894 `__","``generator::promise_type::yield_value(ranges::elements_of)`` should not be ``noexcept``","2023-06 (Varna)","","" +"`LWG3903 `__","span destructor is redundantly noexcept","2023-06 (Varna)","|Complete|","7.0" +"`LWG3904 `__","``lazy_split_view::outer-iterator``'s const-converting constructor isn't setting ``trailing_empty_``","2023-06 (Varna)","","" +"`LWG3905 `__","Type of ``std::fexcept_t``","2023-06 (Varna)","|Complete|","3.4" +"`LWG3912 `__","``enumerate_view::iterator::operator-`` should be ``noexcept``","2023-06 (Varna)","","" +"`LWG3914 `__","Inconsistent template-head of ``ranges::enumerate_view``","2023-06 (Varna)","","" +"`LWG3915 `__","Redundant paragraph about expression variations","2023-06 (Varna)","","" +"`LWG3925 `__","Concept ``formattable``'s definition is incorrect","2023-06 (Varna)","|Complete|","17.0" +"`LWG3927 `__","Unclear preconditions for ``operator[]`` for sequence containers","2023-06 (Varna)","|Nothing To Do|","" +"`LWG3935 `__","``template constexpr complex& operator=(const complex&)`` has no specification","2023-06 (Varna)","|Complete|","3.4" +"`LWG3938 `__","Cannot use ``std::expected`` monadic ops with move-only ``error_type``","2023-06 (Varna)","|Complete|","18.0" +"`LWG3940 `__","``std::expected::value()`` also needs ``E`` to be copy constructible","2023-06 (Varna)","|Complete|","18.0" +"","","","","" +"`LWG2392 `__","""character type"" is used but not defined","2023-11 (Kona)","","" +"`LWG3203 `__","``span`` element access invalidation","2023-11 (Kona)","|Nothing To Do|","" +"`LWG3305 `__","``any_cast``","2023-11 (Kona)","|Complete|","18.0" +"`LWG3431 `__","``<=>`` for containers should require ``three_way_comparable`` instead of ``<=>``","2023-11 (Kona)","","" +"`LWG3749 `__","``common_iterator`` should handle integer-class difference types","2023-11 (Kona)","","" +"`LWG3809 `__","Is ``std::subtract_with_carry_engine`` supposed to work","2023-11 (Kona)","","" +"`LWG3892 `__","Incorrect formatting of nested ranges and tuples","2023-11 (Kona)","|Complete|","17.0" +"`LWG3897 `__","``inout_ptr`` will not update raw pointer to 0","2023-11 (Kona)","|Complete|","19.0" +"`LWG3946 `__","The definition of ``const_iterator_t`` should be reworked","2023-11 (Kona)","","" +"`LWG3947 `__","Unexpected constraints on ``adjacent_transform_view::base()``","2023-11 (Kona)","","" +"`LWG3948 `__","``possibly-const-range and as-const-pointer`` should be ``noexcept``","2023-11 (Kona)","","" +"`LWG3949 `__","``std::atomic``'s trivial destructor dropped in C++17 spec wording","2023-11 (Kona)","","" +"`LWG3951 `__","[expected.object.swap]: Using ``value()`` instead of ``has_value()``","2023-11 (Kona)","|Complete|","16.0" +"`LWG3953 `__","``iter_move`` for ``common_iterator`` and ``counted_iterator`` should return ``decltype(auto)``","2023-11 (Kona)","","" +"`LWG3957 `__","[container.alloc.reqmts] The value category of v should be claimed","2023-11 (Kona)","","" +"`LWG3965 `__","Incorrect example in [format.string.escaped] p3 for formatting of combining characters","2023-11 (Kona)","|Complete|","19.0" +"`LWG3970 `__","[mdspan.syn] Missing definition of ``full_extent_t`` and ``full_extent``","2023-11 (Kona)","","" +"`LWG3973 `__","Monadic operations should be ADL-proof","2023-11 (Kona)","","" +"`LWG3974 `__","``mdspan::operator[]`` should not copy ``OtherIndexTypes``","2023-11 (Kona)","","" +"`LWG3987 `__","Including ```` doesn't provide ``std::begin``/``end``","2023-11 (Kona)","","" +"`LWG3990 `__","Program-defined specializations of ``std::tuple`` and ``std::variant`` can't be properly supported","2023-11 (Kona)","","" +"`LWG4001 `__","``iota_view`` should provide ``empty``","2023-11 (Kona)","|Complete|","19.0" +"","","","","" +"`LWG3767 `__","``codecvt`` incorrectly added to locale","2024-03 (Tokyo)","","" +"`LWG3919 `__","``enumerate_view`` may invoke UB for sized common non-forward underlying ranges","2024-03 (Tokyo)","","" +"`LWG3950 `__","``std::basic_string_view`` comparison operators are overspecified","2024-03 (Tokyo)","|Complete|","18.0" +"`LWG3975 `__","Specializations of ``basic_format_context`` should not be permitted","2024-03 (Tokyo)","|Nothing To Do|","" +"`LWG3984 `__","``ranges::to``'s recursion branch may be ill-formed","2024-03 (Tokyo)","|Complete|","19.0" +"`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)","","" +"`LWG4023 `__","Preconditions of ``std::basic_streambuf::setg/setp``","2024-03 (Tokyo)","|Complete|","19.0" +"`LWG4025 `__","Move assignment operator of ``std::expected`` should not be conditionally deleted","2024-03 (Tokyo)","","" +"`LWG4030 `__","Clarify whether arithmetic expressions in ``[numeric.sat.func]`` are mathematical or C++","2024-03 (Tokyo)","|Nothing To Do|","" +"`LWG4031 `__","``bad_expected_access`` member functions should be ``noexcept``","2024-03 (Tokyo)","|Complete|","16.0" +"`LWG4035 `__","``single_view`` should provide ``empty``","2024-03 (Tokyo)","|Complete|","19.0" +"`LWG4036 `__","``__alignof_is_defined`` is only implicitly specified in C++ and not yet deprecated","2024-03 (Tokyo)","","" +"`LWG4037 `__","Static data members of ``ctype_base`` are not yet required to be usable in constant expressions","2024-03 (Tokyo)","","" +"`LWG4038 `__","``std::text_encoding::aliases_view`` should have constexpr iterators","2024-03 (Tokyo)","","" +"`LWG4043 `__","""ASCII"" is not a registered character encoding","2024-03 (Tokyo)","|Nothing To Do|","" +"`LWG4045 `__","``tuple`` can create dangling references from ``tuple-like``","2024-03 (Tokyo)","","" +"`LWG4053 `__","Unary call to ``std::views::repeat`` does not decay the argument","2024-03 (Tokyo)","|Complete|","19.0" +"`LWG4054 `__","Repeating a ``repeat_view`` should repeat the view","2024-03 (Tokyo)","|Complete|","19.0" +"","","","","" +"`LWG3944 `__","Formatters converting sequences of ``char`` to sequences of ``wchar_t``","2024-06 (St. Louis)","","" +"`LWG4060 `__","``submdspan`` preconditions do not forbid creating invalid pointer","2024-06 (St. Louis)","","" +"`LWG4061 `__","Should ``std::basic_format_context`` be default-constructible/copyable/movable?","2024-06 (St. Louis)","|Complete|","19.0" +"`LWG4071 `__","``reference_wrapper`` comparisons are not SFINAE-friendly","2024-06 (St. Louis)","|Complete|","19.0" +"`LWG4074 `__","``compatible-joinable-ranges`` is underconstrained","2024-06 (St. Louis)","","" +"`LWG4076 `__","``concat_view`` should be freestanding","2024-06 (St. Louis)","","" +"`LWG4079 `__","Missing Preconditions in ``concat_view::iterator``\`s conversion constructor","2024-06 (St. Louis)","","" +"`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.0" +"","","","","" +"`LWG3343 `__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","Not Adopted Yet","|Complete|","16.0" +"`LWG4139 `__","ยง[time.zone.leap] recursive constraint in <=>","Not Adopted Yet","|Complete|","20.0" +"","","","","" diff --git a/libcxx/docs/Status/Cxx2cPapers.csv b/libcxx/docs/Status/Cxx2cPapers.csv index b0e47baa1e2759..92e6defaf0d51c 100644 --- a/libcxx/docs/Status/Cxx2cPapers.csv +++ b/libcxx/docs/Status/Cxx2cPapers.csv @@ -1,78 +1,78 @@ -"Paper #","Paper Name","Meeting","Status","First released version","Labels" -"`P2497R0 `__","Testing for success or failure of ```` functions","2023-06 (Varna)","|Complete|","18.0","" -"`P2592R3 `__","Hashing support for ``std::chrono`` value classes","2023-06 (Varna)","","","" -"`P2587R3 `__","``to_string`` or not ``to_string``","2023-06 (Varna)","","","|format|" -"`P2562R1 `__","``constexpr`` Stable Sorting","2023-06 (Varna)","","","" -"`P2545R4 `__","Read-Copy Update (RCU)","2023-06 (Varna)","","","" -"`P2530R3 `__","Hazard Pointers for C++26","2023-06 (Varna)","","","" -"`P2538R1 `__","ADL-proof ``std::projected``","2023-06 (Varna)","|Complete|","18.0","|ranges|" -"`P2495R3 `__","Interfacing ``stringstream``\s with ``string_view``","2023-06 (Varna)","|Complete|","19.0","" -"`P2510R3 `__","Formatting pointers","2023-06 (Varna)","|Complete| [#note-P2510R3]_","17.0","|format|" -"`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 `__","Mandating Annex D Require No More","2023-06 (Varna)","","","" -"`P2757R3 `__","Type-checking format args","2023-06 (Varna)","","","|format|" -"`P2637R3 `__","Member ``visit``","2023-06 (Varna)","|Complete|","19.0","" -"`P2641R4 `__","Checking if a ``union`` alternative is active","2023-06 (Varna)","","","" -"`P1759R6 `__","Native handles and file streams","2023-06 (Varna)","|Complete|","18.0","" -"`P2697R1 `__","Interfacing ``bitset`` with ``string_view``","2023-06 (Varna)","|Complete|","18.0","" -"`P1383R2 `__","More ``constexpr`` for ```` and ````","2023-06 (Varna)","","","" -"`P2734R0 `__","Adding the new SI prefixes","2023-06 (Varna)","|Complete|","17.0","" -"`P2548R6 `__","``copyable_function``","2023-06 (Varna)","","","" -"`P2714R1 `__","Bind front and back to NTTP callables","2023-06 (Varna)","","","" -"`P2630R4 `__","``submdspan``","2023-06 (Varna)","","","" -"","","","","","" -"`P0543R3 `__","Saturation arithmetic","2023-11 (Kona)","|Complete|","18.0","" -"`P2407R5 `__","Freestanding Library: Partial Classes","2023-11 (Kona)","","","" -"`P2546R5 `__","Debugging Support","2023-11 (Kona)","","","" -"`P2905R2 `__","Runtime format strings","2023-11 (Kona)","|Complete|","18.0","|format| |DR|" -"`P2918R2 `__","Runtime format strings II","2023-11 (Kona)","|Complete|","18.0","|format|" -"`P2909R4 `__","Fix formatting of code units as integers (Dude, whereโ€™s my ``char``?)","2023-11 (Kona)","|Complete|","18.0","|format| |DR|" -"`P0952R2 `__","A new specification for ``std::generate_canonical``","2023-11 (Kona)","","","" -"`P2447R6 `__","``std::span`` over an initializer list","2023-11 (Kona)","|Complete|","18.0","" -"`P2821R5 `__","``span.at()``","2023-11 (Kona)","|Complete|","18.0","" -"`P2868R3 `__","Remove Deprecated ``std::allocator`` Typedef From C++26","2023-11 (Kona)","|Complete|","18.0","" -"`P2870R3 `__","Remove ``basic_string::reserve()`` From C++26","2023-11 (Kona)","|Complete|","18.0","" -"`P2871R3 `__","Remove Deprecated Unicode Conversion Facets from C++26","2023-11 (Kona)","|Complete|","18.0","" -"`P2819R2 `__","Add tuple protocol to complex","2023-11 (Kona)","|Complete|","19.0","" -"`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)","","","|DR|" -"`P2264R7 `__","Make ``assert()`` macro user friendly for C and C++","2023-11 (Kona)","","","" -"`P1673R13 `__","A free function linear algebra interface based on the BLAS","2023-11 (Kona)","","","" -"","","","","","" -"`P2875R4 `__","Undeprecate ``polymorphic_allocator::destroy`` for C++26","2024-03 (Tokyo)","|Complete|","15.0","" -"`P2867R2 `__","Remove Deprecated ``strstreams`` From C++26","2024-03 (Tokyo)","|Complete|","19.0","" -"`P2869R4 `__","Remove Deprecated ``shared_ptr`` Atomic Access APIs from C++26","2024-03 (Tokyo)","","","" -"`P2872R3 `__","Remove ``wstring_convert`` From C++26","2024-03 (Tokyo)","|Complete|","19.0","" -"`P3107R5 `__","Permit an efficient implementation of ``std::print``","2024-03 (Tokyo)","","","|format| |DR|" -"`P3142R0 `__","Printing Blank Lines with ``println``","2024-03 (Tokyo)","|Complete| [#note-P3142R0]_","19.0","|format|" -"`P2845R8 `__","Formatting of ``std::filesystem::path``","2024-03 (Tokyo)","","","|format|" -"`P0493R5 `__","Atomic minimum/maximum","2024-03 (Tokyo)","","","" -"`P2542R8 `__","``views::concat``","2024-03 (Tokyo)","","","|ranges|" -"`P2591R5 `__","Concatenation of strings and string views","2024-03 (Tokyo)","|Complete|","19.0","" -"`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| [#note-P2944R3]_","19.0","" -"`P2642R6 `__","Padded ``mdspan`` layouts","2024-03 (Tokyo)","","","" -"`P3029R1 `__","Better ``mdspan``'s CTAD","2024-03 (Tokyo)","|Complete|","19.0","" -"","","","","","" -"`P2747R2 `__","``constexpr`` placement new","2024-06 (St. Louis)","|Complete|","20.0","" -"`P2997R1 `__","Removing the common reference requirement from the indirectly invocable concepts","2024-06 (St. Louis)","|Complete| [#note-P2997R1]_","19.0","" -"`P2389R2 `__","``dextents`` Index Type Parameter","2024-06 (St. Louis)","|Complete|","19.0","" -"`P3168R2 `__","Give ``std::optional`` Range Support","2024-06 (St. Louis)","","","|ranges|" -"`P3217R0 `__","Adjoints to 'Enabling list-initialization for algorithms': find_last","2024-06 (St. Louis)","","","" -"`P2985R0 `__","A type trait for detecting virtual base classes","2024-06 (St. Louis)","|Complete|","20.0","" -"`P0843R14 `__","``inplace_vector``","2024-06 (St. Louis)","","","" -"`P3235R3 `__","``std::print`` more types faster with less memory","2024-06 (St. Louis)","","","|format| |DR|" -"`P2968R2 `__","Make ``std::ignore`` a first-class object","2024-06 (St. Louis)","|Complete|","19.0","" -"`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| [#note-P2422R1]_","19.0","" -"`P2300R10 `__","``std::execution``","2024-06 (St. Louis)","","","" -"","","","","","" +"Paper #","Paper Name","Meeting","Status","First released version" +"`P2497R0 `__","Testing for success or failure of ```` functions","2023-06 (Varna)","|Complete|","18.0" +"`P2592R3 `__","Hashing support for ``std::chrono`` value classes","2023-06 (Varna)","","" +"`P2587R3 `__","``to_string`` or not ``to_string``","2023-06 (Varna)","","" +"`P2562R1 `__","``constexpr`` Stable Sorting","2023-06 (Varna)","","" +"`P2545R4 `__","Read-Copy Update (RCU)","2023-06 (Varna)","","" +"`P2530R3 `__","Hazard Pointers for C++26","2023-06 (Varna)","","" +"`P2538R1 `__","ADL-proof ``std::projected``","2023-06 (Varna)","|Complete|","18.0" +"`P2495R3 `__","Interfacing ``stringstream``\s with ``string_view``","2023-06 (Varna)","|Complete|","19.0" +"`P2510R3 `__","Formatting pointers","2023-06 (Varna)","|Complete| [#note-P2510R3]_","17.0" +"`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 `__","Mandating Annex D Require No More","2023-06 (Varna)","","" +"`P2757R3 `__","Type-checking format args","2023-06 (Varna)","","" +"`P2637R3 `__","Member ``visit``","2023-06 (Varna)","|Complete|","19.0" +"`P2641R4 `__","Checking if a ``union`` alternative is active","2023-06 (Varna)","","" +"`P1759R6 `__","Native handles and file streams","2023-06 (Varna)","|Complete|","18.0" +"`P2697R1 `__","Interfacing ``bitset`` with ``string_view``","2023-06 (Varna)","|Complete|","18.0" +"`P1383R2 `__","More ``constexpr`` for ```` and ````","2023-06 (Varna)","","" +"`P2734R0 `__","Adding the new SI prefixes","2023-06 (Varna)","|Complete|","17.0" +"`P2548R6 `__","``copyable_function``","2023-06 (Varna)","","" +"`P2714R1 `__","Bind front and back to NTTP callables","2023-06 (Varna)","","" +"`P2630R4 `__","``submdspan``","2023-06 (Varna)","","" +"","","","","" +"`P0543R3 `__","Saturation arithmetic","2023-11 (Kona)","|Complete|","18.0" +"`P2407R5 `__","Freestanding Library: Partial Classes","2023-11 (Kona)","","" +"`P2546R5 `__","Debugging Support","2023-11 (Kona)","","" +"`P2905R2 `__","Runtime format strings","2023-11 (Kona)","|Complete|","18.0" +"`P2918R2 `__","Runtime format strings II","2023-11 (Kona)","|Complete|","18.0" +"`P2909R4 `__","Fix formatting of code units as integers (Dude, whereโ€™s my ``char``?)","2023-11 (Kona)","|Complete|","18.0" +"`P0952R2 `__","A new specification for ``std::generate_canonical``","2023-11 (Kona)","","" +"`P2447R6 `__","``std::span`` over an initializer list","2023-11 (Kona)","|Complete|","18.0" +"`P2821R5 `__","``span.at()``","2023-11 (Kona)","|Complete|","18.0" +"`P2868R3 `__","Remove Deprecated ``std::allocator`` Typedef From C++26","2023-11 (Kona)","|Complete|","18.0" +"`P2870R3 `__","Remove ``basic_string::reserve()`` From C++26","2023-11 (Kona)","|Complete|","18.0" +"`P2871R3 `__","Remove Deprecated Unicode Conversion Facets from C++26","2023-11 (Kona)","|Complete|","18.0" +"`P2819R2 `__","Add tuple protocol to complex","2023-11 (Kona)","|Complete|","19.0" +"`P2937R0 `__","Freestanding: Remove ``strtok``","2023-11 (Kona)","","" +"`P2833R2 `__","Freestanding Library: inout expected span","2023-11 (Kona)","","" +"`P2836R1 `__","``std::basic_const_iterator`` should follow its underlying type's convertibility","2023-11 (Kona)","","" +"`P2264R7 `__","Make ``assert()`` macro user friendly for C and C++","2023-11 (Kona)","","" +"`P1673R13 `__","A free function linear algebra interface based on the BLAS","2023-11 (Kona)","","" +"","","","","" +"`P2875R4 `__","Undeprecate ``polymorphic_allocator::destroy`` for C++26","2024-03 (Tokyo)","|Complete|","15.0" +"`P2867R2 `__","Remove Deprecated ``strstreams`` From C++26","2024-03 (Tokyo)","|Complete|","19.0" +"`P2869R4 `__","Remove Deprecated ``shared_ptr`` Atomic Access APIs from C++26","2024-03 (Tokyo)","","" +"`P2872R3 `__","Remove ``wstring_convert`` From C++26","2024-03 (Tokyo)","|Complete|","19.0" +"`P3107R5 `__","Permit an efficient implementation of ``std::print``","2024-03 (Tokyo)","","" +"`P3142R0 `__","Printing Blank Lines with ``println``","2024-03 (Tokyo)","|Complete| [#note-P3142R0]_","19.0" +"`P2845R8 `__","Formatting of ``std::filesystem::path``","2024-03 (Tokyo)","","" +"`P0493R5 `__","Atomic minimum/maximum","2024-03 (Tokyo)","","" +"`P2542R8 `__","``views::concat``","2024-03 (Tokyo)","","" +"`P2591R5 `__","Concatenation of strings and string views","2024-03 (Tokyo)","|Complete|","19.0" +"`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| [#note-P2944R3]_","19.0" +"`P2642R6 `__","Padded ``mdspan`` layouts","2024-03 (Tokyo)","","" +"`P3029R1 `__","Better ``mdspan``'s CTAD","2024-03 (Tokyo)","|Complete|","19.0" +"","","","","" +"`P2747R2 `__","``constexpr`` placement new","2024-06 (St. Louis)","|Complete|","20.0" +"`P2997R1 `__","Removing the common reference requirement from the indirectly invocable concepts","2024-06 (St. Louis)","|Complete| [#note-P2997R1]_","19.0" +"`P2389R2 `__","``dextents`` Index Type Parameter","2024-06 (St. Louis)","|Complete|","19.0" +"`P3168R2 `__","Give ``std::optional`` Range Support","2024-06 (St. Louis)","","" +"`P3217R0 `__","Adjoints to 'Enabling list-initialization for algorithms': find_last","2024-06 (St. Louis)","","" +"`P2985R0 `__","A type trait for detecting virtual base classes","2024-06 (St. Louis)","|Complete|","20.0" +"`P0843R14 `__","``inplace_vector``","2024-06 (St. Louis)","","" +"`P3235R3 `__","``std::print`` more types faster with less memory","2024-06 (St. Louis)","","" +"`P2968R2 `__","Make ``std::ignore`` a first-class object","2024-06 (St. Louis)","|Complete|","19.0" +"`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| [#note-P2422R1]_","19.0" +"`P2300R10 `__","``std::execution``","2024-06 (St. Louis)","","" +"","","","","" From 9f18112d5d2ccf91511d62ff682e72b1887c3167 Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Wed, 28 Aug 2024 11:18:01 -0400 Subject: [PATCH 3/6] Add empty Notes entries in the CSV --- libcxx/docs/Status/Cxx17Issues.csv | 628 ++++++++++++++--------------- 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 | 246 +++++------ libcxx/docs/Status/Cxx2cIssues.csv | 162 ++++---- libcxx/docs/Status/Cxx2cPapers.csv | 156 +++---- 8 files changed, 1525 insertions(+), 1525 deletions(-) diff --git a/libcxx/docs/Status/Cxx17Issues.csv b/libcxx/docs/Status/Cxx17Issues.csv index efedd4b004f38e..5288d8301f2e8c 100644 --- a/libcxx/docs/Status/Cxx17Issues.csv +++ b/libcxx/docs/Status/Cxx17Issues.csv @@ -1,314 +1,314 @@ -"Issue #","Issue Name","Meeting","Status","First released version" -"`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|","" -"`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.0" -"`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)","","" -"`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)","","" -"`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.0" -"`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.0" -"`LWG2569 `__","conjunction and disjunction requirements are too strict","2016-11 (Issaquah)","|Complete|","15.0" -"`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| [#note-LWG2587]_","" -"`LWG2588 `__","[fund.ts.v2] ""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do| [#note-LWG2588]_","" -"`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|","" -"`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.0" -"`LWG2875 `__","shared_ptr::shared_ptr(Y\*, D, [|hellip|\ ]) constructors should be constrained","2017-02 (Kona)","|Complete|","" -"`LWG2876 `__","``shared_ptr::shared_ptr(const weak_ptr&)``\ constructor should be constrained","2017-02 (Kona)","|Complete|","14.0" -"`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|","" -"`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| [#note-LWG2955]_","" -"`LWG2956 `__","``filesystem::canonical()``\ still defined in terms of ``absolute(p, base)``\ ","2017-07 (Toronto)","|Complete|","" +"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|","","" +"`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.0","" +"`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)","","","" +"`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)","","","" +"`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.0","" +"`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.0","" +"`LWG2569 `__","conjunction and disjunction requirements are too strict","2016-11 (Issaquah)","|Complete|","15.0","" +"`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| [#note-LWG2587]_","","" +"`LWG2588 `__","[fund.ts.v2] ""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do| [#note-LWG2588]_","","" +"`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|","","" +"`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.0","" +"`LWG2875 `__","shared_ptr::shared_ptr(Y\*, D, [|hellip|\ ]) constructors should be constrained","2017-02 (Kona)","|Complete|","","" +"`LWG2876 `__","``shared_ptr::shared_ptr(const weak_ptr&)``\ constructor should be constrained","2017-02 (Kona)","|Complete|","14.0","" +"`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|","","" +"`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| [#note-LWG2955]_","","" +"`LWG2956 `__","``filesystem::canonical()``\ still defined in terms of ``absolute(p, base)``\ ","2017-07 (Toronto)","|Complete|","","" diff --git a/libcxx/docs/Status/Cxx17Papers.csv b/libcxx/docs/Status/Cxx17Papers.csv index 507bb0ee02b682..bae771c4ff07bb 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" -"`N3911 `__","TransformationTrait Alias ``void_t``\ .","2014-11 (Urbana)","|Complete|","3.6" -"`N4089 `__","Safe conversions in ``unique_ptr``\ .","2014-11 (Urbana)","|In Progress|","3.9" -"`N4169 `__","A proposal to add invoke function template","2014-11 (Urbana)","|Complete|","3.7" -"`N4190 `__","Removing auto_ptr, random_shuffle(), And Old Stuff.","2014-11 (Urbana)","|Complete|","15.0" -"`N4258 `__","Cleaning-up noexcept in the Library.","2014-11 (Urbana)","|In Progress|","3.7" -"`N4259 `__","Wording for std::uncaught_exceptions","2014-11 (Urbana)","|Complete| [#note-N4259]_","3.7" -"`N4277 `__","TriviallyCopyable ``reference_wrapper``\ .","2014-11 (Urbana)","|Complete|","3.2" -"`N4279 `__","Improved insertion interface for unique-key maps.","2014-11 (Urbana)","|Complete|","3.7" -"`N4280 `__","Non-member size() and more","2014-11 (Urbana)","|Complete|","3.6" -"`N4284 `__","Contiguous Iterators.","2014-11 (Urbana)","|Complete|","3.6" -"`N4285 `__","Cleanup for exception-specification and throw-expression.","2014-11 (Urbana)","|Complete|","4.0" -"","","","","" -"`N4387 `__","improving pair and tuple","2015-05 (Lenexa)","|Complete|","4.0" -"`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| [#note-P0156]_","" -"`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| [#note-P0226]_","" -"`P0220R1 `__","Adopt Library Fundamentals V1 TS Components for C++17","2016-02 (Jacksonville)","|Complete|","16.0" -"`P0218R1 `__","Adopt the File System TS for C++17","2016-02 (Jacksonville)","|Complete|","7.0" -"`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| [#note-P0154]_","19.0" -"`P0030R1 `__","Proposal to Introduce a 3-Argument Overload to std::hypot","2016-02 (Jacksonville)","|Complete|","3.9" -"`P0031R0 `__","A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access","2016-02 (Jacksonville)","|Complete|","4.0" -"`P0272R1 `__","Give ``std::string``\ a non-const ``.data()``\ member function","2016-02 (Jacksonville)","|Complete|","3.9" -"`P0077R2 `__","``is_callable``\ , the missing INVOKE related trait","2016-02 (Jacksonville)","|Complete|","3.9" -"","","","","" -"`P0032R3 `__","Homogeneous interface for variant, any and optional","2016-06 (Oulu)","|Complete|","4.0" -"`P0040R3 `__","Extending memory management tools","2016-06 (Oulu)","|Complete|","4.0" -"`P0063R3 `__","C++17 should refer to C11 instead of C99","2016-06 (Oulu)","|Complete|","7.0" -"`P0067R3 `__","Elementary string conversions","2016-06 (Oulu)","|Nothing To Do| [#note-P0067R3]_","n/a" -"`P0083R3 `__","Splicing Maps and Sets","2016-06 (Oulu)","|Complete|","8.0" -"`P0084R2 `__","Emplace Return Type","2016-06 (Oulu)","|Complete|","4.0" -"`P0088R3 `__","Variant: a type-safe union for C++17","2016-06 (Oulu)","|Complete|","4.0" -"`P0137R1 `__","Core Issue 1776: Replacement of class objects containing reference members","2016-06 (Oulu)","|Complete|","6.0" -"`P0163R0 `__","shared_ptr::weak_type","2016-06 (Oulu)","|Complete|","3.9" -"`P0174R2 `__","Deprecating Vestigial Library Parts in C++17","2016-06 (Oulu)","|Complete|","15.0" -"`P0175R1 `__","Synopses for the C library","2016-06 (Oulu)","","" -"`P0180R2 `__","Reserve a New Library Namespace for Future Standardization","2016-06 (Oulu)","|Nothing To Do|","n/a" -"`P0181R1 `__","Ordered by Default","2016-06 (Oulu)","|Nothing To Do| [#note-P0181]_","n/a" -"`P0209R2 `__","make_from_tuple: apply for construction","2016-06 (Oulu)","|Complete|","3.9" -"`P0219R1 `__","Relative Paths for Filesystem","2016-06 (Oulu)","|Complete|","7.0" -"`P0254R2 `__","Integrating std::string_view and std::string","2016-06 (Oulu)","|Complete|","4.0" -"`P0258R2 `__","has_unique_object_representations","2016-06 (Oulu)","|Complete|","6.0" -"`P0295R0 `__","Adopt Selected Library Fundamentals V2 Components for C++17","2016-06 (Oulu)","|Complete|","4.0" -"`P0302R1 `__","Removing Allocator Support in std::function","2016-06 (Oulu)","|Complete|","4.0" -"`P0307R2 `__","Making Optional Greater Equal Again","2016-06 (Oulu)","|Complete|","4.0" -"`P0336R1 `__","Better Names for Parallel Execution Policies in C++17","2016-06 (Oulu)","|Complete|","17.0" -"`P0337R0 `__","Delete ``operator=``\ for polymorphic_allocator","2016-06 (Oulu)","|Complete|","3.9" -"`P0346R1 `__","A Nomenclature Tweak","2016-06 (Oulu)","|Complete|","3.9" -"`P0358R1 `__","Fixes for not_fn","2016-06 (Oulu)","|Complete|","3.9" -"`P0371R1 `__","Temporarily discourage memory_order_consume","2016-06 (Oulu)","|Nothing To Do|","n/a" -"`P0392R0 `__","Adapting string_view by filesystem paths","2016-06 (Oulu)","|Complete|","4.0" -"`P0393R3 `__","Making Variant Greater Equal","2016-06 (Oulu)","|Complete|","4.0" -"`P0394R4 `__","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","2016-06 (Oulu)","|Complete|","17.0" -"","","","","" -"`P0003R5 `__","Removing Deprecated Exception Specifications from C++17","2016-11 (Issaquah)","|Complete|","5.0" -"`P0067R5 `__","Elementary string conversions, revision 5","2016-11 (Issaquah)","|Partial| [#note-P0067R5]_","" -"`P0403R1 `__","Literal suffixes for ``basic_string_view``\ ","2016-11 (Issaquah)","|Complete|","4.0" -"`P0414R2 `__","Merging shared_ptr changes from Library Fundamentals to C++17","2016-11 (Issaquah)","|Complete|","11.0" -"`P0418R2 `__","Fail or succeed: there is no atomic lattice","2016-11 (Issaquah)","","" -"`P0426R1 `__","Constexpr for ``std::char_traits``\ ","2016-11 (Issaquah)","|Complete|","4.0" -"`P0435R1 `__","Resolving LWG Issues re ``common_type``\ ","2016-11 (Issaquah)","|Complete|","4.0" -"`P0502R0 `__","Throwing out of a parallel algorithm terminates - but how?","2016-11 (Issaquah)","","" -"`P0503R0 `__","Correcting library usage of ""literal type""","2016-11 (Issaquah)","|Complete|","4.0" -"`P0504R0 `__","Revisiting in-place tag types for any/optional/variant","2016-11 (Issaquah)","|Complete|","4.0" -"`P0505R0 `__","Wording for GB 50 - constexpr for chrono","2016-11 (Issaquah)","|Complete|","4.0" -"`P0508R0 `__","Wording for GB 58 - structured bindings for node_handles","2016-11 (Issaquah)","","" -"`P0509R1 `__","Updating ""Restrictions on exception handling""","2016-11 (Issaquah)","|Nothing To Do|","n/a" -"`P0510R0 `__","Disallowing references, incomplete types, arrays, and empty variants","2016-11 (Issaquah)","|Complete|","4.0" -"`P0513R0 `__","Poisoning the Hash","2016-11 (Issaquah)","|Complete|","5.0" -"`P0516R0 `__","Clarify That shared_future's Copy Operations have Wide Contracts","2016-11 (Issaquah)","|Complete|","4.0" -"`P0517R0 `__","Make future_error Constructible","2016-11 (Issaquah)","|Complete|","4.0" -"`P0521R0 `__","Proposed Resolution for CA 14 (shared_ptr use_count/unique)","2016-11 (Issaquah)","|Complete|","18.0" -"","","","","" -"`P0156R2 `__","Variadic Lock guard(rev 5)","2017-02 (Kona)","|Complete|","5.0" -"`P0270R3 `__","Removing C dependencies from signal handler wording","2017-02 (Kona)","","" -"`P0298R3 `__","A byte type definition","2017-02 (Kona)","|Complete|","5.0" -"`P0317R1 `__","Directory Entry Caching for Filesystem","2017-02 (Kona)","|Complete|","7.0" -"`P0430R2 `__","File system library on non-POSIX-like operating systems","2017-02 (Kona)","|Complete|","7.0" -"`P0433R2 `__","Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library","2017-02 (Kona)","|Complete|","14.0" -"`P0452R1 `__","Unifying Parallel Algorithms","2017-02 (Kona)","|Partial| [#note-P0452]_","" -"`P0467R2 `__","Iterator Concerns for Parallel Algorithms","2017-02 (Kona)","|Partial|","" -"`P0492R2 `__","Proposed Resolution of C++17 National Body Comments for Filesystems","2017-02 (Kona)","|Complete|","7.0" -"`P0518R1 `__","Allowing copies as arguments to function objects given to parallel algorithms in response to CH11","2017-02 (Kona)","|Nothing To Do|","" -"`P0523R1 `__","Wording for CH 10: Complexity of parallel algorithms","2017-02 (Kona)","|Nothing To Do|","" -"`P0548R1 `__","common_type and duration","2017-02 (Kona)","|Complete|","5.0" -"`P0558R1 `__","Resolving atomic named base class inconsistencies","2017-02 (Kona)","|Complete|","" -"`P0574R1 `__","Algorithm Complexity Constraints and Parallel Overloads","2017-02 (Kona)","|Nothing To Do|","" -"`P0599R1 `__","noexcept for hash functions","2017-02 (Kona)","|Complete|","5.0" -"`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| [#note-P0607]_","6.0" -"`P0618R0 `__","Deprecating ","2017-02 (Kona)","|Complete|","15.0" -"`P0623R0 `__","Final C++17 Parallel Algorithms Fixes","2017-02 (Kona)","|Nothing To Do|","" -"","","","","" -"`P0682R1 `__","Repairing elementary string conversions","2017-07 (Toronto)","","" -"`P0739R0 `__","Some improvements to class template argument deduction integration into the standard library","2017-07 (Toronto)","|Complete|","5.0" +"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)","|In Progress|","3.9","" +"`N4169 `__","A proposal to add invoke function template","2014-11 (Urbana)","|Complete|","3.7","" +"`N4190 `__","Removing auto_ptr, random_shuffle(), And Old Stuff.","2014-11 (Urbana)","|Complete|","15.0","" +"`N4258 `__","Cleaning-up noexcept in the Library.","2014-11 (Urbana)","|In Progress|","3.7","" +"`N4259 `__","Wording for std::uncaught_exceptions","2014-11 (Urbana)","|Complete| [#note-N4259]_","3.7","" +"`N4277 `__","TriviallyCopyable ``reference_wrapper``\ .","2014-11 (Urbana)","|Complete|","3.2","" +"`N4279 `__","Improved insertion interface for unique-key maps.","2014-11 (Urbana)","|Complete|","3.7","" +"`N4280 `__","Non-member size() and more","2014-11 (Urbana)","|Complete|","3.6","" +"`N4284 `__","Contiguous Iterators.","2014-11 (Urbana)","|Complete|","3.6","" +"`N4285 `__","Cleanup for exception-specification and throw-expression.","2014-11 (Urbana)","|Complete|","4.0","" +"","","","","","" +"`N4387 `__","improving pair and tuple","2015-05 (Lenexa)","|Complete|","4.0","" +"`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| [#note-P0156]_","","" +"`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| [#note-P0226]_","","" +"`P0220R1 `__","Adopt Library Fundamentals V1 TS Components for C++17","2016-02 (Jacksonville)","|Complete|","16.0","" +"`P0218R1 `__","Adopt the File System TS for C++17","2016-02 (Jacksonville)","|Complete|","7.0","" +"`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| [#note-P0154]_","19.0","" +"`P0030R1 `__","Proposal to Introduce a 3-Argument Overload to std::hypot","2016-02 (Jacksonville)","|Complete|","3.9","" +"`P0031R0 `__","A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access","2016-02 (Jacksonville)","|Complete|","4.0","" +"`P0272R1 `__","Give ``std::string``\ a non-const ``.data()``\ member function","2016-02 (Jacksonville)","|Complete|","3.9","" +"`P0077R2 `__","``is_callable``\ , the missing INVOKE related trait","2016-02 (Jacksonville)","|Complete|","3.9","" +"","","","","","" +"`P0032R3 `__","Homogeneous interface for variant, any and optional","2016-06 (Oulu)","|Complete|","4.0","" +"`P0040R3 `__","Extending memory management tools","2016-06 (Oulu)","|Complete|","4.0","" +"`P0063R3 `__","C++17 should refer to C11 instead of C99","2016-06 (Oulu)","|Complete|","7.0","" +"`P0067R3 `__","Elementary string conversions","2016-06 (Oulu)","|Nothing To Do| [#note-P0067R3]_","n/a","" +"`P0083R3 `__","Splicing Maps and Sets","2016-06 (Oulu)","|Complete|","8.0","" +"`P0084R2 `__","Emplace Return Type","2016-06 (Oulu)","|Complete|","4.0","" +"`P0088R3 `__","Variant: a type-safe union for C++17","2016-06 (Oulu)","|Complete|","4.0","" +"`P0137R1 `__","Core Issue 1776: Replacement of class objects containing reference members","2016-06 (Oulu)","|Complete|","6.0","" +"`P0163R0 `__","shared_ptr::weak_type","2016-06 (Oulu)","|Complete|","3.9","" +"`P0174R2 `__","Deprecating Vestigial Library Parts in C++17","2016-06 (Oulu)","|Complete|","15.0","" +"`P0175R1 `__","Synopses for the C library","2016-06 (Oulu)","","","" +"`P0180R2 `__","Reserve a New Library Namespace for Future Standardization","2016-06 (Oulu)","|Nothing To Do|","n/a","" +"`P0181R1 `__","Ordered by Default","2016-06 (Oulu)","|Nothing To Do| [#note-P0181]_","n/a","" +"`P0209R2 `__","make_from_tuple: apply for construction","2016-06 (Oulu)","|Complete|","3.9","" +"`P0219R1 `__","Relative Paths for Filesystem","2016-06 (Oulu)","|Complete|","7.0","" +"`P0254R2 `__","Integrating std::string_view and std::string","2016-06 (Oulu)","|Complete|","4.0","" +"`P0258R2 `__","has_unique_object_representations","2016-06 (Oulu)","|Complete|","6.0","" +"`P0295R0 `__","Adopt Selected Library Fundamentals V2 Components for C++17","2016-06 (Oulu)","|Complete|","4.0","" +"`P0302R1 `__","Removing Allocator Support in std::function","2016-06 (Oulu)","|Complete|","4.0","" +"`P0307R2 `__","Making Optional Greater Equal Again","2016-06 (Oulu)","|Complete|","4.0","" +"`P0336R1 `__","Better Names for Parallel Execution Policies in C++17","2016-06 (Oulu)","|Complete|","17.0","" +"`P0337R0 `__","Delete ``operator=``\ for polymorphic_allocator","2016-06 (Oulu)","|Complete|","3.9","" +"`P0346R1 `__","A Nomenclature Tweak","2016-06 (Oulu)","|Complete|","3.9","" +"`P0358R1 `__","Fixes for not_fn","2016-06 (Oulu)","|Complete|","3.9","" +"`P0371R1 `__","Temporarily discourage memory_order_consume","2016-06 (Oulu)","|Nothing To Do|","n/a","" +"`P0392R0 `__","Adapting string_view by filesystem paths","2016-06 (Oulu)","|Complete|","4.0","" +"`P0393R3 `__","Making Variant Greater Equal","2016-06 (Oulu)","|Complete|","4.0","" +"`P0394R4 `__","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","2016-06 (Oulu)","|Complete|","17.0","" +"","","","","","" +"`P0003R5 `__","Removing Deprecated Exception Specifications from C++17","2016-11 (Issaquah)","|Complete|","5.0","" +"`P0067R5 `__","Elementary string conversions, revision 5","2016-11 (Issaquah)","|Partial| [#note-P0067R5]_","","" +"`P0403R1 `__","Literal suffixes for ``basic_string_view``\ ","2016-11 (Issaquah)","|Complete|","4.0","" +"`P0414R2 `__","Merging shared_ptr changes from Library Fundamentals to C++17","2016-11 (Issaquah)","|Complete|","11.0","" +"`P0418R2 `__","Fail or succeed: there is no atomic lattice","2016-11 (Issaquah)","","","" +"`P0426R1 `__","Constexpr for ``std::char_traits``\ ","2016-11 (Issaquah)","|Complete|","4.0","" +"`P0435R1 `__","Resolving LWG Issues re ``common_type``\ ","2016-11 (Issaquah)","|Complete|","4.0","" +"`P0502R0 `__","Throwing out of a parallel algorithm terminates - but how?","2016-11 (Issaquah)","","","" +"`P0503R0 `__","Correcting library usage of ""literal type""","2016-11 (Issaquah)","|Complete|","4.0","" +"`P0504R0 `__","Revisiting in-place tag types for any/optional/variant","2016-11 (Issaquah)","|Complete|","4.0","" +"`P0505R0 `__","Wording for GB 50 - constexpr for chrono","2016-11 (Issaquah)","|Complete|","4.0","" +"`P0508R0 `__","Wording for GB 58 - structured bindings for node_handles","2016-11 (Issaquah)","","","" +"`P0509R1 `__","Updating ""Restrictions on exception handling""","2016-11 (Issaquah)","|Nothing To Do|","n/a","" +"`P0510R0 `__","Disallowing references, incomplete types, arrays, and empty variants","2016-11 (Issaquah)","|Complete|","4.0","" +"`P0513R0 `__","Poisoning the Hash","2016-11 (Issaquah)","|Complete|","5.0","" +"`P0516R0 `__","Clarify That shared_future's Copy Operations have Wide Contracts","2016-11 (Issaquah)","|Complete|","4.0","" +"`P0517R0 `__","Make future_error Constructible","2016-11 (Issaquah)","|Complete|","4.0","" +"`P0521R0 `__","Proposed Resolution for CA 14 (shared_ptr use_count/unique)","2016-11 (Issaquah)","|Complete|","18.0","" +"","","","","","" +"`P0156R2 `__","Variadic Lock guard(rev 5)","2017-02 (Kona)","|Complete|","5.0","" +"`P0270R3 `__","Removing C dependencies from signal handler wording","2017-02 (Kona)","","","" +"`P0298R3 `__","A byte type definition","2017-02 (Kona)","|Complete|","5.0","" +"`P0317R1 `__","Directory Entry Caching for Filesystem","2017-02 (Kona)","|Complete|","7.0","" +"`P0430R2 `__","File system library on non-POSIX-like operating systems","2017-02 (Kona)","|Complete|","7.0","" +"`P0433R2 `__","Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library","2017-02 (Kona)","|Complete|","14.0","" +"`P0452R1 `__","Unifying Parallel Algorithms","2017-02 (Kona)","|Partial| [#note-P0452]_","","" +"`P0467R2 `__","Iterator Concerns for Parallel Algorithms","2017-02 (Kona)","|Partial|","","" +"`P0492R2 `__","Proposed Resolution of C++17 National Body Comments for Filesystems","2017-02 (Kona)","|Complete|","7.0","" +"`P0518R1 `__","Allowing copies as arguments to function objects given to parallel algorithms in response to CH11","2017-02 (Kona)","|Nothing To Do|","","" +"`P0523R1 `__","Wording for CH 10: Complexity of parallel algorithms","2017-02 (Kona)","|Nothing To Do|","","" +"`P0548R1 `__","common_type and duration","2017-02 (Kona)","|Complete|","5.0","" +"`P0558R1 `__","Resolving atomic named base class inconsistencies","2017-02 (Kona)","|Complete|","","" +"`P0574R1 `__","Algorithm Complexity Constraints and Parallel Overloads","2017-02 (Kona)","|Nothing To Do|","","" +"`P0599R1 `__","noexcept for hash functions","2017-02 (Kona)","|Complete|","5.0","" +"`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| [#note-P0607]_","6.0","" +"`P0618R0 `__","Deprecating ","2017-02 (Kona)","|Complete|","15.0","" +"`P0623R0 `__","Final C++17 Parallel Algorithms Fixes","2017-02 (Kona)","|Nothing To Do|","","" +"","","","","","" +"`P0682R1 `__","Repairing elementary string conversions","2017-07 (Toronto)","","","" +"`P0739R0 `__","Some improvements to class template argument deduction integration into the standard library","2017-07 (Toronto)","|Complete|","5.0","" diff --git a/libcxx/docs/Status/Cxx20Issues.csv b/libcxx/docs/Status/Cxx20Issues.csv index 8c1b0c16f7c89d..12327f26f83555 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" -"`LWG2070 `__","``allocate_shared``\ should use ``allocator_traits::construct``\ ","2017-07 (Toronto)","|Nothing To Do| [#note-LWG2070]_","" -"`LWG2444 `__","Inconsistent complexity for ``std::sort_heap``\ ","2017-07 (Toronto)","|Nothing To Do|","" -"`LWG2593 `__","Moved-from state of Allocators","2017-07 (Toronto)","","" -"`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.0" -"`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)","","" -"`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|","" -"`LWG2977 `__","unordered_meow::merge() has incorrect Throws: clause","2017-11 (Albuquerque)","|Nothing To Do|","" -"`LWG2978 `__","Hash support for pmr::string and friends","2017-11 (Albuquerque)","|Complete|","16.0" -"`LWG2979 `__","aligned_union should require complete object types","2017-11 (Albuquerque)","|Complete|","" -"`LWG2980 `__","Cannot compare_exchange empty pointers","2017-11 (Albuquerque)","","" -"`LWG2981 `__","Remove redundant deduction guides from standard library","2017-11 (Albuquerque)","|Nothing To Do|","" -"`LWG2982 `__","Making size_type consistent in associative container deduction guides","2017-11 (Albuquerque)","","" -"`LWG2988 `__","Clause 32 cleanup missed one typename","2017-11 (Albuquerque)","|Complete|","13.0" -"`LWG2993 `__","reference_wrapper conversion from T&&","2017-11 (Albuquerque)","|Complete|","13.0" -"`LWG2998 `__","Requirements on function objects passed to {``forward_``,}list-specific algorithms","2017-11 (Albuquerque)","|Nothing To Do|","" -"`LWG3001 `__","weak_ptr::element_type needs remove_extent_t","2017-11 (Albuquerque)","|Complete|","14.0" -"`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.0" -"`LWG3002 `__","[networking.ts] ``basic_socket_acceptor::is_open()``\ isn't ``noexcept``\ ","2018-03 (Jacksonville)","","" -"`LWG3004 `__","|sect|\ [string.capacity] and |sect|\ [vector.capacity] should specify time complexity for ``capacity()``\ ","2018-03 (Jacksonville)","|Nothing To Do|","" -"`LWG3005 `__","Destruction order of arrays by ``make_shared/allocate_shared``\ only recommended?","2018-03 (Jacksonville)","","" -"`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)","","" -"`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)","","" -"`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.0" -"`LWG3048 `__","``transform_reduce(exec, first1, last1, first2, init)``\ discards execution policy","2018-03 (Jacksonville)","|Complete|","17.0" -"`LWG3051 `__","Floating point classifications were inadvertently changed in P0175","2018-03 (Jacksonville)","|Nothing To Do|","" -"`LWG3075 `__","``basic_string``\ needs deduction guides from ``basic_string_view``\ ","2018-03 (Jacksonville)","|Complete|","" -"","","","","" -"`LWG2139 `__","What is a user-defined type?","2018-06 (Rapperswil)","","" -"`LWG2970 `__","Return type of std::visit misspecified","2018-06 (Rapperswil)","|Complete|","11.0" -"`LWG3058 `__","Parallel adjacent_difference shouldn't require creating temporaries","2018-06 (Rapperswil)","","" -"`LWG3062 `__","Unnecessary decay_t in is_execution_policy_v should be remove_cvref_t","2018-06 (Rapperswil)","|Complete|","17.0" -"`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| [#note-LWG2499]_","" -"`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| [#note-LWG2797]_","" -"`LWG2936 `__","Path comparison is defined in terms of the generic format","2018-11 (San Diego)","|Complete|","" -"`LWG2943 `__","Problematic specification of the wide version of ``basic_filebuf::open``\ ","2018-11 (San Diego)","|Nothing To Do|","" -"`LWG2960 `__","[fund.ts.v3] ``nonesuch``\ is insufficiently useless","2018-11 (San Diego)","|Complete|","" -"`LWG2995 `__","``basic_stringbuf``\ default constructor forbids it from using SSO capacity","2018-11 (San Diego)","|Complete|","20.0" -"`LWG2996 `__","Missing rvalue overloads for ``shared_ptr``\ operations","2018-11 (San Diego)","|Complete|","17.0" -"`LWG3008 `__","``make_shared``\ (sub)object destruction semantics are not specified","2018-11 (San Diego)","|Complete|","16.0" -"`LWG3022 `__","``is_convertible``\ may lead to ODR","2018-11 (San Diego)","|Nothing To Do| [#note-LWG3022]_","" -"`LWG3025 `__","Map-like container deduction guides should use ``pair``\ , not ``pair``\ ","2018-11 (San Diego)","|Complete|","" -"`LWG3031 `__","Algorithms and predicates with non-const reference arguments","2018-11 (San Diego)","","" -"`LWG3037 `__","``polymorphic_allocator``\ and incomplete types","2018-11 (San Diego)","|Complete|","16.0" -"`LWG3038 `__","``polymorphic_allocator::allocate``\ should not allow integer overflow to create vulnerabilities","2018-11 (San Diego)","|Complete|","14.0" -"`LWG3054 `__","``uninitialized_copy``\ appears to not be able to meet its exception-safety guarantee","2018-11 (San Diego)","|Nothing To Do|","" -"`LWG3065 `__","LWG 2989 missed that all ``path``\ 's other operators should be hidden friends as well","2018-11 (San Diego)","|Complete|","" -"`LWG3096 `__","``path::lexically_relative``\ is confused by trailing slashes","2018-11 (San Diego)","|Complete|","" -"`LWG3116 `__","``OUTERMOST_ALLOC_TRAITS``\ needs ``remove_reference_t``\ ","2018-11 (San Diego)","","" -"`LWG3122 `__","``__cpp_lib_chrono_udls``\ was accidentally dropped","2018-11 (San Diego)","|Complete|","" -"`LWG3127 `__","``basic_osyncstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Complete|","18.0" -"`LWG3128 `__","``strstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Nothing To Do|","" -"`LWG3129 `__","``regex_token_iterator``\ constructor uses wrong pointer arithmetic","2018-11 (San Diego)","","" -"`LWG3130 `__","|sect|\ [input.output] needs many ``addressof``\ ","2018-11 (San Diego)","|Complete|","20.0" -"`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| [#note-LWG3134]_","" -"`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.0" -"`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.0" -"`LWG3179 `__","``subrange``\ should always model ``Range``\ ","2019-02 (Kona)","|Nothing To Do|","" -"`LWG3180 `__","Inconsistently named return type for ``ranges::minmax_element``\ ","2019-02 (Kona)","|Complete|","15.0" -"`LWG3182 `__","Specification of ``Same``\ could be clearer","2019-02 (Kona)","|Complete|","15.0" -"","","","","" -"`LWG2899 `__","``is_(nothrow_)move_constructible``\ and ``tuple``\ , ``optional``\ and ``unique_ptr``\ ","2019-07 (Cologne)","","" -"`LWG3055 `__","``path::operator+=(*single-character*)``\ misspecified","2019-07 (Cologne)","|Complete|","7.0" -"`LWG3158 `__","``tuple(allocator_arg_t, const Alloc&)``\ should be conditionally explicit","2019-07 (Cologne)","|Complete|","10.0" -"`LWG3169 `__","``ranges``\ permutation generators discard useful information","2019-07 (Cologne)","|Complete|","15.0" -"`LWG3183 `__","Normative permission to specialize Ranges variable templates","2019-07 (Cologne)","|Nothing To Do|","" -"`LWG3184 `__","Inconsistencies in ``bind_front``\ wording","2019-07 (Cologne)","|Complete|","13.0" -"`LWG3185 `__","Uses-allocator construction functions missing ``constexpr``\ and ``noexcept``\ ","2019-07 (Cologne)","|Complete|","16.0" -"`LWG3186 `__","``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful information","2019-07 (Cologne)","|Complete|","15.0" -"`LWG3187 `__","`P0591R4 `__ reverted DR 2586 fixes to ``scoped_allocator_adaptor::construct()``\ ","2019-07 (Cologne)","","" -"`LWG3191 `__","``std::ranges::shuffle``\ synopsis does not match algorithm definition","2019-07 (Cologne)","|Complete|","15.0" -"`LWG3196 `__","``std::optional``\ is ill-formed is ``T``\ is an array","2019-07 (Cologne)","|Complete|","" -"`LWG3198 `__","Bad constraint on ``std::span::span()``\ ","2019-07 (Cologne)","|Complete|","" -"`LWG3199 `__","``istream >> bitset<0>``\ fails","2019-07 (Cologne)","|Complete|","10.0" -"`LWG3202 `__","P0318R1 was supposed to be revised","2019-07 (Cologne)","|Complete|","" -"`LWG3206 `__","``year_month_day``\ conversion to ``sys_days``\ uses not-existing member function","2019-07 (Cologne)","|Complete|","" -"`LWG3208 `__","``Boolean``\ 's expression requirements are ordered inconsistently","2019-07 (Cologne)","|Nothing To Do|","" -"`LWG3209 `__","Expression in ``year::ok()``\ returns clause is ill-formed","2019-07 (Cologne)","|Complete|","" -"","","","","" -"`LWG3231 `__","``year_month_day_last::day``\ specification does not cover ``!ok()``\ values","2019-11 (Belfast)","|Nothing To Do|","" -"`LWG3225 `__","``zoned_time``\ converting constructor shall not be ``noexcept``\ ","2019-11 (Belfast)","|Complete|","19.0" -"`LWG3190 `__","``std::allocator::allocate``\ sometimes returns too little storage","2019-11 (Belfast)","|Complete|","14.0" -"`LWG3218 `__","Modifier for ``%d``\ parse flag does not match POSIX and ``format``\ specification","2019-11 (Belfast)","","" -"`LWG3224 `__","``zoned_time``\ constructor from ``TimeZonePtr``\ does not specify initialization of ``tp_``\ ","2019-11 (Belfast)","|Complete|","19.0" -"`LWG3230 `__","Format specifier ``%y/%Y``\ is missing locale alternative versions","2019-11 (Belfast)","|Complete|","16.0" -"`LWG3232 `__","Inconsistency in ``zoned_time``\ deduction guides","2019-11 (Belfast)","|Complete|","19.0" -"`LWG3222 `__","P0574R1 introduced preconditions on non-existent parameters","2019-11 (Belfast)","","" -"`LWG3221 `__","Result of ``year_month``\ arithmetic with ``months``\ is ambiguous","2019-11 (Belfast)","|Complete|","8.0" -"`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)","","" -"`LWG3245 `__","Unnecessary restriction on ``'%p'``\ parse specifier","2019-11 (Belfast)","","" -"`LWG3244 `__","Constraints for ``Source``\ in |sect|\ [fs.path.req] insufficiently constrainty","2019-11 (Belfast)","","" -"`LWG3241 `__","``chrono-spec``\ grammar ambiguity in |sect|\ [time.format]","2019-11 (Belfast)","|Complete|","16.0" -"`LWG3257 `__","Missing feature testing macro update from P0858","2019-11 (Belfast)","|Complete|","12.0" -"`LWG3256 `__","Feature testing macro for ``constexpr``\ algorithms","2019-11 (Belfast)","|Complete|","13.0" -"`LWG3273 `__","Specify ``weekday_indexed``\ to range of ``[0, 7]``\ ","2019-11 (Belfast)","|Complete|","16.0" -"`LWG3070 `__","``path::lexically_relative``\ causes surprising results if a filename can also be a *root-name*","2019-11 (Belfast)","","" -"`LWG3266 `__","``to_chars(bool)``\ should be deleted","2019-11 (Belfast)","|Complete|","14.0" -"`LWG3272 `__","``%I%p``\ should parse/format ``duration``\ since midnight","2019-11 (Belfast)","","" -"`LWG3259 `__","The definition of *constexpr iterators* should be adjusted","2019-11 (Belfast)","|Nothing To Do|","" -"`LWG3103 `__","Errors in taking subview of ``span``\ should be ill-formed where possible","2019-11 (Belfast)","|Complete|","11.0" -"`LWG3274 `__","Missing feature test macro for ````\ ","2019-11 (Belfast)","|Complete|","11.0" -"`LWG3276 `__","Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ ","2019-11 (Belfast)","|Complete|","15.0" -"`LWG3277 `__","Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ ","2019-11 (Belfast)","|Nothing To Do|","" -"`LWG3149 `__","``DefaultConstructible``\ should require default initialization","2019-11 (Belfast)","|Complete|","13.0" -"","","","","" -"`LWG1203 `__","More useful rvalue stream insertion","2020-02 (Prague)","|Complete|","12.0" -"`LWG2859 `__","Definition of *reachable* in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object","2020-02 (Prague)","","" -"`LWG3018 `__","``shared_ptr``\ of function type","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3050 `__","Conversion specification problem in ``chrono::duration``\ constructor","2020-02 (Prague)","|Complete|","19.0" -"`LWG3141 `__","``CopyConstructible``\ doesn't preserve source values","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3150 `__","``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ ","2020-02 (Prague)","|Complete|","13.0" -"`LWG3175 `__","The ``CommonReference``\ requirement of concept ``SwappableWith``\ is not satisfied in the example","2020-02 (Prague)","|Complete|","13.0" -"`LWG3194 `__","``ConvertibleTo``\ prose does not match code","2020-02 (Prague)","|Complete|","13.0" -"`LWG3200 `__","``midpoint``\ should not constrain ``T``\ is complete","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3201 `__","``lerp``\ should be marked as ``noexcept``\ ","2020-02 (Prague)","|Complete|","" -"`LWG3226 `__","``zoned_time``\ constructor from ``string_view``\ should accept ``zoned_time``\ ","2020-02 (Prague)","|Complete|","19.0" -"`LWG3233 `__","Broken requirements for ``shared_ptr``\ converting constructors","2020-02 (Prague)","|Complete|","19.0" -"`LWG3237 `__","LWG 3038 and 3190 have inconsistent PRs","2020-02 (Prague)","|Complete|","16.0" -"`LWG3238 `__","Insufficiently-defined behavior of ``std::function``\ deduction guides","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3242 `__","``std::format``\ : missing rules for ``arg-id``\ in ``width``\ and ``precision``\ ","2020-02 (Prague)","|Complete|","14.0" -"`LWG3243 `__","``std::format``\ and negative zeroes","2020-02 (Prague)","|Complete|","14.0" -"`LWG3247 `__","``ranges::iter_move``\ should perform ADL-only lookup of ``iter_move``\ ","2020-02 (Prague)","|Complete|","15.0" -"`LWG3248 `__","``std::format``\ ``#b``\ , ``#B``\ , ``#o``\ , ``#x``\ , and ``#X``\ presentation types misformat negative numbers","2020-02 (Prague)","|Complete|","14.0" -"`LWG3250 `__","``std::format``\ : ``#``\ (alternate form) for NaN and inf","2020-02 (Prague)","|Complete|","14.0" -"`LWG3251 `__","Are ``std::format``\ alignment specifiers applied to string arguments?","2020-02 (Prague)","|Complete|","14.0" -"`LWG3252 `__","Parse locale's aware modifiers for commands are not consistent with POSIX spec","2020-02 (Prague)","","" -"`LWG3254 `__","Strike ``stop_token``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17.0" -"`LWG3255 `__","``span``\ 's ``array``\ constructor is too strict","2020-02 (Prague)","|Complete|","" -"`LWG3260 `__","``year_month*``\ arithmetic rejects durations convertible to years","2020-02 (Prague)","","" -"`LWG3262 `__","Formatting of negative durations is not specified","2020-02 (Prague)","|Complete|","16.0" -"`LWG3264 `__","``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ ","2020-02 (Prague)","|Complete|","15.0" -"`LWG3269 `__","Parse manipulators do not specify the result of the extraction from stream","2020-02 (Prague)","","" -"`LWG3270 `__","Parsing and formatting ``%j``\ with ``duration``\ s","2020-02 (Prague)","|Partial|","" -"`LWG3280 `__","View converting constructors can cause constraint recursion and are unneeded","2020-02 (Prague)","|Complete|","15.0" -"`LWG3281 `__","Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion","2020-02 (Prague)","|Complete|","13.0" -"`LWG3282 `__","``subrange``\ converting constructor should disallow derived to base conversions","2020-02 (Prague)","|Complete|","15.0" -"`LWG3284 `__","``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negate","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3285 `__","The type of a customization point object shall satisfy ``semiregular``\ ","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3286 `__","``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range","2020-02 (Prague)","|Complete|","15.0" -"`LWG3291 `__","``iota_view::iterator``\ has the wrong ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0" -"`LWG3292 `__","``iota_view``\ is under-constrained","2020-02 (Prague)","|Complete|","15.0" -"`LWG3294 `__","``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ ","2020-02 (Prague)","|Complete|","19.0" -"`LWG3296 `__","Inconsistent default argument for ``basic_regex<>::assign``\ ","2020-02 (Prague)","|Complete|","" -"`LWG3299 `__","Pointers don't need customized iterator behavior","2020-02 (Prague)","|Complete|","15.0" -"`LWG3300 `__","Non-array ``ssize``\ overload is underconstrained","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3301 `__","``transform_view::iterator``\ has incorrect ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0" -"`LWG3302 `__","Range adaptor objects ``keys``\ and ``values``\ are unspecified","2020-02 (Prague)","|Complete|","16.0" -"`LWG3303 `__","Bad ""``constexpr``\ "" marker for ``destroy/destroy_n``\ ","2020-02 (Prague)","","" -"`LWG3304 `__","Allocate functions of ``std::polymorphic_allocator``\ should require ``[[nodiscard]]``\ ","2020-02 (Prague)","|Complete|","16.0" -"`LWG3307 `__","``std::allocator().allocate(n)``\ ","2020-02 (Prague)","|Complete|","20.0" -"`LWG3310 `__","Replace ``SIZE_MAX``\ with ``numeric_limits::max()``\ ","2020-02 (Prague)","|Complete|","16.0" -"`LWG3313 `__","``join_view::iterator::operator--``\ is incorrectly constrained","2020-02 (Prague)","|Complete|","14.0" -"`LWG3314 `__","Is stream insertion behavior locale dependent when ``Period::type``\ is ``micro``\ ?","2020-02 (Prague)","|Complete|","16.0" -"`LWG3315 `__","LWG3315: Correct Allocator Default Behavior","2020-02 (Prague)","|Complete|","" -"`LWG3316 `__","Correctly define epoch for ``utc_clock``\ / ``utc_timepoint``\ ","2020-02 (Prague)","","" -"`LWG3317 `__","Incorrect ``operator<<``\ for floating-point durations","2020-02 (Prague)","","" -"`LWG3318 `__","Clarify whether clocks can represent time before their epoch","2020-02 (Prague)","","" -"`LWG3319 `__","Properly reference specification of IANA time zone database","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3320 `__","``span::cbegin/cend``\ methods produce different results than ``std::[ranges::]cbegin/cend``\ ","2020-02 (Prague)","|Complete|","" -"`LWG3321 `__","``uninitialized_construct_using_allocator``\ should use ``construct_at``\ ","2020-02 (Prague)","|Complete|","16.0" -"`LWG3323 `__","``*has-tuple-element*``\ helper concept needs ``convertible_to``\ ","2020-02 (Prague)","|Complete|","16.0" -"`LWG3324 `__","Special-case ``std::strong/weak/partial_order``\ for pointers","2020-02 (Prague)","|Complete|","14.0" -"`LWG3325 `__","Constrain return type of transformation function for ``transform_view``\ ","2020-02 (Prague)","|Complete|","15.0" -"`LWG3326 `__","``enable_view``\ has false positives","2020-02 (Prague)","|Complete|","15.0" -"`LWG3327 `__","Format alignment specifiers vs. text direction","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3328 `__","Clarify that ``std::string``\ is not good for UTF-8","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3329 `__","``totally_ordered_with``\ both directly and indirectly requires ``common_reference_with``\ ","2020-02 (Prague)","|Complete|","13.0" -"`LWG3330 `__","Include ````\ from most library headers","2020-02 (Prague)","|Complete|","13.0" -"`LWG3331 `__","Define ``totally_ordered/_with``\ in terms of ``partially-ordered-with``\ ","2020-02 (Prague)","|Complete|","13.0" -"`LWG3332 `__","Issue in |sect|\ [time.format]","2020-02 (Prague)","|Complete|","16.0" -"`LWG3334 `__","``basic_osyncstream``\ move assignment and destruction calls ``basic_syncbuf::emit()``\ twice","2020-02 (Prague)","|Complete|","18.0" -"`LWG3335 `__","Resolve C++20 NB comments US 273 and GB 274","2020-02 (Prague)","|Complete|","15.0" -"`LWG3338 `__","Rename ``default_constructible``\ to ``default_initializable``\ ","2020-02 (Prague)","|Complete|","13.0" -"`LWG3340 `__","Formatting functions should throw on argument/format string mismatch in |sect|\ [format.functions]","2020-02 (Prague)","|Complete|","14.0" -"`LWG3346 `__","``pair``\ and ``tuple``\ copy and move constructor have backwards specification","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3347 `__","``std::pair``\ now requires ``T``\ and ``U``\ to be less-than-comparable","2020-02 (Prague)","|Complete|","17.0" -"`LWG3348 `__","``__cpp_lib_unwrap_ref``\ in wrong header","2020-02 (Prague)","|Complete|","12.0" -"`LWG3349 `__","Missing ``__cpp_lib_constexpr_complex``\ for P0415R1","2020-02 (Prague)","|Complete|","16.0" -"`LWG3350 `__","Simplify return type of ``lexicographical_compare_three_way``\ ","2020-02 (Prague)","|Complete|","17.0" -"`LWG3351 `__","``ranges::enable_safe_range``\ should not be constrained","2020-02 (Prague)","|Complete|","15.0" -"`LWG3352 `__","``strong_equality``\ isn't a thing","2020-02 (Prague)","|Complete|","19.0" -"`LWG3354 `__","``has_strong_structural_equality``\ has a meaningless definition","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3355 `__","The memory algorithms should support move-only input iterators introduced by P1207","2020-02 (Prague)","|Complete|","15.0" -"`LWG3356 `__","``__cpp_lib_nothrow_convertible``\ should be ``__cpp_lib_is_nothrow_convertible``\ ","2020-02 (Prague)","|Complete|","12.0" -"`LWG3358 `__","|sect|\ [span.cons] is mistaken that ``to_address``\ can throw","2020-02 (Prague)","|Complete|","17.0" -"`LWG3359 `__","````\ leap second support should allow for negative leap seconds","2020-02 (Prague)","|In Progress|","" -"`LWG3360 `__","``three_way_comparable_with``\ is inconsistent with similar concepts","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3362 `__","Strike ``stop_source``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17.0" -"`LWG3363 `__","``drop_while_view``\ should opt-out of ``sized_range``\ ","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3364 `__","Initialize data members of ranges and their iterators","2020-02 (Prague)","|Complete|","16.0" -"`LWG3367 `__","Integer-class conversions should not throw","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3369 `__","``span``\ 's deduction-guide for built-in arrays doesn't work","2020-02 (Prague)","|Complete|","14.0" -"`LWG3371 `__","``visit_format_arg``\ and ``make_format_args``\ are not hidden friends","2020-02 (Prague)","|Complete|","14.0" -"`LWG3372 `__","``vformat_to``\ should not try to deduce ``Out``\ twice","2020-02 (Prague)","|Complete|","14.0" -"`LWG3373 `__","``{to,from}_chars_result``\ and ``format_to_n_result``\ need the ""we really mean what we say"" wording","2020-02 (Prague)","|Complete|","14.0" -"`LWG3374 `__","P0653 + P1006 should have made the other ``std::to_address``\ overload ``constexpr``\ ","2020-02 (Prague)","|Complete|","12.0" -"`LWG3375 `__","``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ ","2020-02 (Prague)","|Complete|","15.0" -"`LWG3377 `__","``elements_view::iterator``\ befriends a specialization of itself","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3379 `__","""``safe``\ "" in several library names is misleading","2020-02 (Prague)","|Complete|","15.0" -"`LWG3380 `__","``common_type``\ and comparison categories","2020-02 (Prague)","|Complete|","15.0" -"`LWG3381 `__","``begin``\ and ``data``\ must agree for ``contiguous_range``\ ","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3382 `__","NTTP for ``pair``\ and ``array``\ ","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3383 `__","|sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ ","2020-02 (Prague)","|Complete|","19.0" -"`LWG3384 `__","``transform_view::*sentinel*``\ has an incorrect ``operator-``\ ","2020-02 (Prague)","|Complete|","15.0" -"`LWG3385 `__","``common_iterator``\ is not sufficiently constrained for non-copyable iterators","2020-02 (Prague)","|Complete|","15.0" -"`LWG3387 `__","|sect|\ [range.reverse.view] ``reverse_view``\ unintentionally requires ``range``\ ","2020-02 (Prague)","|Complete|","15.0" -"`LWG3388 `__","``view``\ iterator types have ill-formed ``<=>``\ operators","2020-02 (Prague)","|Complete|","16.0" -"`LWG3389 `__","A move-only iterator still does not have a ``counted_iterator``\ ","2020-02 (Prague)","|Complete|","15.0" -"`LWG3390 `__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","2020-02 (Prague)","|Complete|","14.0" -"`LWG3393 `__","Missing/incorrect feature test macro for coroutines","2020-02 (Prague)","|Complete|","14.0" -"`LWG3395 `__","LWG3395: Definition for three-way comparison needs to be updated (US 152)","2020-02 (Prague)","|Nothing To Do|","" -"`LWG3396 `__","Clarify point of reference for ``source_location::current()``\ (DE 169)","2020-02 (Prague)","|Nothing To Do|","16.0" -"`LWG3397 `__","``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ ","2020-02 (Prague)","|Complete|","16.0" -"`LWG3398 `__","``tuple_element_t``\ is also wrong for ``const subrange``\ ","2020-02 (Prague)","|Complete|","14.0" -"","","","","" -"`LWG3446 `__","``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ ","2020-11 (Virtual)","|Complete|","13.0" +"Issue #","Issue Name","Meeting","Status","First released version","Notes" +"`LWG2070 `__","``allocate_shared``\ should use ``allocator_traits::construct``\ ","2017-07 (Toronto)","|Nothing To Do| [#note-LWG2070]_","","" +"`LWG2444 `__","Inconsistent complexity for ``std::sort_heap``\ ","2017-07 (Toronto)","|Nothing To Do|","","" +"`LWG2593 `__","Moved-from state of Allocators","2017-07 (Toronto)","","","" +"`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.0","" +"`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)","","","" +"`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|","","" +"`LWG2977 `__","unordered_meow::merge() has incorrect Throws: clause","2017-11 (Albuquerque)","|Nothing To Do|","","" +"`LWG2978 `__","Hash support for pmr::string and friends","2017-11 (Albuquerque)","|Complete|","16.0","" +"`LWG2979 `__","aligned_union should require complete object types","2017-11 (Albuquerque)","|Complete|","","" +"`LWG2980 `__","Cannot compare_exchange empty pointers","2017-11 (Albuquerque)","","","" +"`LWG2981 `__","Remove redundant deduction guides from standard library","2017-11 (Albuquerque)","|Nothing To Do|","","" +"`LWG2982 `__","Making size_type consistent in associative container deduction guides","2017-11 (Albuquerque)","","","" +"`LWG2988 `__","Clause 32 cleanup missed one typename","2017-11 (Albuquerque)","|Complete|","13.0","" +"`LWG2993 `__","reference_wrapper conversion from T&&","2017-11 (Albuquerque)","|Complete|","13.0","" +"`LWG2998 `__","Requirements on function objects passed to {``forward_``,}list-specific algorithms","2017-11 (Albuquerque)","|Nothing To Do|","","" +"`LWG3001 `__","weak_ptr::element_type needs remove_extent_t","2017-11 (Albuquerque)","|Complete|","14.0","" +"`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.0","" +"`LWG3002 `__","[networking.ts] ``basic_socket_acceptor::is_open()``\ isn't ``noexcept``\ ","2018-03 (Jacksonville)","","","" +"`LWG3004 `__","|sect|\ [string.capacity] and |sect|\ [vector.capacity] should specify time complexity for ``capacity()``\ ","2018-03 (Jacksonville)","|Nothing To Do|","","" +"`LWG3005 `__","Destruction order of arrays by ``make_shared/allocate_shared``\ only recommended?","2018-03 (Jacksonville)","","","" +"`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)","","","" +"`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)","","","" +"`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.0","" +"`LWG3048 `__","``transform_reduce(exec, first1, last1, first2, init)``\ discards execution policy","2018-03 (Jacksonville)","|Complete|","17.0","" +"`LWG3051 `__","Floating point classifications were inadvertently changed in P0175","2018-03 (Jacksonville)","|Nothing To Do|","","" +"`LWG3075 `__","``basic_string``\ needs deduction guides from ``basic_string_view``\ ","2018-03 (Jacksonville)","|Complete|","","" +"","","","","","" +"`LWG2139 `__","What is a user-defined type?","2018-06 (Rapperswil)","","","" +"`LWG2970 `__","Return type of std::visit misspecified","2018-06 (Rapperswil)","|Complete|","11.0","" +"`LWG3058 `__","Parallel adjacent_difference shouldn't require creating temporaries","2018-06 (Rapperswil)","","","" +"`LWG3062 `__","Unnecessary decay_t in is_execution_policy_v should be remove_cvref_t","2018-06 (Rapperswil)","|Complete|","17.0","" +"`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| [#note-LWG2499]_","","" +"`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| [#note-LWG2797]_","","" +"`LWG2936 `__","Path comparison is defined in terms of the generic format","2018-11 (San Diego)","|Complete|","","" +"`LWG2943 `__","Problematic specification of the wide version of ``basic_filebuf::open``\ ","2018-11 (San Diego)","|Nothing To Do|","","" +"`LWG2960 `__","[fund.ts.v3] ``nonesuch``\ is insufficiently useless","2018-11 (San Diego)","|Complete|","","" +"`LWG2995 `__","``basic_stringbuf``\ default constructor forbids it from using SSO capacity","2018-11 (San Diego)","|Complete|","20.0","" +"`LWG2996 `__","Missing rvalue overloads for ``shared_ptr``\ operations","2018-11 (San Diego)","|Complete|","17.0","" +"`LWG3008 `__","``make_shared``\ (sub)object destruction semantics are not specified","2018-11 (San Diego)","|Complete|","16.0","" +"`LWG3022 `__","``is_convertible``\ may lead to ODR","2018-11 (San Diego)","|Nothing To Do| [#note-LWG3022]_","","" +"`LWG3025 `__","Map-like container deduction guides should use ``pair``\ , not ``pair``\ ","2018-11 (San Diego)","|Complete|","","" +"`LWG3031 `__","Algorithms and predicates with non-const reference arguments","2018-11 (San Diego)","","","" +"`LWG3037 `__","``polymorphic_allocator``\ and incomplete types","2018-11 (San Diego)","|Complete|","16.0","" +"`LWG3038 `__","``polymorphic_allocator::allocate``\ should not allow integer overflow to create vulnerabilities","2018-11 (San Diego)","|Complete|","14.0","" +"`LWG3054 `__","``uninitialized_copy``\ appears to not be able to meet its exception-safety guarantee","2018-11 (San Diego)","|Nothing To Do|","","" +"`LWG3065 `__","LWG 2989 missed that all ``path``\ 's other operators should be hidden friends as well","2018-11 (San Diego)","|Complete|","","" +"`LWG3096 `__","``path::lexically_relative``\ is confused by trailing slashes","2018-11 (San Diego)","|Complete|","","" +"`LWG3116 `__","``OUTERMOST_ALLOC_TRAITS``\ needs ``remove_reference_t``\ ","2018-11 (San Diego)","","","" +"`LWG3122 `__","``__cpp_lib_chrono_udls``\ was accidentally dropped","2018-11 (San Diego)","|Complete|","","" +"`LWG3127 `__","``basic_osyncstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Complete|","18.0","" +"`LWG3128 `__","``strstream::rdbuf``\ needs a ``const_cast``\ ","2018-11 (San Diego)","|Nothing To Do|","","" +"`LWG3129 `__","``regex_token_iterator``\ constructor uses wrong pointer arithmetic","2018-11 (San Diego)","","","" +"`LWG3130 `__","|sect|\ [input.output] needs many ``addressof``\ ","2018-11 (San Diego)","|Complete|","20.0","" +"`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| [#note-LWG3134]_","","" +"`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.0","" +"`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.0","" +"`LWG3179 `__","``subrange``\ should always model ``Range``\ ","2019-02 (Kona)","|Nothing To Do|","","" +"`LWG3180 `__","Inconsistently named return type for ``ranges::minmax_element``\ ","2019-02 (Kona)","|Complete|","15.0","" +"`LWG3182 `__","Specification of ``Same``\ could be clearer","2019-02 (Kona)","|Complete|","15.0","" +"","","","","","" +"`LWG2899 `__","``is_(nothrow_)move_constructible``\ and ``tuple``\ , ``optional``\ and ``unique_ptr``\ ","2019-07 (Cologne)","","","" +"`LWG3055 `__","``path::operator+=(*single-character*)``\ misspecified","2019-07 (Cologne)","|Complete|","7.0","" +"`LWG3158 `__","``tuple(allocator_arg_t, const Alloc&)``\ should be conditionally explicit","2019-07 (Cologne)","|Complete|","10.0","" +"`LWG3169 `__","``ranges``\ permutation generators discard useful information","2019-07 (Cologne)","|Complete|","15.0","" +"`LWG3183 `__","Normative permission to specialize Ranges variable templates","2019-07 (Cologne)","|Nothing To Do|","","" +"`LWG3184 `__","Inconsistencies in ``bind_front``\ wording","2019-07 (Cologne)","|Complete|","13.0","" +"`LWG3185 `__","Uses-allocator construction functions missing ``constexpr``\ and ``noexcept``\ ","2019-07 (Cologne)","|Complete|","16.0","" +"`LWG3186 `__","``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful information","2019-07 (Cologne)","|Complete|","15.0","" +"`LWG3187 `__","`P0591R4 `__ reverted DR 2586 fixes to ``scoped_allocator_adaptor::construct()``\ ","2019-07 (Cologne)","","","" +"`LWG3191 `__","``std::ranges::shuffle``\ synopsis does not match algorithm definition","2019-07 (Cologne)","|Complete|","15.0","" +"`LWG3196 `__","``std::optional``\ is ill-formed is ``T``\ is an array","2019-07 (Cologne)","|Complete|","","" +"`LWG3198 `__","Bad constraint on ``std::span::span()``\ ","2019-07 (Cologne)","|Complete|","","" +"`LWG3199 `__","``istream >> bitset<0>``\ fails","2019-07 (Cologne)","|Complete|","10.0","" +"`LWG3202 `__","P0318R1 was supposed to be revised","2019-07 (Cologne)","|Complete|","","" +"`LWG3206 `__","``year_month_day``\ conversion to ``sys_days``\ uses not-existing member function","2019-07 (Cologne)","|Complete|","","" +"`LWG3208 `__","``Boolean``\ 's expression requirements are ordered inconsistently","2019-07 (Cologne)","|Nothing To Do|","","" +"`LWG3209 `__","Expression in ``year::ok()``\ returns clause is ill-formed","2019-07 (Cologne)","|Complete|","","" +"","","","","","" +"`LWG3231 `__","``year_month_day_last::day``\ specification does not cover ``!ok()``\ values","2019-11 (Belfast)","|Nothing To Do|","","" +"`LWG3225 `__","``zoned_time``\ converting constructor shall not be ``noexcept``\ ","2019-11 (Belfast)","|Complete|","19.0","" +"`LWG3190 `__","``std::allocator::allocate``\ sometimes returns too little storage","2019-11 (Belfast)","|Complete|","14.0","" +"`LWG3218 `__","Modifier for ``%d``\ parse flag does not match POSIX and ``format``\ specification","2019-11 (Belfast)","","","" +"`LWG3224 `__","``zoned_time``\ constructor from ``TimeZonePtr``\ does not specify initialization of ``tp_``\ ","2019-11 (Belfast)","|Complete|","19.0","" +"`LWG3230 `__","Format specifier ``%y/%Y``\ is missing locale alternative versions","2019-11 (Belfast)","|Complete|","16.0","" +"`LWG3232 `__","Inconsistency in ``zoned_time``\ deduction guides","2019-11 (Belfast)","|Complete|","19.0","" +"`LWG3222 `__","P0574R1 introduced preconditions on non-existent parameters","2019-11 (Belfast)","","","" +"`LWG3221 `__","Result of ``year_month``\ arithmetic with ``months``\ is ambiguous","2019-11 (Belfast)","|Complete|","8.0","" +"`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)","","","" +"`LWG3245 `__","Unnecessary restriction on ``'%p'``\ parse specifier","2019-11 (Belfast)","","","" +"`LWG3244 `__","Constraints for ``Source``\ in |sect|\ [fs.path.req] insufficiently constrainty","2019-11 (Belfast)","","","" +"`LWG3241 `__","``chrono-spec``\ grammar ambiguity in |sect|\ [time.format]","2019-11 (Belfast)","|Complete|","16.0","" +"`LWG3257 `__","Missing feature testing macro update from P0858","2019-11 (Belfast)","|Complete|","12.0","" +"`LWG3256 `__","Feature testing macro for ``constexpr``\ algorithms","2019-11 (Belfast)","|Complete|","13.0","" +"`LWG3273 `__","Specify ``weekday_indexed``\ to range of ``[0, 7]``\ ","2019-11 (Belfast)","|Complete|","16.0","" +"`LWG3070 `__","``path::lexically_relative``\ causes surprising results if a filename can also be a *root-name*","2019-11 (Belfast)","","","" +"`LWG3266 `__","``to_chars(bool)``\ should be deleted","2019-11 (Belfast)","|Complete|","14.0","" +"`LWG3272 `__","``%I%p``\ should parse/format ``duration``\ since midnight","2019-11 (Belfast)","","","" +"`LWG3259 `__","The definition of *constexpr iterators* should be adjusted","2019-11 (Belfast)","|Nothing To Do|","","" +"`LWG3103 `__","Errors in taking subview of ``span``\ should be ill-formed where possible","2019-11 (Belfast)","|Complete|","11.0","" +"`LWG3274 `__","Missing feature test macro for ````\ ","2019-11 (Belfast)","|Complete|","11.0","" +"`LWG3276 `__","Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ ","2019-11 (Belfast)","|Complete|","15.0","" +"`LWG3277 `__","Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ ","2019-11 (Belfast)","|Nothing To Do|","","" +"`LWG3149 `__","``DefaultConstructible``\ should require default initialization","2019-11 (Belfast)","|Complete|","13.0","" +"","","","","","" +"`LWG1203 `__","More useful rvalue stream insertion","2020-02 (Prague)","|Complete|","12.0","" +"`LWG2859 `__","Definition of *reachable* in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object","2020-02 (Prague)","","","" +"`LWG3018 `__","``shared_ptr``\ of function type","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3050 `__","Conversion specification problem in ``chrono::duration``\ constructor","2020-02 (Prague)","|Complete|","19.0","" +"`LWG3141 `__","``CopyConstructible``\ doesn't preserve source values","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3150 `__","``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ ","2020-02 (Prague)","|Complete|","13.0","" +"`LWG3175 `__","The ``CommonReference``\ requirement of concept ``SwappableWith``\ is not satisfied in the example","2020-02 (Prague)","|Complete|","13.0","" +"`LWG3194 `__","``ConvertibleTo``\ prose does not match code","2020-02 (Prague)","|Complete|","13.0","" +"`LWG3200 `__","``midpoint``\ should not constrain ``T``\ is complete","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3201 `__","``lerp``\ should be marked as ``noexcept``\ ","2020-02 (Prague)","|Complete|","","" +"`LWG3226 `__","``zoned_time``\ constructor from ``string_view``\ should accept ``zoned_time``\ ","2020-02 (Prague)","|Complete|","19.0","" +"`LWG3233 `__","Broken requirements for ``shared_ptr``\ converting constructors","2020-02 (Prague)","|Complete|","19.0","" +"`LWG3237 `__","LWG 3038 and 3190 have inconsistent PRs","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3238 `__","Insufficiently-defined behavior of ``std::function``\ deduction guides","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3242 `__","``std::format``\ : missing rules for ``arg-id``\ in ``width``\ and ``precision``\ ","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3243 `__","``std::format``\ and negative zeroes","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3247 `__","``ranges::iter_move``\ should perform ADL-only lookup of ``iter_move``\ ","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3248 `__","``std::format``\ ``#b``\ , ``#B``\ , ``#o``\ , ``#x``\ , and ``#X``\ presentation types misformat negative numbers","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3250 `__","``std::format``\ : ``#``\ (alternate form) for NaN and inf","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3251 `__","Are ``std::format``\ alignment specifiers applied to string arguments?","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3252 `__","Parse locale's aware modifiers for commands are not consistent with POSIX spec","2020-02 (Prague)","","","" +"`LWG3254 `__","Strike ``stop_token``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17.0","" +"`LWG3255 `__","``span``\ 's ``array``\ constructor is too strict","2020-02 (Prague)","|Complete|","","" +"`LWG3260 `__","``year_month*``\ arithmetic rejects durations convertible to years","2020-02 (Prague)","","","" +"`LWG3262 `__","Formatting of negative durations is not specified","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3264 `__","``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ ","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3269 `__","Parse manipulators do not specify the result of the extraction from stream","2020-02 (Prague)","","","" +"`LWG3270 `__","Parsing and formatting ``%j``\ with ``duration``\ s","2020-02 (Prague)","|Partial|","","" +"`LWG3280 `__","View converting constructors can cause constraint recursion and are unneeded","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3281 `__","Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotion","2020-02 (Prague)","|Complete|","13.0","" +"`LWG3282 `__","``subrange``\ converting constructor should disallow derived to base conversions","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3284 `__","``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negate","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3285 `__","The type of a customization point object shall satisfy ``semiregular``\ ","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3286 `__","``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input range","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3291 `__","``iota_view::iterator``\ has the wrong ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3292 `__","``iota_view``\ is under-constrained","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3294 `__","``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ ","2020-02 (Prague)","|Complete|","19.0","" +"`LWG3296 `__","Inconsistent default argument for ``basic_regex<>::assign``\ ","2020-02 (Prague)","|Complete|","","" +"`LWG3299 `__","Pointers don't need customized iterator behavior","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3300 `__","Non-array ``ssize``\ overload is underconstrained","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3301 `__","``transform_view::iterator``\ has incorrect ``iterator_category``\ ","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3302 `__","Range adaptor objects ``keys``\ and ``values``\ are unspecified","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3303 `__","Bad ""``constexpr``\ "" marker for ``destroy/destroy_n``\ ","2020-02 (Prague)","","","" +"`LWG3304 `__","Allocate functions of ``std::polymorphic_allocator``\ should require ``[[nodiscard]]``\ ","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3307 `__","``std::allocator().allocate(n)``\ ","2020-02 (Prague)","|Complete|","20.0","" +"`LWG3310 `__","Replace ``SIZE_MAX``\ with ``numeric_limits::max()``\ ","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3313 `__","``join_view::iterator::operator--``\ is incorrectly constrained","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3314 `__","Is stream insertion behavior locale dependent when ``Period::type``\ is ``micro``\ ?","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3315 `__","LWG3315: Correct Allocator Default Behavior","2020-02 (Prague)","|Complete|","","" +"`LWG3316 `__","Correctly define epoch for ``utc_clock``\ / ``utc_timepoint``\ ","2020-02 (Prague)","","","" +"`LWG3317 `__","Incorrect ``operator<<``\ for floating-point durations","2020-02 (Prague)","","","" +"`LWG3318 `__","Clarify whether clocks can represent time before their epoch","2020-02 (Prague)","","","" +"`LWG3319 `__","Properly reference specification of IANA time zone database","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3320 `__","``span::cbegin/cend``\ methods produce different results than ``std::[ranges::]cbegin/cend``\ ","2020-02 (Prague)","|Complete|","","" +"`LWG3321 `__","``uninitialized_construct_using_allocator``\ should use ``construct_at``\ ","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3323 `__","``*has-tuple-element*``\ helper concept needs ``convertible_to``\ ","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3324 `__","Special-case ``std::strong/weak/partial_order``\ for pointers","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3325 `__","Constrain return type of transformation function for ``transform_view``\ ","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3326 `__","``enable_view``\ has false positives","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3327 `__","Format alignment specifiers vs. text direction","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3328 `__","Clarify that ``std::string``\ is not good for UTF-8","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3329 `__","``totally_ordered_with``\ both directly and indirectly requires ``common_reference_with``\ ","2020-02 (Prague)","|Complete|","13.0","" +"`LWG3330 `__","Include ````\ from most library headers","2020-02 (Prague)","|Complete|","13.0","" +"`LWG3331 `__","Define ``totally_ordered/_with``\ in terms of ``partially-ordered-with``\ ","2020-02 (Prague)","|Complete|","13.0","" +"`LWG3332 `__","Issue in |sect|\ [time.format]","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3334 `__","``basic_osyncstream``\ move assignment and destruction calls ``basic_syncbuf::emit()``\ twice","2020-02 (Prague)","|Complete|","18.0","" +"`LWG3335 `__","Resolve C++20 NB comments US 273 and GB 274","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3338 `__","Rename ``default_constructible``\ to ``default_initializable``\ ","2020-02 (Prague)","|Complete|","13.0","" +"`LWG3340 `__","Formatting functions should throw on argument/format string mismatch in |sect|\ [format.functions]","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3346 `__","``pair``\ and ``tuple``\ copy and move constructor have backwards specification","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3347 `__","``std::pair``\ now requires ``T``\ and ``U``\ to be less-than-comparable","2020-02 (Prague)","|Complete|","17.0","" +"`LWG3348 `__","``__cpp_lib_unwrap_ref``\ in wrong header","2020-02 (Prague)","|Complete|","12.0","" +"`LWG3349 `__","Missing ``__cpp_lib_constexpr_complex``\ for P0415R1","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3350 `__","Simplify return type of ``lexicographical_compare_three_way``\ ","2020-02 (Prague)","|Complete|","17.0","" +"`LWG3351 `__","``ranges::enable_safe_range``\ should not be constrained","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3352 `__","``strong_equality``\ isn't a thing","2020-02 (Prague)","|Complete|","19.0","" +"`LWG3354 `__","``has_strong_structural_equality``\ has a meaningless definition","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3355 `__","The memory algorithms should support move-only input iterators introduced by P1207","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3356 `__","``__cpp_lib_nothrow_convertible``\ should be ``__cpp_lib_is_nothrow_convertible``\ ","2020-02 (Prague)","|Complete|","12.0","" +"`LWG3358 `__","|sect|\ [span.cons] is mistaken that ``to_address``\ can throw","2020-02 (Prague)","|Complete|","17.0","" +"`LWG3359 `__","````\ leap second support should allow for negative leap seconds","2020-02 (Prague)","|In Progress|","","" +"`LWG3360 `__","``three_way_comparable_with``\ is inconsistent with similar concepts","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3362 `__","Strike ``stop_source``\ 's ``operator!=``\ ","2020-02 (Prague)","|Complete|","17.0","" +"`LWG3363 `__","``drop_while_view``\ should opt-out of ``sized_range``\ ","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3364 `__","Initialize data members of ranges and their iterators","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3367 `__","Integer-class conversions should not throw","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3369 `__","``span``\ 's deduction-guide for built-in arrays doesn't work","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3371 `__","``visit_format_arg``\ and ``make_format_args``\ are not hidden friends","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3372 `__","``vformat_to``\ should not try to deduce ``Out``\ twice","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3373 `__","``{to,from}_chars_result``\ and ``format_to_n_result``\ need the ""we really mean what we say"" wording","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3374 `__","P0653 + P1006 should have made the other ``std::to_address``\ overload ``constexpr``\ ","2020-02 (Prague)","|Complete|","12.0","" +"`LWG3375 `__","``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ ","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3377 `__","``elements_view::iterator``\ befriends a specialization of itself","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3379 `__","""``safe``\ "" in several library names is misleading","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3380 `__","``common_type``\ and comparison categories","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3381 `__","``begin``\ and ``data``\ must agree for ``contiguous_range``\ ","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3382 `__","NTTP for ``pair``\ and ``array``\ ","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3383 `__","|sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ ","2020-02 (Prague)","|Complete|","19.0","" +"`LWG3384 `__","``transform_view::*sentinel*``\ has an incorrect ``operator-``\ ","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3385 `__","``common_iterator``\ is not sufficiently constrained for non-copyable iterators","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3387 `__","|sect|\ [range.reverse.view] ``reverse_view``\ unintentionally requires ``range``\ ","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3388 `__","``view``\ iterator types have ill-formed ``<=>``\ operators","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3389 `__","A move-only iterator still does not have a ``counted_iterator``\ ","2020-02 (Prague)","|Complete|","15.0","" +"`LWG3390 `__","``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iterator","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3393 `__","Missing/incorrect feature test macro for coroutines","2020-02 (Prague)","|Complete|","14.0","" +"`LWG3395 `__","LWG3395: Definition for three-way comparison needs to be updated (US 152)","2020-02 (Prague)","|Nothing To Do|","","" +"`LWG3396 `__","Clarify point of reference for ``source_location::current()``\ (DE 169)","2020-02 (Prague)","|Nothing To Do|","16.0","" +"`LWG3397 `__","``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ ","2020-02 (Prague)","|Complete|","16.0","" +"`LWG3398 `__","``tuple_element_t``\ is also wrong for ``const subrange``\ ","2020-02 (Prague)","|Complete|","14.0","" +"","","","","","" +"`LWG3446 `__","``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ ","2020-11 (Virtual)","|Complete|","13.0","" diff --git a/libcxx/docs/Status/Cxx20Papers.csv b/libcxx/docs/Status/Cxx20Papers.csv index 90d67191f9a0c2..cace6551f3900b 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" -"`P0463R1 `__","Endian just Endian","2017-07 (Toronto)","|Complete|","7.0" -"`P0674R1 `__","Extending make_shared to Support Arrays","2017-07 (Toronto)","|Complete|","15.0" -"","","","","" -"`P0020R6 `__","Floating Point Atomic","2017-11 (Albuquerque)","|Complete|","18.0" -"`P0053R7 `__","C++ Synchronized Buffered Ostream","2017-11 (Albuquerque)","|Complete|","18.0" -"`P0202R3 `__","Add constexpr modifiers to functions in and Headers","2017-11 (Albuquerque)","|Complete|","12.0" -"`P0415R1 `__","Constexpr for ``std::complex``\ ","2017-11 (Albuquerque)","|Complete|","16.0" -"`P0439R0 `__","Make ``std::memory_order``\ a scoped enumeration","2017-11 (Albuquerque)","|Complete|","" -"`P0457R2 `__","String Prefix and Suffix Checking","2017-11 (Albuquerque)","|Complete|","6.0" -"`P0550R2 `__","Transformation Trait ``remove_cvref``\ ","2017-11 (Albuquerque)","|Complete|","6.0" -"`P0600R1 `__","nodiscard in the Library","2017-11 (Albuquerque)","|Complete|","16.0" -"`P0616R0 `__","de-pessimize legacy algorithms with std::move","2017-11 (Albuquerque)","|Complete|","12.0" -"`P0653R2 `__","Utility to convert a pointer to a raw pointer","2017-11 (Albuquerque)","|Complete|","6.0" -"`P0718R2 `__","Atomic shared_ptr","2017-11 (Albuquerque)","","" -"`P0767R1 `__","Deprecate POD","2017-11 (Albuquerque)","|Complete|","7.0" -"`P0768R1 `__","Library Support for the Spaceship (Comparison) Operator","2017-11 (Albuquerque)","|Complete|","" -"`P0777R1 `__","Treating Unnecessary ``decay``\ ","2017-11 (Albuquerque)","|Complete|","7.0" -"","","","","" -"`P0122R7 `__","","2018-03 (Jacksonville)","|Complete|","7.0" -"`P0355R7 `__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial| [#note-P0355]_","" -"`P0551R3 `__","Thou Shalt Not Specialize ``std``\ Function Templates!","2018-03 (Jacksonville)","|Complete|","11.0" -"`P0753R2 `__","Manipulators for C++ Synchronized Buffered Ostream","2018-03 (Jacksonville)","","" -"`P0754R2 `__","","2018-03 (Jacksonville)","|Complete|","7.0" -"`P0809R0 `__","Comparing Unordered Containers","2018-03 (Jacksonville)","|Nothing To Do|","" -"`P0858R0 `__","Constexpr iterator requirements","2018-03 (Jacksonville)","|Complete|","12.0" -"`P0905R1 `__","Symmetry for spaceship","2018-03 (Jacksonville)","|Complete|","7.0" -"`P0966R1 `__","``string::reserve``\ Should Not Shrink","2018-03 (Jacksonville)","|Complete| [#note-P0966]_","12.0" -"","","","","" -"`P0019R8 `__","Atomic Ref","2018-06 (Rapperswil)","|Complete|","19.0" -"`P0458R2 `__","Checking for Existence of an Element in Associative Containers","2018-06 (Rapperswil)","|Complete|","13.0" -"`P0475R1 `__","LWG 2511: guaranteed copy elision for piecewise construction","2018-06 (Rapperswil)","|Complete|","" -"`P0476R2 `__","Bit-casting object representations","2018-06 (Rapperswil)","|Complete|","14.0" -"`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| [#note-P0542]_","n/a" -"`P0556R3 `__","Integral power-of-2 operations","2018-06 (Rapperswil)","|Complete|","9.0" -"`P0619R4 `__","Reviewing Deprecated Facilities of C++17 for C++20","2018-06 (Rapperswil)","|Partial| [#note-P0619]_","" -"`P0646R1 `__","Improving the Return Value of Erase-Like Algorithms","2018-06 (Rapperswil)","|Complete|","10.0" -"`P0722R3 `__","Efficient sized delete for variable sized classes","2018-06 (Rapperswil)","|Complete|","9.0" -"`P0758R1 `__","Implicit conversion traits and utility functions","2018-06 (Rapperswil)","|Complete|","" -"`P0759R1 `__","fpos Requirements","2018-06 (Rapperswil)","|Complete|","11.0" -"`P0769R2 `__","Add shift to ","2018-06 (Rapperswil)","|Complete|","12.0" -"`P0788R3 `__","Standard Library Specification in a Concepts and Contracts World","2018-06 (Rapperswil)","|Nothing To Do| [#note-P0788]_","n/a" -"`P0879R0 `__","Constexpr for swap and swap related functions Also resolves LWG issue 2800.","2018-06 (Rapperswil)","|Complete|","13.0" -"`P0887R1 `__","The identity metafunction","2018-06 (Rapperswil)","|Complete|","8.0" -"`P0892R2 `__","explicit(bool)","2018-06 (Rapperswil)","","" -"`P0898R3 `__","Standard Library Concepts","2018-06 (Rapperswil)","|Complete|","13.0" -"`P0935R0 `__","Eradicating unnecessarily explicit default constructors from the standard library","2018-06 (Rapperswil)","|Complete|","12.0" -"`P0941R2 `__","Integrating feature-test macros into the C++ WD","2018-06 (Rapperswil)","|In Progress|","" -"`P1023R0 `__","constexpr comparison operators for std::array","2018-06 (Rapperswil)","|Complete|","8.0" -"`P1025R1 `__","Update The Reference To The Unicode Standard","2018-06 (Rapperswil)","","" -"`P1120R0 `__","Consistency improvements for <=> and other comparison operators","2018-06 (Rapperswil)","","" -"","","","","" -"`P0318R1 `__","unwrap_ref_decay and unwrap_reference","2018-11 (San Diego)","|Complete|","8.0" -"`P0356R5 `__","Simplified partial function application","2018-11 (San Diego)","|Complete|","13.0" -"`P0357R3 `__","reference_wrapper for incomplete types","2018-11 (San Diego)","|Complete|","8.0" -"`P0482R6 `__","char8_t: A type for UTF-8 characters and strings","2018-11 (San Diego)","|Complete|","16.0" -"`P0487R1 `__","Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)","2018-11 (San Diego)","|Complete|","8.0" -"`P0591R4 `__","Utility functions to implement uses-allocator construction","2018-11 (San Diego)","|Partial| [#note-P0591]_","" -"`P0595R2 `__","std::is_constant_evaluated()","2018-11 (San Diego)","|Complete|","9.0" -"`P0602R4 `__","variant and optional should propagate copy/move triviality","2018-11 (San Diego)","|Complete|","8.0" -"`P0608R3 `__","A sane variant converting constructor","2018-11 (San Diego)","|Complete|","9.0" -"`P0655R1 `__","visit: Explicit Return Type for visit","2018-11 (San Diego)","|Complete|","12.0" -"`P0771R1 `__","std::function move constructor should be noexcept","2018-11 (San Diego)","|Complete|","6.0" -"`P0896R4 `__","The One Ranges Proposal","2018-11 (San Diego)","|Complete|","15.0" -"`P0899R1 `__","P0899R1 - LWG 3016 is not a defect","2018-11 (San Diego)","|Nothing To Do|","" -"`P0919R3 `__","Heterogeneous lookup for unordered containers","2018-11 (San Diego)","|Complete|","12.0" -"`P0972R0 `__"," ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept","2018-11 (San Diego)","|Complete|","8.0" -"`P1006R1 `__","Constexpr in std::pointer_traits","2018-11 (San Diego)","|Complete|","8.0" -"`P1007R3 `__","``std::assume_aligned``\ ","2018-11 (San Diego)","|Complete|","15.0" -"`P1020R1 `__","Smart pointer creation with default initialization","2018-11 (San Diego)","|Complete|","16.0" -"`P1032R1 `__","Misc constexpr bits","2018-11 (San Diego)","|Complete|","13.0" -"`P1085R2 `__","Should Span be Regular?","2018-11 (San Diego)","|Complete|","8.0" -"`P1123R0 `__","Editorial Guidance for merging P0019r8 and P0528r3","2018-11 (San Diego)","","" -"`P1148R0 `__","Cleaning up Clause 20","2018-11 (San Diego)","","" -"`P1165R1 `__","Make stateful allocator propagation more consistent for ``operator+(basic_string)``\ ","2018-11 (San Diego)","|Complete|","15.0" -"`P1209R0 `__","Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20","2018-11 (San Diego)","|Complete|","8.0" -"`P1210R0 `__","P1210R0: Completing the Rebase of Library Fundamentals, Version 3, Working Draft","2018-11 (San Diego)","|Nothing To Do|","" -"`P1236R1 `__","Alternative Wording for P0907R4 Signed Integers are Two's Complement","2018-11 (San Diego)","","" -"`P1248R1 `__","Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)","2018-11 (San Diego)","|Complete|","13.0" -"`P1285R0 `__","Improving Completeness Requirements for Type Traits","2018-11 (San Diego)","","" -"`P1353R0 `__","Missing feature test macros","2018-11 (San Diego)","|In Progress|","" -"","","","","" -"`P0339R6 `__","polymorphic_allocator<> as a vocabulary type","2019-02 (Kona)","|Complete|","16.0" -"`P0340R3 `__","Making std::underlying_type SFINAE-friendly","2019-02 (Kona)","|Complete|","9.0" -"`P0738R2 `__","I Stream, You Stream, We All Stream for istream_iterator","2019-02 (Kona)","","" -"`P0811R3 `__","Well-behaved interpolation for numbers and pointers","2019-02 (Kona)","|Complete|","9.0" -"`P0920R2 `__","Precalculated hash values in lookup","2019-02 (Kona)","|Nothing To Do| [#note-P0920]_","" -"`P1001R2 `__","Target Vectorization Policies from Parallelism V2 TS to C++20","2019-02 (Kona)","|Complete|","17.0" -"`P1024R3 `__","Usability Enhancements for std::span","2019-02 (Kona)","|Complete|","9.0" -"`P1164R1 `__","Make create_directory() Intuitive","2019-02 (Kona)","|Complete|","12.0" -"`P1227R2 `__","Signed ssize() functions, unsigned size() functions","2019-02 (Kona)","|Complete|","9.0" -"`P1252R2 `__","Ranges Design Cleanup","2019-02 (Kona)","|Complete|","15.0" -"`P1286R2 `__","Contra CWG DR1778","2019-02 (Kona)","","" -"`P1357R1 `__","Traits for [Un]bounded Arrays","2019-02 (Kona)","|Complete|","9.0" -"`P1458R1 `__","Mandating the Standard Library: Clause 16 - Language support library","2019-02 (Kona)","|Complete|","9.0" -"`P1459R1 `__","Mandating the Standard Library: Clause 18 - Diagnostics library","2019-02 (Kona)","|Complete|","9.0" -"`P1462R1 `__","Mandating the Standard Library: Clause 20 - Strings library","2019-02 (Kona)","|Complete|","9.0" -"`P1463R1 `__","Mandating the Standard Library: Clause 21 - Containers library","2019-02 (Kona)","","" -"`P1464R1 `__","Mandating the Standard Library: Clause 22 - Iterators library","2019-02 (Kona)","|Complete|","9.0" -"","","","","" -"`P0325R4 `__","to_array from LFTS with updates","2019-07 (Cologne)","|Complete|","10.0" -"`P0408R7 `__","Efficient Access to basic_stringbuf's Buffer","2019-07 (Cologne)","|Complete|","17.0" -"`P0466R5 `__","Layout-compatibility and Pointer-interconvertibility Traits","2019-07 (Cologne)","","" -"`P0553R4 `__","Bit operations","2019-07 (Cologne)","|Complete|","9.0" -"`P0631R8 `__","Math Constants","2019-07 (Cologne)","|Complete|","11.0" -"`P0645R10 `__","Text Formatting","2019-07 (Cologne)","|Complete| [#note-P0645]_","14.0" -"`P0660R10 `__","Stop Token and Joining Thread, Rev 10.","2019-07 (Cologne)","|Complete| [#note-P0660]_","18.0" -"`P0784R7 `__","More constexpr containers","2019-07 (Cologne)","|Complete|","12.0" -"`P0980R1 `__","Making std::string constexpr","2019-07 (Cologne)","|Complete|","15.0" -"`P1004R2 `__","Making std::vector constexpr","2019-07 (Cologne)","|Complete|","15.0" -"`P1035R7 `__","Input Range Adaptors","2019-07 (Cologne)","|Complete|","16.0" -"`P1065R2 `__","Constexpr INVOKE","2019-07 (Cologne)","|Complete|","12.0" -"`P1135R6 `__","The C++20 Synchronization Library","2019-07 (Cologne)","|Complete|","11.0" -"`P1207R4 `__","Movability of Single-pass Iterators","2019-07 (Cologne)","|Complete|","15.0" -"`P1208R6 `__","Adopt source_location for C++20","2019-07 (Cologne)","|Complete|","16.0" -"`P1355R2 `__","Exposing a narrow contract for ceil2","2019-07 (Cologne)","|Complete|","9.0" -"`P1361R2 `__","Integration of chrono with text formatting","2019-07 (Cologne)","|Partial|","" -"`P1423R3 `__","char8_t backward compatibility remediation","2019-07 (Cologne)","|Complete|","15.0" -"`P1424R1 `__","'constexpr' feature macro concerns","2019-07 (Cologne)","|Nothing To Do| [#note-P1424]_","" -"`P1466R3 `__","Miscellaneous minor fixes for chrono","2019-07 (Cologne)","","" -"`P1474R1 `__","Helpful pointers for ContiguousIterator","2019-07 (Cologne)","|Complete|","15.0" -"`P1502R1 `__","Standard library header units for C++20","2019-07 (Cologne)","","" -"`P1522R1 `__","Iterator Difference Type and Integer Overflow","2019-07 (Cologne)","|Complete|","15.0" -"`P1523R1 `__","Views and Size Types","2019-07 (Cologne)","|Complete|","15.0" -"`P1612R1 `__","Relocate Endian's Specification","2019-07 (Cologne)","|Complete|","10.0" -"`P1614R2 `__","The Mothership has Landed","2019-07 (Cologne)","|Complete| [#note-P1614]_","19.0" -"`P1638R1 `__","basic_istream_view::iterator should not be copyable","2019-07 (Cologne)","|Complete|","16.0" -"`P1643R1 `__","Add wait/notify to atomic_ref","2019-07 (Cologne)","|Complete|","19.0" -"`P1644R0 `__","Add wait/notify to atomic","2019-07 (Cologne)","","" -"`P1650R0 `__","Output std::chrono::days with 'd' suffix","2019-07 (Cologne)","|Complete|","16.0" -"`P1651R0 `__","bind_front should not unwrap reference_wrapper","2019-07 (Cologne)","|Complete|","13.0" -"`P1652R1 `__","Printf corner cases in std::format","2019-07 (Cologne)","|Complete|","14.0" -"`P1661R1 `__","Remove dedicated precalculated hash lookup interface","2019-07 (Cologne)","|Nothing To Do|","" -"`P1754R1 `__","Rename concepts to standard_case for C++20, while we still can","2019-07 (Cologne)","|Complete|","15.0" -"","","","","" -"`P0883R2 `__","Fixing Atomic Initialization","2019-11 (Belfast)","|Complete| [#note-P0883.1]_ [#note-P0883.2]_","14.0" -"`P1391R4 `__","Range constructor for std::string_view","2019-11 (Belfast)","|Complete|","14.0" -"`P1394R4 `__","Range constructor for std::span","2019-11 (Belfast)","|Complete|","14.0" -"`P1456R1 `__","Move-only views","2019-11 (Belfast)","|Complete|","15.0" -"`P1622R3 `__","Mandating the Standard Library: Clause 32 - Thread support library","2019-11 (Belfast)","","" -"`P1645R1 `__","constexpr for numeric algorithms","2019-11 (Belfast)","|Complete|","12.0" -"`P1686R2 `__","Mandating the Standard Library: Clause 27 - Time library","2019-11 (Belfast)","","" -"`P1690R1 `__","Refinement Proposal for P0919 Heterogeneous lookup for unordered containers","2019-11 (Belfast)","|Complete|","12.0" -"`P1716R3 `__","ranges compare algorithm are over-constrained","2019-11 (Belfast)","|Complete|","15.0" -"`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.0" -"`P1865R1 `__","Add max() to latch and barrier","2019-11 (Belfast)","|Complete|","11.0" -"`P1869R1 `__","Rename 'condition_variable_any' interruptible wait methods","2019-11 (Belfast)","","" -"`P1870R1 `__","forwarding-range is too subtle","2019-11 (Belfast)","|Complete|","15.0" -"`P1871R1 `__","Concept traits should be named after concepts","2019-11 (Belfast)","|Complete|","14.0" -"`P1872R0 `__","span should have size_type, not index_type","2019-11 (Belfast)","|Complete|","10.0" -"`P1878R1 `__","Constraining Readable Types","2019-11 (Belfast)","|Complete|","15.0" -"`P1892R1 `__","Extended locale-specific presentation specifiers for std::format","2019-11 (Belfast)","|Complete|","14.0" -"`P1902R1 `__","Missing feature-test macros 2018-2019","2019-11 (Belfast)","","" -"`P1959R0 `__","Remove std::weak_equality and std::strong_equality","2019-11 (Belfast)","|Nothing To Do|","" -"`P1960R0 `__","NB Comment Changes Reviewed by SG1","2019-11 (Belfast)","","" -"`P1961R0 `__","Harmonizing the definitions of total order for pointers","2019-11 (Belfast)","","" -"`P1965R0 `__","Blanket Wording for Specifying ""Hidden Friends""","2019-11 (Belfast)","","" -"","","","","" -"`P0586R2 `__","Safe integral comparisons","2020-02 (Prague)","|Complete|","13.0" -"`P0593R6 `__","Implicit creation of objects for low-level object manipulation","2020-02 (Prague)","","" -"`P1115R3 `__","Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if","2020-02 (Prague)","|Complete|","11.0" -"`P1243R4 `__","Rangify New Algorithms","2020-02 (Prague)","|Complete|","15.0" -"`P1460R1 `__","Mandating the Standard Library: Clause 20 - Utilities library","2020-02 (Prague)","","" -"`P1739R4 `__","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","2020-02 (Prague)","|Complete|","15.0" -"`P1831R1 `__","Deprecating volatile: library","2020-02 (Prague)","","" -"`P1868R2 `__","width: clarifying units of width and precision in std::format","2020-02 (Prague)","|Complete|","14.0" -"`P1956R1 `__","On the names of low-level bit manipulation functions","2020-02 (Prague)","|Complete|","12.0" -"`P1957R2 `__","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","2020-02 (Prague)","|Complete|","18.0" -"`P1963R0 `__","Fixing US 313","2020-02 (Prague)","","" -"`P1964R2 `__","Wording for boolean-testable","2020-02 (Prague)","|Complete|","13.0" -"`P1970R2 `__","Consistency for size() functions: Add ranges::ssize","2020-02 (Prague)","|Complete|","15.0" -"`P1973R1 `__","Rename ""_default_init"" Functions, Rev1","2020-02 (Prague)","|Complete|","16.0" -"`P1976R2 `__","Fixed-size span construction from dynamic range","2020-02 (Prague)","|Complete|","11.0" -"`P1981R0 `__","Rename leap to leap_second","2020-02 (Prague)","|Complete|","19.0" -"`P1982R0 `__","Rename link to time_zone_link","2020-02 (Prague)","|Complete|","19.0" -"`P1983R0 `__","Wording for GB301, US296, US292, US291, and US283","2020-02 (Prague)","|Complete|","15.0" -"`P1994R1 `__","elements_view needs its own sentinel","2020-02 (Prague)","|Complete|","16.0" -"`P2002R1 `__","Defaulted comparison specification cleanups","2020-02 (Prague)","|Complete|","7.0" -"`P2045R1 `__","Missing Mandates for the standard library","2020-02 (Prague)","","" -"`P2085R0 `__","Consistent defaulted comparisons","2020-02 (Prague)","","" -"`P2091R0 `__","Issues with range access CPOs","2020-02 (Prague)","|Complete|","15.0" -"`P2101R0 `__","P2101R0: 'Models' subsumes 'satisfies' (Wording for US298 and US300)","2020-02 (Prague)","|Nothing To Do|","" -"`P2102R0 `__","Make 'implicit expression variations' more explicit (Wording for US185)","2020-02 (Prague)","|Complete|","15.0" -"`P2106R0 `__","Alternative wording for GB315 and GB316","2020-02 (Prague)","|Complete|","15.0" -"`P2116R0 `__","Remove tuple-like protocol support from fixed-extent span","2020-02 (Prague)","|Complete|","11.0" -"","","","","" -"`P2231R1 `__","Missing constexpr in std::optional and std::variant","2021-06 (Virtual)","|Complete|","19.0" -"`P2325R3 `__","Views should not be required to be default constructible","2021-06 (Virtual)","|Complete|","16.0" -"`P2210R2 `__","Superior String Splitting","2021-06 (Virtual)","|Complete|","16.0" -"`P2216R3 `__","std::format improvements","2021-06 (Virtual)","|Complete|","15.0" -"`P2281R1 `__","Clarifying range adaptor objects","2021-06 (Virtual)","|Complete|","14.0" -"`P2328R1 `__","join_view should join all views of ranges","2021-06 (Virtual)","|Complete|","15.0" -"`P2367R0 `__","Remove misuses of list-initialization from Clause 24","2021-06 (Virtual)","|Complete|","15.0" -"","","","","" -"`P2372R3 `__","Fixing locale handling in chrono formatters","2021-10 (Virtual)","|In Progress|","" -"`P2415R2 `__","What is a ``view``","2021-10 (Virtual)","|Complete|","14.0" -"`P2418R2 `__","Add support for ``std::generator``-like types to ``std::format``","2021-10 (Virtual)","|Complete|","15.0" -"`P2432R1 `__","Fix ``istream_view``","2021-10 (Virtual)","|Complete|","16.0" +"Paper #","Paper Name","Meeting","Status","First released version","Notes" +"`P0463R1 `__","Endian just Endian","2017-07 (Toronto)","|Complete|","7.0","" +"`P0674R1 `__","Extending make_shared to Support Arrays","2017-07 (Toronto)","|Complete|","15.0","" +"","","","","","" +"`P0020R6 `__","Floating Point Atomic","2017-11 (Albuquerque)","|Complete|","18.0","" +"`P0053R7 `__","C++ Synchronized Buffered Ostream","2017-11 (Albuquerque)","|Complete|","18.0","" +"`P0202R3 `__","Add constexpr modifiers to functions in and Headers","2017-11 (Albuquerque)","|Complete|","12.0","" +"`P0415R1 `__","Constexpr for ``std::complex``\ ","2017-11 (Albuquerque)","|Complete|","16.0","" +"`P0439R0 `__","Make ``std::memory_order``\ a scoped enumeration","2017-11 (Albuquerque)","|Complete|","","" +"`P0457R2 `__","String Prefix and Suffix Checking","2017-11 (Albuquerque)","|Complete|","6.0","" +"`P0550R2 `__","Transformation Trait ``remove_cvref``\ ","2017-11 (Albuquerque)","|Complete|","6.0","" +"`P0600R1 `__","nodiscard in the Library","2017-11 (Albuquerque)","|Complete|","16.0","" +"`P0616R0 `__","de-pessimize legacy algorithms with std::move","2017-11 (Albuquerque)","|Complete|","12.0","" +"`P0653R2 `__","Utility to convert a pointer to a raw pointer","2017-11 (Albuquerque)","|Complete|","6.0","" +"`P0718R2 `__","Atomic shared_ptr","2017-11 (Albuquerque)","","","" +"`P0767R1 `__","Deprecate POD","2017-11 (Albuquerque)","|Complete|","7.0","" +"`P0768R1 `__","Library Support for the Spaceship (Comparison) Operator","2017-11 (Albuquerque)","|Complete|","","" +"`P0777R1 `__","Treating Unnecessary ``decay``\ ","2017-11 (Albuquerque)","|Complete|","7.0","" +"","","","","","" +"`P0122R7 `__","","2018-03 (Jacksonville)","|Complete|","7.0","" +"`P0355R7 `__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial| [#note-P0355]_","","" +"`P0551R3 `__","Thou Shalt Not Specialize ``std``\ Function Templates!","2018-03 (Jacksonville)","|Complete|","11.0","" +"`P0753R2 `__","Manipulators for C++ Synchronized Buffered Ostream","2018-03 (Jacksonville)","","","" +"`P0754R2 `__","","2018-03 (Jacksonville)","|Complete|","7.0","" +"`P0809R0 `__","Comparing Unordered Containers","2018-03 (Jacksonville)","|Nothing To Do|","","" +"`P0858R0 `__","Constexpr iterator requirements","2018-03 (Jacksonville)","|Complete|","12.0","" +"`P0905R1 `__","Symmetry for spaceship","2018-03 (Jacksonville)","|Complete|","7.0","" +"`P0966R1 `__","``string::reserve``\ Should Not Shrink","2018-03 (Jacksonville)","|Complete| [#note-P0966]_","12.0","" +"","","","","","" +"`P0019R8 `__","Atomic Ref","2018-06 (Rapperswil)","|Complete|","19.0","" +"`P0458R2 `__","Checking for Existence of an Element in Associative Containers","2018-06 (Rapperswil)","|Complete|","13.0","" +"`P0475R1 `__","LWG 2511: guaranteed copy elision for piecewise construction","2018-06 (Rapperswil)","|Complete|","","" +"`P0476R2 `__","Bit-casting object representations","2018-06 (Rapperswil)","|Complete|","14.0","" +"`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| [#note-P0542]_","n/a","" +"`P0556R3 `__","Integral power-of-2 operations","2018-06 (Rapperswil)","|Complete|","9.0","" +"`P0619R4 `__","Reviewing Deprecated Facilities of C++17 for C++20","2018-06 (Rapperswil)","|Partial| [#note-P0619]_","","" +"`P0646R1 `__","Improving the Return Value of Erase-Like Algorithms","2018-06 (Rapperswil)","|Complete|","10.0","" +"`P0722R3 `__","Efficient sized delete for variable sized classes","2018-06 (Rapperswil)","|Complete|","9.0","" +"`P0758R1 `__","Implicit conversion traits and utility functions","2018-06 (Rapperswil)","|Complete|","","" +"`P0759R1 `__","fpos Requirements","2018-06 (Rapperswil)","|Complete|","11.0","" +"`P0769R2 `__","Add shift to ","2018-06 (Rapperswil)","|Complete|","12.0","" +"`P0788R3 `__","Standard Library Specification in a Concepts and Contracts World","2018-06 (Rapperswil)","|Nothing To Do| [#note-P0788]_","n/a","" +"`P0879R0 `__","Constexpr for swap and swap related functions Also resolves LWG issue 2800.","2018-06 (Rapperswil)","|Complete|","13.0","" +"`P0887R1 `__","The identity metafunction","2018-06 (Rapperswil)","|Complete|","8.0","" +"`P0892R2 `__","explicit(bool)","2018-06 (Rapperswil)","","","" +"`P0898R3 `__","Standard Library Concepts","2018-06 (Rapperswil)","|Complete|","13.0","" +"`P0935R0 `__","Eradicating unnecessarily explicit default constructors from the standard library","2018-06 (Rapperswil)","|Complete|","12.0","" +"`P0941R2 `__","Integrating feature-test macros into the C++ WD","2018-06 (Rapperswil)","|In Progress|","","" +"`P1023R0 `__","constexpr comparison operators for std::array","2018-06 (Rapperswil)","|Complete|","8.0","" +"`P1025R1 `__","Update The Reference To The Unicode Standard","2018-06 (Rapperswil)","","","" +"`P1120R0 `__","Consistency improvements for <=> and other comparison operators","2018-06 (Rapperswil)","","","" +"","","","","","" +"`P0318R1 `__","unwrap_ref_decay and unwrap_reference","2018-11 (San Diego)","|Complete|","8.0","" +"`P0356R5 `__","Simplified partial function application","2018-11 (San Diego)","|Complete|","13.0","" +"`P0357R3 `__","reference_wrapper for incomplete types","2018-11 (San Diego)","|Complete|","8.0","" +"`P0482R6 `__","char8_t: A type for UTF-8 characters and strings","2018-11 (San Diego)","|Complete|","16.0","" +"`P0487R1 `__","Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)","2018-11 (San Diego)","|Complete|","8.0","" +"`P0591R4 `__","Utility functions to implement uses-allocator construction","2018-11 (San Diego)","|Partial| [#note-P0591]_","","" +"`P0595R2 `__","std::is_constant_evaluated()","2018-11 (San Diego)","|Complete|","9.0","" +"`P0602R4 `__","variant and optional should propagate copy/move triviality","2018-11 (San Diego)","|Complete|","8.0","" +"`P0608R3 `__","A sane variant converting constructor","2018-11 (San Diego)","|Complete|","9.0","" +"`P0655R1 `__","visit: Explicit Return Type for visit","2018-11 (San Diego)","|Complete|","12.0","" +"`P0771R1 `__","std::function move constructor should be noexcept","2018-11 (San Diego)","|Complete|","6.0","" +"`P0896R4 `__","The One Ranges Proposal","2018-11 (San Diego)","|Complete|","15.0","" +"`P0899R1 `__","P0899R1 - LWG 3016 is not a defect","2018-11 (San Diego)","|Nothing To Do|","","" +"`P0919R3 `__","Heterogeneous lookup for unordered containers","2018-11 (San Diego)","|Complete|","12.0","" +"`P0972R0 `__"," ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept","2018-11 (San Diego)","|Complete|","8.0","" +"`P1006R1 `__","Constexpr in std::pointer_traits","2018-11 (San Diego)","|Complete|","8.0","" +"`P1007R3 `__","``std::assume_aligned``\ ","2018-11 (San Diego)","|Complete|","15.0","" +"`P1020R1 `__","Smart pointer creation with default initialization","2018-11 (San Diego)","|Complete|","16.0","" +"`P1032R1 `__","Misc constexpr bits","2018-11 (San Diego)","|Complete|","13.0","" +"`P1085R2 `__","Should Span be Regular?","2018-11 (San Diego)","|Complete|","8.0","" +"`P1123R0 `__","Editorial Guidance for merging P0019r8 and P0528r3","2018-11 (San Diego)","","","" +"`P1148R0 `__","Cleaning up Clause 20","2018-11 (San Diego)","","","" +"`P1165R1 `__","Make stateful allocator propagation more consistent for ``operator+(basic_string)``\ ","2018-11 (San Diego)","|Complete|","15.0","" +"`P1209R0 `__","Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20","2018-11 (San Diego)","|Complete|","8.0","" +"`P1210R0 `__","P1210R0: Completing the Rebase of Library Fundamentals, Version 3, Working Draft","2018-11 (San Diego)","|Nothing To Do|","","" +"`P1236R1 `__","Alternative Wording for P0907R4 Signed Integers are Two's Complement","2018-11 (San Diego)","","","" +"`P1248R1 `__","Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)","2018-11 (San Diego)","|Complete|","13.0","" +"`P1285R0 `__","Improving Completeness Requirements for Type Traits","2018-11 (San Diego)","","","" +"`P1353R0 `__","Missing feature test macros","2018-11 (San Diego)","|In Progress|","","" +"","","","","","" +"`P0339R6 `__","polymorphic_allocator<> as a vocabulary type","2019-02 (Kona)","|Complete|","16.0","" +"`P0340R3 `__","Making std::underlying_type SFINAE-friendly","2019-02 (Kona)","|Complete|","9.0","" +"`P0738R2 `__","I Stream, You Stream, We All Stream for istream_iterator","2019-02 (Kona)","","","" +"`P0811R3 `__","Well-behaved interpolation for numbers and pointers","2019-02 (Kona)","|Complete|","9.0","" +"`P0920R2 `__","Precalculated hash values in lookup","2019-02 (Kona)","|Nothing To Do| [#note-P0920]_","","" +"`P1001R2 `__","Target Vectorization Policies from Parallelism V2 TS to C++20","2019-02 (Kona)","|Complete|","17.0","" +"`P1024R3 `__","Usability Enhancements for std::span","2019-02 (Kona)","|Complete|","9.0","" +"`P1164R1 `__","Make create_directory() Intuitive","2019-02 (Kona)","|Complete|","12.0","" +"`P1227R2 `__","Signed ssize() functions, unsigned size() functions","2019-02 (Kona)","|Complete|","9.0","" +"`P1252R2 `__","Ranges Design Cleanup","2019-02 (Kona)","|Complete|","15.0","" +"`P1286R2 `__","Contra CWG DR1778","2019-02 (Kona)","","","" +"`P1357R1 `__","Traits for [Un]bounded Arrays","2019-02 (Kona)","|Complete|","9.0","" +"`P1458R1 `__","Mandating the Standard Library: Clause 16 - Language support library","2019-02 (Kona)","|Complete|","9.0","" +"`P1459R1 `__","Mandating the Standard Library: Clause 18 - Diagnostics library","2019-02 (Kona)","|Complete|","9.0","" +"`P1462R1 `__","Mandating the Standard Library: Clause 20 - Strings library","2019-02 (Kona)","|Complete|","9.0","" +"`P1463R1 `__","Mandating the Standard Library: Clause 21 - Containers library","2019-02 (Kona)","","","" +"`P1464R1 `__","Mandating the Standard Library: Clause 22 - Iterators library","2019-02 (Kona)","|Complete|","9.0","" +"","","","","","" +"`P0325R4 `__","to_array from LFTS with updates","2019-07 (Cologne)","|Complete|","10.0","" +"`P0408R7 `__","Efficient Access to basic_stringbuf's Buffer","2019-07 (Cologne)","|Complete|","17.0","" +"`P0466R5 `__","Layout-compatibility and Pointer-interconvertibility Traits","2019-07 (Cologne)","","","" +"`P0553R4 `__","Bit operations","2019-07 (Cologne)","|Complete|","9.0","" +"`P0631R8 `__","Math Constants","2019-07 (Cologne)","|Complete|","11.0","" +"`P0645R10 `__","Text Formatting","2019-07 (Cologne)","|Complete| [#note-P0645]_","14.0","" +"`P0660R10 `__","Stop Token and Joining Thread, Rev 10.","2019-07 (Cologne)","|Complete| [#note-P0660]_","18.0","" +"`P0784R7 `__","More constexpr containers","2019-07 (Cologne)","|Complete|","12.0","" +"`P0980R1 `__","Making std::string constexpr","2019-07 (Cologne)","|Complete|","15.0","" +"`P1004R2 `__","Making std::vector constexpr","2019-07 (Cologne)","|Complete|","15.0","" +"`P1035R7 `__","Input Range Adaptors","2019-07 (Cologne)","|Complete|","16.0","" +"`P1065R2 `__","Constexpr INVOKE","2019-07 (Cologne)","|Complete|","12.0","" +"`P1135R6 `__","The C++20 Synchronization Library","2019-07 (Cologne)","|Complete|","11.0","" +"`P1207R4 `__","Movability of Single-pass Iterators","2019-07 (Cologne)","|Complete|","15.0","" +"`P1208R6 `__","Adopt source_location for C++20","2019-07 (Cologne)","|Complete|","16.0","" +"`P1355R2 `__","Exposing a narrow contract for ceil2","2019-07 (Cologne)","|Complete|","9.0","" +"`P1361R2 `__","Integration of chrono with text formatting","2019-07 (Cologne)","|Partial|","","" +"`P1423R3 `__","char8_t backward compatibility remediation","2019-07 (Cologne)","|Complete|","15.0","" +"`P1424R1 `__","'constexpr' feature macro concerns","2019-07 (Cologne)","|Nothing To Do| [#note-P1424]_","","" +"`P1466R3 `__","Miscellaneous minor fixes for chrono","2019-07 (Cologne)","","","" +"`P1474R1 `__","Helpful pointers for ContiguousIterator","2019-07 (Cologne)","|Complete|","15.0","" +"`P1502R1 `__","Standard library header units for C++20","2019-07 (Cologne)","","","" +"`P1522R1 `__","Iterator Difference Type and Integer Overflow","2019-07 (Cologne)","|Complete|","15.0","" +"`P1523R1 `__","Views and Size Types","2019-07 (Cologne)","|Complete|","15.0","" +"`P1612R1 `__","Relocate Endian's Specification","2019-07 (Cologne)","|Complete|","10.0","" +"`P1614R2 `__","The Mothership has Landed","2019-07 (Cologne)","|Complete| [#note-P1614]_","19.0","" +"`P1638R1 `__","basic_istream_view::iterator should not be copyable","2019-07 (Cologne)","|Complete|","16.0","" +"`P1643R1 `__","Add wait/notify to atomic_ref","2019-07 (Cologne)","|Complete|","19.0","" +"`P1644R0 `__","Add wait/notify to atomic","2019-07 (Cologne)","","","" +"`P1650R0 `__","Output std::chrono::days with 'd' suffix","2019-07 (Cologne)","|Complete|","16.0","" +"`P1651R0 `__","bind_front should not unwrap reference_wrapper","2019-07 (Cologne)","|Complete|","13.0","" +"`P1652R1 `__","Printf corner cases in std::format","2019-07 (Cologne)","|Complete|","14.0","" +"`P1661R1 `__","Remove dedicated precalculated hash lookup interface","2019-07 (Cologne)","|Nothing To Do|","","" +"`P1754R1 `__","Rename concepts to standard_case for C++20, while we still can","2019-07 (Cologne)","|Complete|","15.0","" +"","","","","","" +"`P0883R2 `__","Fixing Atomic Initialization","2019-11 (Belfast)","|Complete| [#note-P0883.1]_ [#note-P0883.2]_","14.0","" +"`P1391R4 `__","Range constructor for std::string_view","2019-11 (Belfast)","|Complete|","14.0","" +"`P1394R4 `__","Range constructor for std::span","2019-11 (Belfast)","|Complete|","14.0","" +"`P1456R1 `__","Move-only views","2019-11 (Belfast)","|Complete|","15.0","" +"`P1622R3 `__","Mandating the Standard Library: Clause 32 - Thread support library","2019-11 (Belfast)","","","" +"`P1645R1 `__","constexpr for numeric algorithms","2019-11 (Belfast)","|Complete|","12.0","" +"`P1686R2 `__","Mandating the Standard Library: Clause 27 - Time library","2019-11 (Belfast)","","","" +"`P1690R1 `__","Refinement Proposal for P0919 Heterogeneous lookup for unordered containers","2019-11 (Belfast)","|Complete|","12.0","" +"`P1716R3 `__","ranges compare algorithm are over-constrained","2019-11 (Belfast)","|Complete|","15.0","" +"`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.0","" +"`P1865R1 `__","Add max() to latch and barrier","2019-11 (Belfast)","|Complete|","11.0","" +"`P1869R1 `__","Rename 'condition_variable_any' interruptible wait methods","2019-11 (Belfast)","","","" +"`P1870R1 `__","forwarding-range is too subtle","2019-11 (Belfast)","|Complete|","15.0","" +"`P1871R1 `__","Concept traits should be named after concepts","2019-11 (Belfast)","|Complete|","14.0","" +"`P1872R0 `__","span should have size_type, not index_type","2019-11 (Belfast)","|Complete|","10.0","" +"`P1878R1 `__","Constraining Readable Types","2019-11 (Belfast)","|Complete|","15.0","" +"`P1892R1 `__","Extended locale-specific presentation specifiers for std::format","2019-11 (Belfast)","|Complete|","14.0","" +"`P1902R1 `__","Missing feature-test macros 2018-2019","2019-11 (Belfast)","","","" +"`P1959R0 `__","Remove std::weak_equality and std::strong_equality","2019-11 (Belfast)","|Nothing To Do|","","" +"`P1960R0 `__","NB Comment Changes Reviewed by SG1","2019-11 (Belfast)","","","" +"`P1961R0 `__","Harmonizing the definitions of total order for pointers","2019-11 (Belfast)","","","" +"`P1965R0 `__","Blanket Wording for Specifying ""Hidden Friends""","2019-11 (Belfast)","","","" +"","","","","","" +"`P0586R2 `__","Safe integral comparisons","2020-02 (Prague)","|Complete|","13.0","" +"`P0593R6 `__","Implicit creation of objects for low-level object manipulation","2020-02 (Prague)","","","" +"`P1115R3 `__","Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if","2020-02 (Prague)","|Complete|","11.0","" +"`P1243R4 `__","Rangify New Algorithms","2020-02 (Prague)","|Complete|","15.0","" +"`P1460R1 `__","Mandating the Standard Library: Clause 20 - Utilities library","2020-02 (Prague)","","","" +"`P1739R4 `__","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","2020-02 (Prague)","|Complete|","15.0","" +"`P1831R1 `__","Deprecating volatile: library","2020-02 (Prague)","","","" +"`P1868R2 `__","width: clarifying units of width and precision in std::format","2020-02 (Prague)","|Complete|","14.0","" +"`P1956R1 `__","On the names of low-level bit manipulation functions","2020-02 (Prague)","|Complete|","12.0","" +"`P1957R2 `__","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","2020-02 (Prague)","|Complete|","18.0","" +"`P1963R0 `__","Fixing US 313","2020-02 (Prague)","","","" +"`P1964R2 `__","Wording for boolean-testable","2020-02 (Prague)","|Complete|","13.0","" +"`P1970R2 `__","Consistency for size() functions: Add ranges::ssize","2020-02 (Prague)","|Complete|","15.0","" +"`P1973R1 `__","Rename ""_default_init"" Functions, Rev1","2020-02 (Prague)","|Complete|","16.0","" +"`P1976R2 `__","Fixed-size span construction from dynamic range","2020-02 (Prague)","|Complete|","11.0","" +"`P1981R0 `__","Rename leap to leap_second","2020-02 (Prague)","|Complete|","19.0","" +"`P1982R0 `__","Rename link to time_zone_link","2020-02 (Prague)","|Complete|","19.0","" +"`P1983R0 `__","Wording for GB301, US296, US292, US291, and US283","2020-02 (Prague)","|Complete|","15.0","" +"`P1994R1 `__","elements_view needs its own sentinel","2020-02 (Prague)","|Complete|","16.0","" +"`P2002R1 `__","Defaulted comparison specification cleanups","2020-02 (Prague)","|Complete|","7.0","" +"`P2045R1 `__","Missing Mandates for the standard library","2020-02 (Prague)","","","" +"`P2085R0 `__","Consistent defaulted comparisons","2020-02 (Prague)","","","" +"`P2091R0 `__","Issues with range access CPOs","2020-02 (Prague)","|Complete|","15.0","" +"`P2101R0 `__","P2101R0: 'Models' subsumes 'satisfies' (Wording for US298 and US300)","2020-02 (Prague)","|Nothing To Do|","","" +"`P2102R0 `__","Make 'implicit expression variations' more explicit (Wording for US185)","2020-02 (Prague)","|Complete|","15.0","" +"`P2106R0 `__","Alternative wording for GB315 and GB316","2020-02 (Prague)","|Complete|","15.0","" +"`P2116R0 `__","Remove tuple-like protocol support from fixed-extent span","2020-02 (Prague)","|Complete|","11.0","" +"","","","","","" +"`P2231R1 `__","Missing constexpr in std::optional and std::variant","2021-06 (Virtual)","|Complete|","19.0","" +"`P2325R3 `__","Views should not be required to be default constructible","2021-06 (Virtual)","|Complete|","16.0","" +"`P2210R2 `__","Superior String Splitting","2021-06 (Virtual)","|Complete|","16.0","" +"`P2216R3 `__","std::format improvements","2021-06 (Virtual)","|Complete|","15.0","" +"`P2281R1 `__","Clarifying range adaptor objects","2021-06 (Virtual)","|Complete|","14.0","" +"`P2328R1 `__","join_view should join all views of ranges","2021-06 (Virtual)","|Complete|","15.0","" +"`P2367R0 `__","Remove misuses of list-initialization from Clause 24","2021-06 (Virtual)","|Complete|","15.0","" +"","","","","","" +"`P2372R3 `__","Fixing locale handling in chrono formatters","2021-10 (Virtual)","|In Progress|","","" +"`P2415R2 `__","What is a ``view``","2021-10 (Virtual)","|Complete|","14.0","" +"`P2418R2 `__","Add support for ``std::generator``-like types to ``std::format``","2021-10 (Virtual)","|Complete|","15.0","" +"`P2432R1 `__","Fix ``istream_view``","2021-10 (Virtual)","|Complete|","16.0","" diff --git a/libcxx/docs/Status/Cxx23Issues.csv b/libcxx/docs/Status/Cxx23Issues.csv index a1ac143cbb0ac0..4ce1832bf852ae 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" -"`LWG2839 `__","Self-move-assignment of library types, again","2020-11 (Virtual)","|Nothing To Do|","" -"`LWG3117 `__","Missing ``packaged_task`` deduction guides","2020-11 (Virtual)","|Complete|","16.0" -"`LWG3143 `__","``monotonic_buffer_resource`` growth policy is unclear","2020-11 (Virtual)","","" -"`LWG3195 `__","What is the stored pointer value of an empty ``weak_ptr``?","2020-11 (Virtual)","|Nothing To Do|","" -"`LWG3211 `__","``std::tuple<>`` should be trivially constructible","2020-11 (Virtual)","|Complete|","9.0" -"`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| [#note-LWG3265]_","" -"`LWG3435 `__","``three_way_comparable_with, reverse_iterator>``","2020-11 (Virtual)","|Complete|","13.0" -"`LWG3432 `__","Missing requirement for ``comparison_category``","2020-11 (Virtual)","|Complete|","16.0" -"`LWG3447 `__","Deduction guides for ``take_view`` and ``drop_view`` have different constraints","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3450 `__","The const overloads of ``take_while_view::begin/end`` are underconstrained","2020-11 (Virtual)","|Complete|","16.0" -"`LWG3464 `__","``istream::gcount()`` can overflow","2020-11 (Virtual)","|Complete|","18.0" -"`LWG2731 `__","Existence of ``lock_guard::mutex_type`` typedef unclear","2020-11 (Virtual)","|Complete|","5.0" -"`LWG2743 `__","P0083R3 ``node_handle`` private members missing ""exposition only"" comment","2020-11 (Virtual)","|Nothing To Do|","" -"`LWG2820 `__","Clarify ```` macros","2020-11 (Virtual)","|Nothing To Do|","" -"`LWG3120 `__","Unclear behavior of ``monotonic_buffer_resource::release()``","2020-11 (Virtual)","","" -"`LWG3170 `__","``is_always_equal`` added to ``std::allocator`` makes the standard library treat derived types as always equal","2020-11 (Virtual)","|Complete|","18.0" -"`LWG3036 `__","``polymorphic_allocator::destroy`` is extraneous","2020-11 (Virtual)","|Nothing To Do| [#note-LWG3036]_","" -"`LWG3171 `__","LWG2989 breaks ``directory_entry`` stream insertion","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3306 `__","``ranges::advance`` violates its preconditions","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3403 `__","Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)``","2020-11 (Virtual)","","" -"`LWG3404 `__","Finish removing subrange's conversions from pair-like","2020-11 (Virtual)","|Complete|","13.0" -"`LWG3405 `__","``common_view``'s converting constructor is bad, too","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3406 `__","``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraints","2020-11 (Virtual)","|Complete|","16.0" -"`LWG3419 `__","[algorithms.requirements]/15 doesn't reserve as many rights as it intends to","2020-11 (Virtual)","|Nothing To Do|","" -"`LWG3420 `__","cpp17-iterator should check that the type looks like an iterator first","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3421 `__","Imperfect ADL emulation for boolean-testable","2020-11 (Virtual)","|Nothing To Do|","" -"`LWG3425 `__","``condition_variable_any`` fails to constrain its Lock parameters","2020-11 (Virtual)","|Nothing To Do|","" -"`LWG3426 `__","``operator<=>(const unique_ptr&, nullptr_t)`` can't get no satisfaction","2020-11 (Virtual)","|Complete|","16.0" -"`LWG3427 `__","``operator<=>(const shared_ptr&, nullptr_t)`` definition ill-formed","2020-11 (Virtual)","|Complete|","16.0" -"`LWG3428 `__","``single_view``'s in place constructor should be explicit","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3434 `__","``ios_base`` never reclaims memory for iarray and parray","2020-11 (Virtual)","|Nothing To Do|","" -"`LWG3437 `__","``__cpp_lib_polymorphic_allocator`` is in the wrong header","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3446 `__","``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type``","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3448 `__","``transform_view``'s ``sentinel`` not comparable with ``iterator``","2020-11 (Virtual)","","" -"`LWG3449 `__","``take_view`` and ``take_while_view``'s ``sentinel`` not comparable with their ``const iterator``","2020-11 (Virtual)","|Complete|","16.0" -"`LWG3453 `__","Generic code cannot call ``ranges::advance(i, s)``","2020-11 (Virtual)","|Nothing To Do|","" -"`LWG3455 `__","Incorrect Postconditions on ``unique_ptr`` move assignment","2020-11 (Virtual)","|Nothing To Do|","" -"`LWG3460 `__","Unimplementable ``noop_coroutine_handle`` guarantees","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3461 `__","``convertible_to``'s description mishandles cv-qualified ``void``","2020-11 (Virtual)","|Nothing To Do|","" -"`LWG3465 `__","``compare_partial_order_fallback`` requires ``F < E``","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3466 `__","Specify the requirements for ``promise``/``future``/``shared_future`` consistently","2020-11 (Virtual)","|Nothing To Do|","" -"`LWG3467 `__","``bool`` can't be an integer-like type","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3472 `__","``counted_iterator`` is missing preconditions","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3473 `__","Normative encouragement in non-normative note","2020-11 (Virtual)","|Complete|","15.0" -"`LWG3474 `__","Nesting ``join_views`` is broken because of CTAD","2020-11 (Virtual)","|Complete|","15.0" -"`LWG3476 `__","``thread`` and ``jthread`` constructors require that the parameters be move-constructible but never move construct the parameters","2020-11 (Virtual)","","" -"`LWG3477 `__","Simplify constraints for ``semiregular-box``","2020-11 (Virtual)","|Complete|","13.0" -"`LWG3482 `__","``drop_view``'s const begin should additionally require ``sized_range``","2020-11 (Virtual)","|Complete|","14.0" -"`LWG3483 `__","``transform_view::iterator``'s difference is overconstrained","2020-11 (Virtual)","|Complete|","14.0" -"","","","","" -"`LWG3391 `__","Problems with ``counted_iterator``/``move_iterator::base() const &``","2021-02 (Virtual)","","" -"`LWG3433 `__","``subrange::advance(n)`` has UB when ``n < 0``","2021-02 (Virtual)","|Complete|","14.0" -"`LWG3490 `__","``ranges::drop_while_view::begin()`` is missing a precondition","2021-02 (Virtual)","|Nothing To Do|","" -"`LWG3492 `__","Minimal improvements to ``elements_view::iterator``","2021-02 (Virtual)","|Complete|","16.0" -"`LWG3494 `__","Allow ranges to be conditionally borrowed","2021-02 (Virtual)","|Nothing To Do| [#note-LWG3494]_","" -"`LWG3495 `__","``constexpr launder`` makes pointers to inactive members of unions usable","2021-02 (Virtual)","|Nothing To Do|","" -"`LWG3500 `__","``join_view::iterator::operator->()`` is bogus","2021-02 (Virtual)","|Complete|","14.0" -"`LWG3502 `__","``elements_view`` should not be allowed to return dangling reference","2021-02 (Virtual)","|Complete|","16.0" -"`LWG3505 `__","``split_view::outer-iterator::operator++`` misspecified","2021-02 (Virtual)","","" -"","","","","" -"`LWG2774 `__","``std::function`` construction vs assignment","2021-06 (Virtual)","","" -"`LWG2818 `__","``::std::`` everywhere rule needs tweaking","2021-06 (Virtual)","|Nothing To Do|","" -"`LWG2997 `__","LWG 491 and the specification of ``{forward_,}list::unique``","2021-06 (Virtual)","","" -"`LWG3410 `__","``lexicographical_compare_three_way`` is overspecified","2021-06 (Virtual)","|Complete|","17.0" -"`LWG3430 `__","``std::fstream`` & co. should be constructible from string_view","2021-06 (Virtual)","|Complete|","19.0" -"`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| [#note-LWG3481]_","" -"`LWG3506 `__","Missing allocator-extended constructors for ``priority_queue``","2021-06 (Virtual)","|Complete|","14.0" -"`LWG3517 `__","``join_view::iterator``'s ``iter_swap`` is underconstrained","2021-06 (Virtual)","|Complete|","14.0" -"`LWG3518 `__","Exception requirements on char trait operations unclear","2021-06 (Virtual)","|Nothing To Do|","" -"`LWG3519 `__","Incomplete synopses for ```` classes","2021-06 (Virtual)","","" -"`LWG3520 `__","``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator``","2021-06 (Virtual)","|Complete|","14.0" -"`LWG3521 `__","Overly strict requirements on ``qsort`` and ``bsearch``","2021-06 (Virtual)","|Nothing To Do|","" -"`LWG3522 `__","Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructors","2021-06 (Virtual)","|Complete|","14.0" -"`LWG3523 `__","``iota_view::sentinel`` is not always ``iota_view``'s sentinel","2021-06 (Virtual)","|Complete|","17.0" -"`LWG3526 `__","Return types of ``uses_allocator_construction_args`` unspecified","2021-06 (Virtual)","","" -"`LWG3527 `__","``uses_allocator_construction_args`` handles rvalue pairs of rvalue references incorrectly","2021-06 (Virtual)","","" -"`LWG3528 `__","``make_from_tuple`` can perform (the equivalent of) a C-style cast","2021-06 (Virtual)","|Complete|","19.0" -"`LWG3529 `__","``priority_queue(first, last)`` should construct ``c`` with ``(first, last)``","2021-06 (Virtual)","|Complete|","14.0" -"`LWG3530 `__","``BUILTIN-PTR-MEOW`` should not opt the type out of syntactic checks","2021-06 (Virtual)","","" -"`LWG3532 `__","``split_view::inner-iterator::operator++(int)`` should depend on ``Base``","2021-06 (Virtual)","","" -"`LWG3533 `__","Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators``","2021-06 (Virtual)","|Complete|","14.0" -"`LWG3536 `__","Should ``chrono::from_stream()`` assign zero to duration for failure?","2021-06 (Virtual)","","" -"`LWG3539 `__","``format_to`` must not copy models of ``output_iterator``","2021-06 (Virtual)","|Complete|","14.0" -"`LWG3540 `__","ยง[format.arg] There should be no const in ``basic_format_arg(const T* p)``","2021-06 (Virtual)","|Complete|","14.0" -"`LWG3541 `__","``indirectly_readable_traits`` should be SFINAE-friendly for all types","2021-06 (Virtual)","|Complete|","14.0" -"`LWG3542 `__","``basic_format_arg`` mishandles ``basic_string_view`` with custom traits","2021-06 (Virtual)","|Complete|","14.0" -"`LWG3543 `__","Definition of when ``counted_iterators`` refer to the same sequence isn't quite right","2021-06 (Virtual)","|Nothing To Do|","" -"`LWG3544 `__","``format-arg-store::args`` is unintentionally not exposition-only","2021-06 (Virtual)","|Complete|","14.0" -"`LWG3546 `__","``common_iterator``'s postfix-proxy is not quite right","2021-06 (Virtual)","","" -"`LWG3548 `__","``shared_ptr`` construction from ``unique_ptr`` should move (not copy) the deleter","2021-06 (Virtual)","|Complete|","15.0" -"`LWG3549 `__","``view_interface`` is overspecified to derive from ``view_base``","2021-06 (Virtual)","|Complete|","14.0" -"`LWG3551 `__","``borrowed_{iterator,subrange}_t`` are overspecified","2021-06 (Virtual)","|Nothing To Do|","" -"`LWG3552 `__","Parallel specialized memory algorithms should require forward iterators","2021-06 (Virtual)","","" -"`LWG3553 `__","Useless constraint in ``split_view::outer-iterator::value_type::begin()``","2021-06 (Virtual)","","" -"`LWG3555 `__","``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying range","2021-06 (Virtual)","","" -"","","","","" -"`LWG2191 `__","Incorrect specification of ``match_results(match_results&&)``","2021-10 (Virtual)","|Nothing To Do|","" -"`LWG2381 `__","Inconsistency in parsing floating point numbers","2021-10 (Virtual)","|Complete|","19.0" -"`LWG2762 `__","``unique_ptr operator*()`` should be ``noexcept``","2021-10 (Virtual)","|Complete|","19.0" -"`LWG3121 `__","``tuple`` constructor constraints for ``UTypes&&...`` overloads","2021-10 (Virtual)","","" -"`LWG3123 `__","``duration`` constructor from representation shouldn't be effectively non-throwing","2021-10 (Virtual)","","" -"`LWG3146 `__","Excessive unwrapping in ``std::ref/cref``","2021-10 (Virtual)","|Complete|","14.0" -"`LWG3152 `__","``common_type`` and ``common_reference`` have flaws in common","2021-10 (Virtual)","","" -"`LWG3293 `__","``move_iterator operator+()`` has incorrect constraints","2021-10 (Virtual)","|Complete|","15.0" -"`LWG3361 `__","``safe_range`` case","2021-10 (Virtual)","|Nothing To Do|","" -"`LWG3392 `__","``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinel","2021-10 (Virtual)","|Complete|","14.0" -"`LWG3407 `__","Some problems with the wording changes of P1739R4","2021-10 (Virtual)","|Complete|","15.0" -"`LWG3422 `__","Issues of ``seed_seq``'s constructors","2021-10 (Virtual)","|Complete|","14.0" -"`LWG3470 `__","``convertible-to-non-slicing`` seems to reject valid case","2021-10 (Virtual)","|Complete|","14.0" -"`LWG3480 `__","``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 ranges","2021-10 (Virtual)","|Complete|","14.0" -"`LWG3498 `__","Inconsistent ``noexcept``-specifiers for ``basic_syncbuf``","2021-10 (Virtual)","","" -"`LWG3535 `__","``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie","2021-10 (Virtual)","|Complete|","15.0" -"`LWG3554 `__","``chrono::parse`` needs ``const charT*`` and ``basic_string_view`` overloads","2021-10 (Virtual)","","" -"`LWG3557 `__","The ``static_cast`` expression in ``convertible_to`` has the wrong operand","2021-10 (Virtual)","|Complete|","14.0" -"`LWG3559 `__","Semantic requirements of ``sized_range`` is circular","2021-10 (Virtual)","|Nothing To Do|","" -"`LWG3560 `__","``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges``","2021-10 (Virtual)","","" -"`LWG3561 `__","Issue with internal counter in ``discard_block_engine``","2021-10 (Virtual)","","" -"`LWG3563 `__","``keys_view`` example is broken","2021-10 (Virtual)","","" -"`LWG3566 `__","Constraint recursion for ``operator<=>(optional, U)``","2021-10 (Virtual)","|Complete|","17.0" -"`LWG3567 `__","Formatting move-only iterators take two","2021-10 (Virtual)","|Complete|","16.0" -"`LWG3568 `__","``basic_istream_view`` needs to initialize ``value_``","2021-10 (Virtual)","|Complete|","16.0" -"`LWG3570 `__","``basic_osyncstream::emit`` should be an unformatted output function","2021-10 (Virtual)","|Complete|","18.0" -"`LWG3571 `__","``flush_emit`` should set ``badbit`` if the ``emit`` call fails","2021-10 (Virtual)","","" -"`LWG3572 `__","``copyable-box`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0" -"`LWG3573 `__","Missing Throws element for ``basic_string_view(It begin, End end)``","2021-10 (Virtual)","|Complete|","14.0" -"`LWG3574 `__","``common_iterator`` should be completely ``constexpr``-able","2021-10 (Virtual)","|Complete|","14.0" -"`LWG3580 `__","``iota_view``'s ``iterator``'s binary ``operator+`` should be improved","2021-10 (Virtual)","|Complete|","14.0" -"`LWG3581 `__","The range constructor makes ``basic_string_view`` not trivially move constructible","2021-10 (Virtual)","|Complete|","14.0" -"`LWG3585 `__","``variant`` converting assignment with immovable alternative","2021-10 (Virtual)","","" -"`LWG3589 `__","The ``const`` lvalue reference overload of ``get`` for ``subrange`` does not constrain ``I`` to be ``copyable`` when ``N == 0``","2021-10 (Virtual)","|Complete|","14.0" -"`LWG3590 `__","``split_view::base() const &`` is overconstrained","2021-10 (Virtual)","|Complete|","16.0" -"`LWG3591 `__","``lazy_split_view::inner-iterator::base() &&`` invalidates outer iterators","2021-10 (Virtual)","","" -"`LWG3592 `__","``lazy_split_view`` needs to check the simpleness of Pattern","2021-10 (Virtual)","","" -"`LWG3593 `__","Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept``","2021-10 (Virtual)","","" -"`LWG3595 `__","Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0" -"","","","","" -"`LWG3088 `__","``forward_list::merge`` behaviour unclear when passed ``*this``","2022-02 (Virtual)","","" -"`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.0" -"`LWG3616 `__","LWG 3498 seems to miss the non-member ``swap`` for ``basic_syncbuf`` ","2022-02 (Virtual)","|Complete|","18.0" -"`LWG3618 `__","Unnecessary ``iter_move`` for ``transform_view::iterator`` ","2022-02 (Virtual)","|Complete|","19.0" -"`LWG3619 `__","Specification of ``vformat_to`` contains ill-formed ``formatted_size`` calls","2022-02 (Virtual)","|Nothing To Do|","" -"`LWG3621 `__","Remove feature-test macro ``__cpp_lib_monadic_optional`` ","2022-02 (Virtual)","|Complete|","15.0" -"`LWG3632 `__","``unique_ptr`` ""Mandates: This constructor is not selected by class template argument deduction""","2022-02 (Virtual)","|Nothing To Do|","" -"`LWG3643 `__","Missing ``constexpr`` in ``std::counted_iterator`` ","2022-02 (Virtual)","|Complete|","19.0" -"`LWG3648 `__","``format`` should not print ``bool`` with ``'c'`` ","2022-02 (Virtual)","|Complete|","15.0" -"`LWG3649 `__","[fund.ts.v2] Reinstate and bump ``__cpp_lib_experimental_memory_resource`` feature test macro","2022-02 (Virtual)","","" -"`LWG3650 `__","Are ``std::basic_string`` 's ``iterator`` and ``const_iterator`` constexpr iterators?","2022-02 (Virtual)","|Nothing To Do|","" -"`LWG3654 `__","``basic_format_context::arg(size_t)`` should be ``noexcept`` ","2022-02 (Virtual)","|Complete|","15.0" -"`LWG3657 `__","``std::hash`` is not enabled","2022-02 (Virtual)","|Complete|","17.0" -"`LWG3660 `__","``iterator_traits::pointer`` should conform to ยง[iterator.traits]","2022-02 (Virtual)","|Complete|","14.0" -"`LWG3661 `__","``constinit atomic> a(nullptr);`` should work","2022-02 (Virtual)","","" -"","","","","" -"`LWG3564 `__","``transform_view::iterator::value_type`` and ``iterator_category`` should use ``const F&``","2022-07 (Virtual)","|Complete|","20.0" -"`LWG3617 `__","``function``/``packaged_task`` deduction guides and deducing ``this``","2022-07 (Virtual)","","" -"`LWG3656 `__","Inconsistent bit operations returning a count","2022-07 (Virtual)","|Complete|","15.0" -"`LWG3659 `__","Consider ``ATOMIC_FLAG_INIT`` undeprecation","2022-07 (Virtual)","|Complete|","15.0" -"`LWG3670 `__","``Cpp17InputIterators`` don't have integer-class difference types","2022-07 (Virtual)","","" -"`LWG3671 `__","``atomic_fetch_xor`` missing from ``stdatomic.h``","2022-07 (Virtual)","|Complete|","20.0" -"`LWG3672 `__","``common_iterator::operator->()`` should return by value","2022-07 (Virtual)","|Complete|","19.0" -"`LWG3683 `__","``operator==`` for ``polymorphic_allocator`` cannot deduce template argument in common cases","2022-07 (Virtual)","|Complete|","20.0" -"`LWG3687 `__","``expected`` move constructor should move","2022-07 (Virtual)","|Complete|","16.0" -"`LWG3692 `__","``zip_view::iterator``'s ``operator<=>`` is overconstrained","2022-07 (Virtual)","","" -"`LWG3701 `__","Make ``formatter, charT>`` requirement explicit","2022-07 (Virtual)","|Complete|","15.0" -"`LWG3702 `__","Should ``zip_transform_view::iterator`` remove ``operator<``","2022-07 (Virtual)","","" -"`LWG3703 `__","Missing requirements for ``expected`` requires ``is_void``","2022-07 (Virtual)","|Complete|","16.0" -"`LWG3704 `__","LWG 2059 added overloads that might be ill-formed for sets","2022-07 (Virtual)","","" -"`LWG3705 `__","Hashability shouldn't depend on basic_string's allocator","2022-07 (Virtual)","|Complete|","16.0" -"`LWG3707 `__","chunk_view::outer-iterator::value_type::size should return unsigned type","2022-07 (Virtual)","","" -"`LWG3708 `__","``take_while_view::sentinel``'s conversion constructor should move","2022-07 (Virtual)","|Complete|","16.0" -"`LWG3709 `__","LWG-3703 was underly ambitious","2022-07 (Virtual)","","" -"`LWG3710 `__","The ``end`` of ``chunk_view`` for input ranges can be ``const``","2022-07 (Virtual)","","" -"`LWG3711 `__","Missing preconditions for slide_view constructor","2022-07 (Virtual)","","" -"`LWG3712 `__","``chunk_view`` and ``slide_view`` should not be ``default_initializable``","2022-07 (Virtual)","","" -"`LWG3713 `__","Sorted with respect to comparator (only)","2022-07 (Virtual)","|Nothing To Do|","" -"`LWG3715 `__","``view_interface::empty`` is overconstrained","2022-07 (Virtual)","|Complete|","19.0" -"`LWG3719 `__","Directory iterators should be usable with default sentinel","2022-07 (Virtual)","|Complete|","17.0" -"`LWG3721 `__","Allow an ``arg-id`` with a value of zero for ``width`` in ``std-format-spec``","2022-07 (Virtual)","|Complete|","16.0" -"`LWG3724 `__","``decay-copy`` should be constrained","2022-07 (Virtual)","|Complete|","14.0" -"","","","","" -"`LWG3028 `__","Container requirements tables should distinguish ``const`` and non-``const`` variables","2022-11 (Kona)","","" -"`LWG3118 `__","``fpos`` equality comparison unspecified","2022-11 (Kona)","","" -"`LWG3177 `__","Limit permission to specialize variable templates to program-defined types","2022-11 (Kona)","|Nothing To Do|","" -"`LWG3515 `__","ยง[stacktrace.basic.nonmem]: ``operator<<`` should be less templatized","2022-11 (Kona)","","" -"`LWG3545 `__","``std::pointer_traits`` should be SFINAE-friendly","2022-11 (Kona)","|Complete|","18.0" -"`LWG3569 `__","``join_view`` fails to support ranges of ranges with non-default_initializable iterators","2022-11 (Kona)","","" -"`LWG3594 `__","``inout_ptr`` โ€” inconsistent ``release()`` in destructor","2022-11 (Kona)","|Complete|","19.0" -"`LWG3597 `__","Unsigned integer types don't model advanceable","2022-11 (Kona)","","" -"`LWG3600 `__","Making ``istream_iterator`` copy constructor trivial is an ABI break","2022-11 (Kona)","","" -"`LWG3629 `__","``make_error_code`` and ``make_error_condition`` are customization points","2022-11 (Kona)","|Complete|","16.0" -"`LWG3636 `__","``formatter::format`` should be ``const``-qualified","2022-11 (Kona)","|Complete|","16.0" -"`LWG3646 `__","``std::ranges::view_interface::size`` returns a signed type","2022-11 (Kona)","|Complete|","16.0" -"`LWG3677 `__","Is a cv-qualified ``pair`` specially handled in uses-allocator construction?","2022-11 (Kona)","|Complete|","18.0" -"`LWG3717 `__","``common_view::end`` should improve ``random_access_range`` case","2022-11 (Kona)","","" -"`LWG3732 `__","``prepend_range`` and ``append_range`` can't be amortized constant time","2022-11 (Kona)","|Nothing To Do|","" -"`LWG3736 `__","``move_iterator`` missing ``disable_sized_sentinel_for`` specialization","2022-11 (Kona)","|Complete|","19.0" -"`LWG3737 `__","``take_view::sentinel`` should provide ``operator-``","2022-11 (Kona)","","" -"`LWG3738 `__","Missing preconditions for ``take_view`` constructor","2022-11 (Kona)","|Complete|","16.0" -"`LWG3743 `__","``ranges::to``'s reserve may be ill-formed","2022-11 (Kona)","","" -"`LWG3745 `__","``std::atomic_wait`` and its friends lack ``noexcept``","2022-11 (Kona)","|Complete|","16.0" -"`LWG3746 `__","``optional``'s spaceship with ``U`` with a type derived from optional causes infinite constraint meta-recursion","2022-11 (Kona)","|Complete|","17.0" -"`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| [#note-LWG3750]_","" -"`LWG3751 `__","Missing feature macro for ``flat_set``","2022-11 (Kona)","","" -"`LWG3753 `__","Clarify entity vs. freestanding entity","2022-11 (Kona)","","" -"`LWG3754 `__","Class template expected synopsis contains declarations that do not match the detailed description","2022-11 (Kona)","|Nothing To Do|","" -"`LWG3755 `__","``tuple-for-each`` can call ``user-defined`` ``operator,``","2022-11 (Kona)","|Complete|","17.0" -"`LWG3757 `__","What's the effect of ``std::forward_like(x)``?","2022-11 (Kona)","","" -"`LWG3759 `__","``ranges::rotate_copy`` should use ``std::move``","2022-11 (Kona)","|Complete|","15.0" -"`LWG3760 `__","``cartesian_product_view::iterator``'s ``parent_`` is never valid","2022-11 (Kona)","","" -"`LWG3761 `__","``cartesian_product_view::iterator::operator-`` should pass by reference","2022-11 (Kona)","","" -"`LWG3762 `__","``generator::iterator::operator==`` should pass by reference","2022-11 (Kona)","","" -"`LWG3764 `__","``reference_wrapper::operator()`` should propagate noexcept","2022-11 (Kona)","|Complete|","17.0" -"`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)","","" -"`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.0" -"`LWG3784 `__","std.compat should not provide ``::byte`` and its friends","2022-11 (Kona)","|Complete|","19.0" -"`LWG3785 `__","``ranges::to`` is over-constrained on the destination type being a range","2022-11 (Kona)","","" -"`LWG3788 `__","``jthread::operator=(jthread&&)`` postconditions are unimplementable under self-assignment","2022-11 (Kona)","","" -"`LWG3792 `__","``__cpp_lib_constexpr_algorithms`` should also be defined in ````","2022-11 (Kona)","|Complete|","16.0" -"`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| [#note-LWG3798]_","" -"`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.0" -"`LWG3756 `__","Is the ``std::atomic_flag`` class signal-safe?","2023-02 (Issaquah)","","" -"`LWG3769 `__","``basic_const_iterator::operator==`` causes infinite constraint recursion","2023-02 (Issaquah)","","" -"`LWG3807 `__","The feature test macro for ``ranges::find_last`` should be renamed","2023-02 (Issaquah)","","" -"`LWG3811 `__","``views::as_const`` on ``ref_view`` should return ``ref_view``","2023-02 (Issaquah)","","" -"`LWG3820 `__","``cartesian_product_view::iterator::prev`` is not quite right","2023-02 (Issaquah)","","" -"`LWG3825 `__","Missing compile-time argument ``id`` check in ``basic_format_parse_context::next_arg_id``","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3204 `__","``sub_match::swap`` only swaps the base class","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3733 `__","``ranges::to`` misuses ``cpp17-input-iterator``","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3742 `__","``deque::prepend_range`` needs to permute","2023-02 (Issaquah)","","" -"`LWG3790 `__","`P1467 `__ accidentally changed ``nexttoward``'s signature","2023-02 (Issaquah)","","" -"`LWG3819 `__","``reference_meows_from_temporary`` should not use ``is_meowible``","2023-02 (Issaquah)","","" -"`LWG3821 `__","``uses_allocator_construction_args`` should have overload for ``pair-like``","2023-02 (Issaquah)","|Complete|","18.0" -"`LWG3834 `__","Missing ``constexpr`` for ``std::intmax_t`` math functions in ````","2023-02 (Issaquah)","","" -"`LWG3839 `__","``range_formatter``'s ``set_separator``, ``set_brackets``, and ``underlying`` functions should be ``noexcept``","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3841 `__","```` should not be ""all freestanding""","2023-02 (Issaquah)","","" -"`LWG3842 `__","Unclear wording for ``precision`` in ``chrono-format-spec``","2023-02 (Issaquah)","|Complete|","16.0" -"`LWG3848 `__","``adjacent_view``, ``adjacent_transform_view`` and ``slide_view`` missing ``base`` accessor","2023-02 (Issaquah)","","" -"`LWG3849 `__","``cartesian_product_view::iterator``'s default constructor is overconstrained","2023-02 (Issaquah)","","" -"`LWG3850 `__","``views::as_const`` on ``empty_view`` should return ``empty_view``","2023-02 (Issaquah)","","" -"`LWG3851 `__","``chunk_view::inner-iterator`` missing custom ``iter_move`` and ``iter_swap``","2023-02 (Issaquah)","","" -"`LWG3853 `__","``basic_const_iterator::operator->`` is ill-formed","2023-02 (Issaquah)","","" -"`LWG3857 `__","``basic_string_view`` should allow explicit conversion when only traits vary","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3860 `__","``range_common_reference_t`` is missing","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3866 `__","Bad Mandates for ``expected::transform_error`` overloads","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3867 `__","Should ``std::basic_osyncstream``'s move assignment operator be ``noexcept``?","2023-02 (Issaquah)","|Complete|","18.0" -"`LWG3441 `__","Misleading note about calls to customization points","2023-02 (Issaquah)","","" -"`LWG3622 `__","Misspecified transitivity of equivalence in ยง[unord.req.general]","2023-02 (Issaquah)","","" -"`LWG3631 `__","``basic_format_arg(T&&)`` should use ``remove_cvref_t`` throughout","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3645 `__","``resize_and_overwrite`` is overspecified to call its callback with lvalues","2023-02 (Issaquah)","|Complete|","14.0" -"`LWG3655 `__","The ``INVOKE`` operation and union types","2023-02 (Issaquah)","|Complete|","18.0" -"`LWG3723 `__","``priority_queue::push_range`` needs to ``append_range``","2023-02 (Issaquah)","","" -"`LWG3734 `__","Inconsistency in ``inout_ptr`` and ``out_ptr`` for empty case","2023-02 (Issaquah)","|Complete|","19.0" -"`LWG3772 `__","``repeat_view``'s ``piecewise`` constructor is missing Postconditions","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3786 `__","Flat maps' deduction guide needs to default ``Allocator`` to be useful","2023-02 (Issaquah)","","" -"`LWG3803 `__","``flat_foo`` constructors taking ``KeyContainer`` lack ``KeyCompare`` parameter","2023-02 (Issaquah)","","" -"`LWG3810 `__","CTAD for ``std::basic_format_args``","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3827 `__","Deprecate ```` and ```` macros","2023-02 (Issaquah)","","" -"`LWG3828 `__","Sync ``intmax_t`` and ``uintmax_t`` with C2x","2023-02 (Issaquah)","|Nothing To Do|","" -"`LWG3833 `__","Remove specialization ``template struct formatter``","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3836 `__","``std::expected`` conversion constructor ``expected(const expected&)`` should take precedence over ``expected(U&&)`` with operator ``bool``","2023-02 (Issaquah)","|Complete|","18.0" -"`LWG3843 `__","``std::expected::value() &`` assumes ``E`` is copy constructible","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3847 `__","``ranges::to`` can still return views","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3862 `__","``basic_const_iterator``'s ``common_type`` specialization is underconstrained","2023-02 (Issaquah)","","" -"`LWG3865 `__","Sorting a range of ``pairs``","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3869 `__","Deprecate ``std::errc`` constants related to UNIX STREAMS","2023-02 (Issaquah)","|Complete|","19.0" -"`LWG3870 `__","Remove ``voidify``","2023-02 (Issaquah)","","" -"`LWG3871 `__","Adjust note about ``terminate``","2023-02 (Issaquah)","","" -"`LWG3872 `__","``basic_const_iterator`` should have custom ``iter_move``","2023-02 (Issaquah)","","" -"`LWG3875 `__","``std::ranges::repeat_view::iterator`` may be ill-formed","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3876 `__","Default constructor of ``std::layout_XX::mapping`` misses precondition","2023-02 (Issaquah)","","" -"`LWG3877 `__","Incorrect constraints on ``const``-qualified monadic overloads for ``std::expected``","2023-02 (Issaquah)","|Complete|","17.0" -"`LWG3878 `__","import ``std;`` should guarantee initialization of standard iostreams objects","2023-02 (Issaquah)","","" -"`LWG3879 `__","``erase_if`` for ``flat_{,multi}set`` is incorrectly specified","2023-02 (Issaquah)","","" -"`LWG3880 `__","Clarify ``operator+=`` complexity for ``{chunk,stride}_view::iterator``","2023-02 (Issaquah)","","" -"`LWG3881 `__","Incorrect formatting of container adapters backed by ``std::string``","2023-02 (Issaquah)","|Complete|","17.0" +"Issue #","Issue Name","Meeting","Status","First released version","Notes" +"`LWG2839 `__","Self-move-assignment of library types, again","2020-11 (Virtual)","|Nothing To Do|","","" +"`LWG3117 `__","Missing ``packaged_task`` deduction guides","2020-11 (Virtual)","|Complete|","16.0","" +"`LWG3143 `__","``monotonic_buffer_resource`` growth policy is unclear","2020-11 (Virtual)","","","" +"`LWG3195 `__","What is the stored pointer value of an empty ``weak_ptr``?","2020-11 (Virtual)","|Nothing To Do|","","" +"`LWG3211 `__","``std::tuple<>`` should be trivially constructible","2020-11 (Virtual)","|Complete|","9.0","" +"`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| [#note-LWG3265]_","","" +"`LWG3435 `__","``three_way_comparable_with, reverse_iterator>``","2020-11 (Virtual)","|Complete|","13.0","" +"`LWG3432 `__","Missing requirement for ``comparison_category``","2020-11 (Virtual)","|Complete|","16.0","" +"`LWG3447 `__","Deduction guides for ``take_view`` and ``drop_view`` have different constraints","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3450 `__","The const overloads of ``take_while_view::begin/end`` are underconstrained","2020-11 (Virtual)","|Complete|","16.0","" +"`LWG3464 `__","``istream::gcount()`` can overflow","2020-11 (Virtual)","|Complete|","18.0","" +"`LWG2731 `__","Existence of ``lock_guard::mutex_type`` typedef unclear","2020-11 (Virtual)","|Complete|","5.0","" +"`LWG2743 `__","P0083R3 ``node_handle`` private members missing ""exposition only"" comment","2020-11 (Virtual)","|Nothing To Do|","","" +"`LWG2820 `__","Clarify ```` macros","2020-11 (Virtual)","|Nothing To Do|","","" +"`LWG3120 `__","Unclear behavior of ``monotonic_buffer_resource::release()``","2020-11 (Virtual)","","","" +"`LWG3170 `__","``is_always_equal`` added to ``std::allocator`` makes the standard library treat derived types as always equal","2020-11 (Virtual)","|Complete|","18.0","" +"`LWG3036 `__","``polymorphic_allocator::destroy`` is extraneous","2020-11 (Virtual)","|Nothing To Do| [#note-LWG3036]_","","" +"`LWG3171 `__","LWG2989 breaks ``directory_entry`` stream insertion","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3306 `__","``ranges::advance`` violates its preconditions","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3403 `__","Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)``","2020-11 (Virtual)","","","" +"`LWG3404 `__","Finish removing subrange's conversions from pair-like","2020-11 (Virtual)","|Complete|","13.0","" +"`LWG3405 `__","``common_view``'s converting constructor is bad, too","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3406 `__","``elements_view::begin()`` and ``elements_view::end()`` have incompatible constraints","2020-11 (Virtual)","|Complete|","16.0","" +"`LWG3419 `__","[algorithms.requirements]/15 doesn't reserve as many rights as it intends to","2020-11 (Virtual)","|Nothing To Do|","","" +"`LWG3420 `__","cpp17-iterator should check that the type looks like an iterator first","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3421 `__","Imperfect ADL emulation for boolean-testable","2020-11 (Virtual)","|Nothing To Do|","","" +"`LWG3425 `__","``condition_variable_any`` fails to constrain its Lock parameters","2020-11 (Virtual)","|Nothing To Do|","","" +"`LWG3426 `__","``operator<=>(const unique_ptr&, nullptr_t)`` can't get no satisfaction","2020-11 (Virtual)","|Complete|","16.0","" +"`LWG3427 `__","``operator<=>(const shared_ptr&, nullptr_t)`` definition ill-formed","2020-11 (Virtual)","|Complete|","16.0","" +"`LWG3428 `__","``single_view``'s in place constructor should be explicit","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3434 `__","``ios_base`` never reclaims memory for iarray and parray","2020-11 (Virtual)","|Nothing To Do|","","" +"`LWG3437 `__","``__cpp_lib_polymorphic_allocator`` is in the wrong header","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3446 `__","``indirectly_readable_traits`` ambiguity for types with both ``value_type`` and ``element_type``","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3448 `__","``transform_view``'s ``sentinel`` not comparable with ``iterator``","2020-11 (Virtual)","","","" +"`LWG3449 `__","``take_view`` and ``take_while_view``'s ``sentinel`` not comparable with their ``const iterator``","2020-11 (Virtual)","|Complete|","16.0","" +"`LWG3453 `__","Generic code cannot call ``ranges::advance(i, s)``","2020-11 (Virtual)","|Nothing To Do|","","" +"`LWG3455 `__","Incorrect Postconditions on ``unique_ptr`` move assignment","2020-11 (Virtual)","|Nothing To Do|","","" +"`LWG3460 `__","Unimplementable ``noop_coroutine_handle`` guarantees","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3461 `__","``convertible_to``'s description mishandles cv-qualified ``void``","2020-11 (Virtual)","|Nothing To Do|","","" +"`LWG3465 `__","``compare_partial_order_fallback`` requires ``F < E``","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3466 `__","Specify the requirements for ``promise``/``future``/``shared_future`` consistently","2020-11 (Virtual)","|Nothing To Do|","","" +"`LWG3467 `__","``bool`` can't be an integer-like type","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3472 `__","``counted_iterator`` is missing preconditions","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3473 `__","Normative encouragement in non-normative note","2020-11 (Virtual)","|Complete|","15.0","" +"`LWG3474 `__","Nesting ``join_views`` is broken because of CTAD","2020-11 (Virtual)","|Complete|","15.0","" +"`LWG3476 `__","``thread`` and ``jthread`` constructors require that the parameters be move-constructible but never move construct the parameters","2020-11 (Virtual)","","","" +"`LWG3477 `__","Simplify constraints for ``semiregular-box``","2020-11 (Virtual)","|Complete|","13.0","" +"`LWG3482 `__","``drop_view``'s const begin should additionally require ``sized_range``","2020-11 (Virtual)","|Complete|","14.0","" +"`LWG3483 `__","``transform_view::iterator``'s difference is overconstrained","2020-11 (Virtual)","|Complete|","14.0","" +"","","","","","" +"`LWG3391 `__","Problems with ``counted_iterator``/``move_iterator::base() const &``","2021-02 (Virtual)","","","" +"`LWG3433 `__","``subrange::advance(n)`` has UB when ``n < 0``","2021-02 (Virtual)","|Complete|","14.0","" +"`LWG3490 `__","``ranges::drop_while_view::begin()`` is missing a precondition","2021-02 (Virtual)","|Nothing To Do|","","" +"`LWG3492 `__","Minimal improvements to ``elements_view::iterator``","2021-02 (Virtual)","|Complete|","16.0","" +"`LWG3494 `__","Allow ranges to be conditionally borrowed","2021-02 (Virtual)","|Nothing To Do| [#note-LWG3494]_","","" +"`LWG3495 `__","``constexpr launder`` makes pointers to inactive members of unions usable","2021-02 (Virtual)","|Nothing To Do|","","" +"`LWG3500 `__","``join_view::iterator::operator->()`` is bogus","2021-02 (Virtual)","|Complete|","14.0","" +"`LWG3502 `__","``elements_view`` should not be allowed to return dangling reference","2021-02 (Virtual)","|Complete|","16.0","" +"`LWG3505 `__","``split_view::outer-iterator::operator++`` misspecified","2021-02 (Virtual)","","","" +"","","","","","" +"`LWG2774 `__","``std::function`` construction vs assignment","2021-06 (Virtual)","","","" +"`LWG2818 `__","``::std::`` everywhere rule needs tweaking","2021-06 (Virtual)","|Nothing To Do|","","" +"`LWG2997 `__","LWG 491 and the specification of ``{forward_,}list::unique``","2021-06 (Virtual)","","","" +"`LWG3410 `__","``lexicographical_compare_three_way`` is overspecified","2021-06 (Virtual)","|Complete|","17.0","" +"`LWG3430 `__","``std::fstream`` & co. should be constructible from string_view","2021-06 (Virtual)","|Complete|","19.0","" +"`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| [#note-LWG3481]_","","" +"`LWG3506 `__","Missing allocator-extended constructors for ``priority_queue``","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3517 `__","``join_view::iterator``'s ``iter_swap`` is underconstrained","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3518 `__","Exception requirements on char trait operations unclear","2021-06 (Virtual)","|Nothing To Do|","","" +"`LWG3519 `__","Incomplete synopses for ```` classes","2021-06 (Virtual)","","","" +"`LWG3520 `__","``iter_move`` and ``iter_swap`` are inconsistent for ``transform_view::iterator``","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3521 `__","Overly strict requirements on ``qsort`` and ``bsearch``","2021-06 (Virtual)","|Nothing To Do|","","" +"`LWG3522 `__","Missing requirement on ``InputIterator`` template parameter for ``priority_queue`` constructors","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3523 `__","``iota_view::sentinel`` is not always ``iota_view``'s sentinel","2021-06 (Virtual)","|Complete|","17.0","" +"`LWG3526 `__","Return types of ``uses_allocator_construction_args`` unspecified","2021-06 (Virtual)","","","" +"`LWG3527 `__","``uses_allocator_construction_args`` handles rvalue pairs of rvalue references incorrectly","2021-06 (Virtual)","","","" +"`LWG3528 `__","``make_from_tuple`` can perform (the equivalent of) a C-style cast","2021-06 (Virtual)","|Complete|","19.0","" +"`LWG3529 `__","``priority_queue(first, last)`` should construct ``c`` with ``(first, last)``","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3530 `__","``BUILTIN-PTR-MEOW`` should not opt the type out of syntactic checks","2021-06 (Virtual)","","","" +"`LWG3532 `__","``split_view::inner-iterator::operator++(int)`` should depend on ``Base``","2021-06 (Virtual)","","","" +"`LWG3533 `__","Make ``base() const &`` consistent across iterator wrappers that supports ``input_iterators``","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3536 `__","Should ``chrono::from_stream()`` assign zero to duration for failure?","2021-06 (Virtual)","","","" +"`LWG3539 `__","``format_to`` must not copy models of ``output_iterator``","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3540 `__","ยง[format.arg] There should be no const in ``basic_format_arg(const T* p)``","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3541 `__","``indirectly_readable_traits`` should be SFINAE-friendly for all types","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3542 `__","``basic_format_arg`` mishandles ``basic_string_view`` with custom traits","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3543 `__","Definition of when ``counted_iterators`` refer to the same sequence isn't quite right","2021-06 (Virtual)","|Nothing To Do|","","" +"`LWG3544 `__","``format-arg-store::args`` is unintentionally not exposition-only","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3546 `__","``common_iterator``'s postfix-proxy is not quite right","2021-06 (Virtual)","","","" +"`LWG3548 `__","``shared_ptr`` construction from ``unique_ptr`` should move (not copy) the deleter","2021-06 (Virtual)","|Complete|","15.0","" +"`LWG3549 `__","``view_interface`` is overspecified to derive from ``view_base``","2021-06 (Virtual)","|Complete|","14.0","" +"`LWG3551 `__","``borrowed_{iterator,subrange}_t`` are overspecified","2021-06 (Virtual)","|Nothing To Do|","","" +"`LWG3552 `__","Parallel specialized memory algorithms should require forward iterators","2021-06 (Virtual)","","","" +"`LWG3553 `__","Useless constraint in ``split_view::outer-iterator::value_type::begin()``","2021-06 (Virtual)","","","" +"`LWG3555 `__","``{transform,elements}_view::iterator::iterator_concept`` should consider const-qualification of the underlying range","2021-06 (Virtual)","","","" +"","","","","","" +"`LWG2191 `__","Incorrect specification of ``match_results(match_results&&)``","2021-10 (Virtual)","|Nothing To Do|","","" +"`LWG2381 `__","Inconsistency in parsing floating point numbers","2021-10 (Virtual)","|Complete|","19.0","" +"`LWG2762 `__","``unique_ptr operator*()`` should be ``noexcept``","2021-10 (Virtual)","|Complete|","19.0","" +"`LWG3121 `__","``tuple`` constructor constraints for ``UTypes&&...`` overloads","2021-10 (Virtual)","","","" +"`LWG3123 `__","``duration`` constructor from representation shouldn't be effectively non-throwing","2021-10 (Virtual)","","","" +"`LWG3146 `__","Excessive unwrapping in ``std::ref/cref``","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3152 `__","``common_type`` and ``common_reference`` have flaws in common","2021-10 (Virtual)","","","" +"`LWG3293 `__","``move_iterator operator+()`` has incorrect constraints","2021-10 (Virtual)","|Complete|","15.0","" +"`LWG3361 `__","``safe_range`` case","2021-10 (Virtual)","|Nothing To Do|","","" +"`LWG3392 `__","``ranges::distance()`` cannot be used on a move-only iterator with a sized sentinel","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3407 `__","Some problems with the wording changes of P1739R4","2021-10 (Virtual)","|Complete|","15.0","" +"`LWG3422 `__","Issues of ``seed_seq``'s constructors","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3470 `__","``convertible-to-non-slicing`` seems to reject valid case","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3480 `__","``directory_iterator`` and ``recursive_directory_iterator`` are not C++20 ranges","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3498 `__","Inconsistent ``noexcept``-specifiers for ``basic_syncbuf``","2021-10 (Virtual)","","","" +"`LWG3535 `__","``join_view::iterator::iterator_category`` and ``::iterator_concept`` lie","2021-10 (Virtual)","|Complete|","15.0","" +"`LWG3554 `__","``chrono::parse`` needs ``const charT*`` and ``basic_string_view`` overloads","2021-10 (Virtual)","","","" +"`LWG3557 `__","The ``static_cast`` expression in ``convertible_to`` has the wrong operand","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3559 `__","Semantic requirements of ``sized_range`` is circular","2021-10 (Virtual)","|Nothing To Do|","","" +"`LWG3560 `__","``ranges::equal`` and ``ranges::is_permutation`` should short-circuit for ``sized_ranges``","2021-10 (Virtual)","","","" +"`LWG3561 `__","Issue with internal counter in ``discard_block_engine``","2021-10 (Virtual)","","","" +"`LWG3563 `__","``keys_view`` example is broken","2021-10 (Virtual)","","","" +"`LWG3566 `__","Constraint recursion for ``operator<=>(optional, U)``","2021-10 (Virtual)","|Complete|","17.0","" +"`LWG3567 `__","Formatting move-only iterators take two","2021-10 (Virtual)","|Complete|","16.0","" +"`LWG3568 `__","``basic_istream_view`` needs to initialize ``value_``","2021-10 (Virtual)","|Complete|","16.0","" +"`LWG3570 `__","``basic_osyncstream::emit`` should be an unformatted output function","2021-10 (Virtual)","|Complete|","18.0","" +"`LWG3571 `__","``flush_emit`` should set ``badbit`` if the ``emit`` call fails","2021-10 (Virtual)","","","" +"`LWG3572 `__","``copyable-box`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3573 `__","Missing Throws element for ``basic_string_view(It begin, End end)``","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3574 `__","``common_iterator`` should be completely ``constexpr``-able","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3580 `__","``iota_view``'s ``iterator``'s binary ``operator+`` should be improved","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3581 `__","The range constructor makes ``basic_string_view`` not trivially move constructible","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3585 `__","``variant`` converting assignment with immovable alternative","2021-10 (Virtual)","","","" +"`LWG3589 `__","The ``const`` lvalue reference overload of ``get`` for ``subrange`` does not constrain ``I`` to be ``copyable`` when ``N == 0``","2021-10 (Virtual)","|Complete|","14.0","" +"`LWG3590 `__","``split_view::base() const &`` is overconstrained","2021-10 (Virtual)","|Complete|","16.0","" +"`LWG3591 `__","``lazy_split_view::inner-iterator::base() &&`` invalidates outer iterators","2021-10 (Virtual)","","","" +"`LWG3592 `__","``lazy_split_view`` needs to check the simpleness of Pattern","2021-10 (Virtual)","","","" +"`LWG3593 `__","Several iterators' ``base() const &`` and ``lazy_split_view::outer-iterator::value_type::end()`` missing ``noexcept``","2021-10 (Virtual)","","","" +"`LWG3595 `__","Exposition-only classes proxy and postfix-proxy for ``common_iterator`` should be fully ``constexpr``","2021-10 (Virtual)","|Complete|","14.0","" +"","","","","","" +"`LWG3088 `__","``forward_list::merge`` behaviour unclear when passed ``*this``","2022-02 (Virtual)","","","" +"`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.0","" +"`LWG3616 `__","LWG 3498 seems to miss the non-member ``swap`` for ``basic_syncbuf`` ","2022-02 (Virtual)","|Complete|","18.0","" +"`LWG3618 `__","Unnecessary ``iter_move`` for ``transform_view::iterator`` ","2022-02 (Virtual)","|Complete|","19.0","" +"`LWG3619 `__","Specification of ``vformat_to`` contains ill-formed ``formatted_size`` calls","2022-02 (Virtual)","|Nothing To Do|","","" +"`LWG3621 `__","Remove feature-test macro ``__cpp_lib_monadic_optional`` ","2022-02 (Virtual)","|Complete|","15.0","" +"`LWG3632 `__","``unique_ptr`` ""Mandates: This constructor is not selected by class template argument deduction""","2022-02 (Virtual)","|Nothing To Do|","","" +"`LWG3643 `__","Missing ``constexpr`` in ``std::counted_iterator`` ","2022-02 (Virtual)","|Complete|","19.0","" +"`LWG3648 `__","``format`` should not print ``bool`` with ``'c'`` ","2022-02 (Virtual)","|Complete|","15.0","" +"`LWG3649 `__","[fund.ts.v2] Reinstate and bump ``__cpp_lib_experimental_memory_resource`` feature test macro","2022-02 (Virtual)","","","" +"`LWG3650 `__","Are ``std::basic_string`` 's ``iterator`` and ``const_iterator`` constexpr iterators?","2022-02 (Virtual)","|Nothing To Do|","","" +"`LWG3654 `__","``basic_format_context::arg(size_t)`` should be ``noexcept`` ","2022-02 (Virtual)","|Complete|","15.0","" +"`LWG3657 `__","``std::hash`` is not enabled","2022-02 (Virtual)","|Complete|","17.0","" +"`LWG3660 `__","``iterator_traits::pointer`` should conform to ยง[iterator.traits]","2022-02 (Virtual)","|Complete|","14.0","" +"`LWG3661 `__","``constinit atomic> a(nullptr);`` should work","2022-02 (Virtual)","","","" +"","","","","","" +"`LWG3564 `__","``transform_view::iterator::value_type`` and ``iterator_category`` should use ``const F&``","2022-07 (Virtual)","|Complete|","20.0","" +"`LWG3617 `__","``function``/``packaged_task`` deduction guides and deducing ``this``","2022-07 (Virtual)","","","" +"`LWG3656 `__","Inconsistent bit operations returning a count","2022-07 (Virtual)","|Complete|","15.0","" +"`LWG3659 `__","Consider ``ATOMIC_FLAG_INIT`` undeprecation","2022-07 (Virtual)","|Complete|","15.0","" +"`LWG3670 `__","``Cpp17InputIterators`` don't have integer-class difference types","2022-07 (Virtual)","","","" +"`LWG3671 `__","``atomic_fetch_xor`` missing from ``stdatomic.h``","2022-07 (Virtual)","|Complete|","20.0","" +"`LWG3672 `__","``common_iterator::operator->()`` should return by value","2022-07 (Virtual)","|Complete|","19.0","" +"`LWG3683 `__","``operator==`` for ``polymorphic_allocator`` cannot deduce template argument in common cases","2022-07 (Virtual)","|Complete|","20.0","" +"`LWG3687 `__","``expected`` move constructor should move","2022-07 (Virtual)","|Complete|","16.0","" +"`LWG3692 `__","``zip_view::iterator``'s ``operator<=>`` is overconstrained","2022-07 (Virtual)","","","" +"`LWG3701 `__","Make ``formatter, charT>`` requirement explicit","2022-07 (Virtual)","|Complete|","15.0","" +"`LWG3702 `__","Should ``zip_transform_view::iterator`` remove ``operator<``","2022-07 (Virtual)","","","" +"`LWG3703 `__","Missing requirements for ``expected`` requires ``is_void``","2022-07 (Virtual)","|Complete|","16.0","" +"`LWG3704 `__","LWG 2059 added overloads that might be ill-formed for sets","2022-07 (Virtual)","","","" +"`LWG3705 `__","Hashability shouldn't depend on basic_string's allocator","2022-07 (Virtual)","|Complete|","16.0","" +"`LWG3707 `__","chunk_view::outer-iterator::value_type::size should return unsigned type","2022-07 (Virtual)","","","" +"`LWG3708 `__","``take_while_view::sentinel``'s conversion constructor should move","2022-07 (Virtual)","|Complete|","16.0","" +"`LWG3709 `__","LWG-3703 was underly ambitious","2022-07 (Virtual)","","","" +"`LWG3710 `__","The ``end`` of ``chunk_view`` for input ranges can be ``const``","2022-07 (Virtual)","","","" +"`LWG3711 `__","Missing preconditions for slide_view constructor","2022-07 (Virtual)","","","" +"`LWG3712 `__","``chunk_view`` and ``slide_view`` should not be ``default_initializable``","2022-07 (Virtual)","","","" +"`LWG3713 `__","Sorted with respect to comparator (only)","2022-07 (Virtual)","|Nothing To Do|","","" +"`LWG3715 `__","``view_interface::empty`` is overconstrained","2022-07 (Virtual)","|Complete|","19.0","" +"`LWG3719 `__","Directory iterators should be usable with default sentinel","2022-07 (Virtual)","|Complete|","17.0","" +"`LWG3721 `__","Allow an ``arg-id`` with a value of zero for ``width`` in ``std-format-spec``","2022-07 (Virtual)","|Complete|","16.0","" +"`LWG3724 `__","``decay-copy`` should be constrained","2022-07 (Virtual)","|Complete|","14.0","" +"","","","","","" +"`LWG3028 `__","Container requirements tables should distinguish ``const`` and non-``const`` variables","2022-11 (Kona)","","","" +"`LWG3118 `__","``fpos`` equality comparison unspecified","2022-11 (Kona)","","","" +"`LWG3177 `__","Limit permission to specialize variable templates to program-defined types","2022-11 (Kona)","|Nothing To Do|","","" +"`LWG3515 `__","ยง[stacktrace.basic.nonmem]: ``operator<<`` should be less templatized","2022-11 (Kona)","","","" +"`LWG3545 `__","``std::pointer_traits`` should be SFINAE-friendly","2022-11 (Kona)","|Complete|","18.0","" +"`LWG3569 `__","``join_view`` fails to support ranges of ranges with non-default_initializable iterators","2022-11 (Kona)","","","" +"`LWG3594 `__","``inout_ptr`` โ€” inconsistent ``release()`` in destructor","2022-11 (Kona)","|Complete|","19.0","" +"`LWG3597 `__","Unsigned integer types don't model advanceable","2022-11 (Kona)","","","" +"`LWG3600 `__","Making ``istream_iterator`` copy constructor trivial is an ABI break","2022-11 (Kona)","","","" +"`LWG3629 `__","``make_error_code`` and ``make_error_condition`` are customization points","2022-11 (Kona)","|Complete|","16.0","" +"`LWG3636 `__","``formatter::format`` should be ``const``-qualified","2022-11 (Kona)","|Complete|","16.0","" +"`LWG3646 `__","``std::ranges::view_interface::size`` returns a signed type","2022-11 (Kona)","|Complete|","16.0","" +"`LWG3677 `__","Is a cv-qualified ``pair`` specially handled in uses-allocator construction?","2022-11 (Kona)","|Complete|","18.0","" +"`LWG3717 `__","``common_view::end`` should improve ``random_access_range`` case","2022-11 (Kona)","","","" +"`LWG3732 `__","``prepend_range`` and ``append_range`` can't be amortized constant time","2022-11 (Kona)","|Nothing To Do|","","" +"`LWG3736 `__","``move_iterator`` missing ``disable_sized_sentinel_for`` specialization","2022-11 (Kona)","|Complete|","19.0","" +"`LWG3737 `__","``take_view::sentinel`` should provide ``operator-``","2022-11 (Kona)","","","" +"`LWG3738 `__","Missing preconditions for ``take_view`` constructor","2022-11 (Kona)","|Complete|","16.0","" +"`LWG3743 `__","``ranges::to``'s reserve may be ill-formed","2022-11 (Kona)","","","" +"`LWG3745 `__","``std::atomic_wait`` and its friends lack ``noexcept``","2022-11 (Kona)","|Complete|","16.0","" +"`LWG3746 `__","``optional``'s spaceship with ``U`` with a type derived from optional causes infinite constraint meta-recursion","2022-11 (Kona)","|Complete|","17.0","" +"`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| [#note-LWG3750]_","","" +"`LWG3751 `__","Missing feature macro for ``flat_set``","2022-11 (Kona)","","","" +"`LWG3753 `__","Clarify entity vs. freestanding entity","2022-11 (Kona)","","","" +"`LWG3754 `__","Class template expected synopsis contains declarations that do not match the detailed description","2022-11 (Kona)","|Nothing To Do|","","" +"`LWG3755 `__","``tuple-for-each`` can call ``user-defined`` ``operator,``","2022-11 (Kona)","|Complete|","17.0","" +"`LWG3757 `__","What's the effect of ``std::forward_like(x)``?","2022-11 (Kona)","","","" +"`LWG3759 `__","``ranges::rotate_copy`` should use ``std::move``","2022-11 (Kona)","|Complete|","15.0","" +"`LWG3760 `__","``cartesian_product_view::iterator``'s ``parent_`` is never valid","2022-11 (Kona)","","","" +"`LWG3761 `__","``cartesian_product_view::iterator::operator-`` should pass by reference","2022-11 (Kona)","","","" +"`LWG3762 `__","``generator::iterator::operator==`` should pass by reference","2022-11 (Kona)","","","" +"`LWG3764 `__","``reference_wrapper::operator()`` should propagate noexcept","2022-11 (Kona)","|Complete|","17.0","" +"`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)","","","" +"`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.0","" +"`LWG3784 `__","std.compat should not provide ``::byte`` and its friends","2022-11 (Kona)","|Complete|","19.0","" +"`LWG3785 `__","``ranges::to`` is over-constrained on the destination type being a range","2022-11 (Kona)","","","" +"`LWG3788 `__","``jthread::operator=(jthread&&)`` postconditions are unimplementable under self-assignment","2022-11 (Kona)","","","" +"`LWG3792 `__","``__cpp_lib_constexpr_algorithms`` should also be defined in ````","2022-11 (Kona)","|Complete|","16.0","" +"`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| [#note-LWG3798]_","","" +"`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.0","" +"`LWG3756 `__","Is the ``std::atomic_flag`` class signal-safe?","2023-02 (Issaquah)","","","" +"`LWG3769 `__","``basic_const_iterator::operator==`` causes infinite constraint recursion","2023-02 (Issaquah)","","","" +"`LWG3807 `__","The feature test macro for ``ranges::find_last`` should be renamed","2023-02 (Issaquah)","","","" +"`LWG3811 `__","``views::as_const`` on ``ref_view`` should return ``ref_view``","2023-02 (Issaquah)","","","" +"`LWG3820 `__","``cartesian_product_view::iterator::prev`` is not quite right","2023-02 (Issaquah)","","","" +"`LWG3825 `__","Missing compile-time argument ``id`` check in ``basic_format_parse_context::next_arg_id``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3204 `__","``sub_match::swap`` only swaps the base class","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3733 `__","``ranges::to`` misuses ``cpp17-input-iterator``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3742 `__","``deque::prepend_range`` needs to permute","2023-02 (Issaquah)","","","" +"`LWG3790 `__","`P1467 `__ accidentally changed ``nexttoward``'s signature","2023-02 (Issaquah)","","","" +"`LWG3819 `__","``reference_meows_from_temporary`` should not use ``is_meowible``","2023-02 (Issaquah)","","","" +"`LWG3821 `__","``uses_allocator_construction_args`` should have overload for ``pair-like``","2023-02 (Issaquah)","|Complete|","18.0","" +"`LWG3834 `__","Missing ``constexpr`` for ``std::intmax_t`` math functions in ````","2023-02 (Issaquah)","","","" +"`LWG3839 `__","``range_formatter``'s ``set_separator``, ``set_brackets``, and ``underlying`` functions should be ``noexcept``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3841 `__","```` should not be ""all freestanding""","2023-02 (Issaquah)","","","" +"`LWG3842 `__","Unclear wording for ``precision`` in ``chrono-format-spec``","2023-02 (Issaquah)","|Complete|","16.0","" +"`LWG3848 `__","``adjacent_view``, ``adjacent_transform_view`` and ``slide_view`` missing ``base`` accessor","2023-02 (Issaquah)","","","" +"`LWG3849 `__","``cartesian_product_view::iterator``'s default constructor is overconstrained","2023-02 (Issaquah)","","","" +"`LWG3850 `__","``views::as_const`` on ``empty_view`` should return ``empty_view``","2023-02 (Issaquah)","","","" +"`LWG3851 `__","``chunk_view::inner-iterator`` missing custom ``iter_move`` and ``iter_swap``","2023-02 (Issaquah)","","","" +"`LWG3853 `__","``basic_const_iterator::operator->`` is ill-formed","2023-02 (Issaquah)","","","" +"`LWG3857 `__","``basic_string_view`` should allow explicit conversion when only traits vary","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3860 `__","``range_common_reference_t`` is missing","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3866 `__","Bad Mandates for ``expected::transform_error`` overloads","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3867 `__","Should ``std::basic_osyncstream``'s move assignment operator be ``noexcept``?","2023-02 (Issaquah)","|Complete|","18.0","" +"`LWG3441 `__","Misleading note about calls to customization points","2023-02 (Issaquah)","","","" +"`LWG3622 `__","Misspecified transitivity of equivalence in ยง[unord.req.general]","2023-02 (Issaquah)","","","" +"`LWG3631 `__","``basic_format_arg(T&&)`` should use ``remove_cvref_t`` throughout","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3645 `__","``resize_and_overwrite`` is overspecified to call its callback with lvalues","2023-02 (Issaquah)","|Complete|","14.0","" +"`LWG3655 `__","The ``INVOKE`` operation and union types","2023-02 (Issaquah)","|Complete|","18.0","" +"`LWG3723 `__","``priority_queue::push_range`` needs to ``append_range``","2023-02 (Issaquah)","","","" +"`LWG3734 `__","Inconsistency in ``inout_ptr`` and ``out_ptr`` for empty case","2023-02 (Issaquah)","|Complete|","19.0","" +"`LWG3772 `__","``repeat_view``'s ``piecewise`` constructor is missing Postconditions","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3786 `__","Flat maps' deduction guide needs to default ``Allocator`` to be useful","2023-02 (Issaquah)","","","" +"`LWG3803 `__","``flat_foo`` constructors taking ``KeyContainer`` lack ``KeyCompare`` parameter","2023-02 (Issaquah)","","","" +"`LWG3810 `__","CTAD for ``std::basic_format_args``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3827 `__","Deprecate ```` and ```` macros","2023-02 (Issaquah)","","","" +"`LWG3828 `__","Sync ``intmax_t`` and ``uintmax_t`` with C2x","2023-02 (Issaquah)","|Nothing To Do|","","" +"`LWG3833 `__","Remove specialization ``template struct formatter``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3836 `__","``std::expected`` conversion constructor ``expected(const expected&)`` should take precedence over ``expected(U&&)`` with operator ``bool``","2023-02 (Issaquah)","|Complete|","18.0","" +"`LWG3843 `__","``std::expected::value() &`` assumes ``E`` is copy constructible","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3847 `__","``ranges::to`` can still return views","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3862 `__","``basic_const_iterator``'s ``common_type`` specialization is underconstrained","2023-02 (Issaquah)","","","" +"`LWG3865 `__","Sorting a range of ``pairs``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3869 `__","Deprecate ``std::errc`` constants related to UNIX STREAMS","2023-02 (Issaquah)","|Complete|","19.0","" +"`LWG3870 `__","Remove ``voidify``","2023-02 (Issaquah)","","","" +"`LWG3871 `__","Adjust note about ``terminate``","2023-02 (Issaquah)","","","" +"`LWG3872 `__","``basic_const_iterator`` should have custom ``iter_move``","2023-02 (Issaquah)","","","" +"`LWG3875 `__","``std::ranges::repeat_view::iterator`` may be ill-formed","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3876 `__","Default constructor of ``std::layout_XX::mapping`` misses precondition","2023-02 (Issaquah)","","","" +"`LWG3877 `__","Incorrect constraints on ``const``-qualified monadic overloads for ``std::expected``","2023-02 (Issaquah)","|Complete|","17.0","" +"`LWG3878 `__","import ``std;`` should guarantee initialization of standard iostreams objects","2023-02 (Issaquah)","","","" +"`LWG3879 `__","``erase_if`` for ``flat_{,multi}set`` is incorrectly specified","2023-02 (Issaquah)","","","" +"`LWG3880 `__","Clarify ``operator+=`` complexity for ``{chunk,stride}_view::iterator``","2023-02 (Issaquah)","","","" +"`LWG3881 `__","Incorrect formatting of container adapters backed by ``std::string``","2023-02 (Issaquah)","|Complete|","17.0","" diff --git a/libcxx/docs/Status/Cxx23Papers.csv b/libcxx/docs/Status/Cxx23Papers.csv index e8c28cb45cb0e6..eefcaa96bb7760 100644 --- a/libcxx/docs/Status/Cxx23Papers.csv +++ b/libcxx/docs/Status/Cxx23Papers.csv @@ -1,123 +1,123 @@ -"Paper #","Paper Name","Meeting","Status","First released version" -"`P0881R7 `__","A Proposal to add stacktrace library","2020-11 (Virtual)","","" -"`P0943R6 `__","Support C atomics in C++","2020-11 (Virtual)","|Complete|","15.0" -"`P1048R1 `__","A proposal for a type trait to detect scoped enumerations","2020-11 (Virtual)","|Complete|","12.0" -"`P1679R3 `__","string contains function","2020-11 (Virtual)","|Complete|","12.0" -"","","","","" -"`P1682R3 `__","std::to_underlying for enumerations","2021-02 (Virtual)","|Complete|","13.0" -"`P2017R1 `__","Conditionally borrowed ranges","2021-02 (Virtual)","|Complete|","16.0" -"`P2160R1 `__","Locks lock lockables","2021-02 (Virtual)","|Nothing To Do|","" -"`P2162R2 `__","Inheriting from std::variant","2021-02 (Virtual)","|Complete|","13.0" -"`P2212R2 `__","Relax Requirements for time_point::clock","2021-02 (Virtual)","|Nothing To Do|","" -"`P2259R1 `__","Repairing input range adaptors and counted_iterator","2021-02 (Virtual)","","" -"","","","","" -"`P0401R6 `__","Providing size feedback in the Allocator interface","2021-06 (Virtual)","|Complete|","15.0" -"`P0448R4 `__","A strstream replacement using span as buffer","2021-06 (Virtual)","","" -"`P1132R8 `__","out_ptr - a scalable output pointer abstraction","2021-06 (Virtual)","|Complete|","19.0" -"`P1328R1 `__","Making std::type_info::operator== constexpr","2021-06 (Virtual)","|Complete|","17.0" -"`P1425R4 `__","Iterators pair constructors for stack and queue","2021-06 (Virtual)","|Complete|","14.0" -"`P1518R2 `__","Stop overconstraining allocators in container deduction guides","2021-06 (Virtual)","|Complete|","13.0" -"`P1659R3 `__","starts_with and ends_with","2021-06 (Virtual)","|Complete|","19.0" -"`P1951R1 `__","Default Arguments for pair Forwarding Constructor","2021-06 (Virtual)","|Complete|","14.0" -"`P1989R2 `__","Range constructor for std::string_view","2021-06 (Virtual)","|Complete|","14.0" -"`P2136R3 `__","invoke_r","2021-06 (Virtual)","|Complete|","17.0" -"`P2166R1 `__","A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr","2021-06 (Virtual)","|Complete|","13.0" -"","","","","" -"`P0288R9 `__","``any_invocable``","2021-10 (Virtual)","","" -"`P0798R8 `__","Monadic operations for ``std::optional``","2021-10 (Virtual)","|Complete|","14.0" -"`P0849R8 `__","``auto(x)``: ``DECAY_COPY`` in the language","2021-10 (Virtual)","|Complete|","14.0" -"`P1072R10 `__","``basic_string::resize_and_overwrite``","2021-10 (Virtual)","|Complete|","14.0" -"`P1147R1 `__","Printing ``volatile`` Pointers","2021-10 (Virtual)","|Complete|","14.0" -"`P1272R4 `__","Byteswapping for fun&&nuf","2021-10 (Virtual)","|Complete|","14.0" -"`P1675R2 `__","``rethrow_exception`` must be allowed to copy","2021-10 (Virtual)","|Nothing To Do|","" -"`P2077R3 `__","Heterogeneous erasure overloads for associative containers","2021-10 (Virtual)","","" -"`P2251R1 `__","Require ``span`` & ``basic_string_view`` to be Trivially Copyable","2021-10 (Virtual)","|Complete|","14.0" -"`P2301R1 `__","Add a ``pmr`` alias for ``std::stacktrace``","2021-10 (Virtual)","","" -"`P2321R2 `__","``zip``","2021-10 (Virtual)","|In Progress|","" -"`P2340R1 `__","Clarifying the status of the 'C headers'","2021-10 (Virtual)","|Nothing To Do|","" -"`P2393R1 `__","Cleaning up ``integer``-class types","2021-10 (Virtual)","","" -"`P2401R0 `__","Add a conditional ``noexcept`` specification to ``std::exchange``","2021-10 (Virtual)","|Complete|","14.0" -"","","","","" -"`P0323R12 `__","``std::expected``","2022-02 (Virtual)","|Complete|","16.0" -"`P0533R9 `__","``constexpr`` for ```` and ````","2022-02 (Virtual)","|In Progress| [#note-P0533R9]_","" -"`P0627R6 `__","Function to mark unreachable code","2022-02 (Virtual)","|Complete|","15.0" -"`P1206R7 `__","``ranges::to``: A function to convert any range to a container","2022-02 (Virtual)","|Complete|","17.0" -"`P1413R3 `__","Deprecate ``std::aligned_storage`` and ``std::aligned_union``","2022-02 (Virtual)","|Complete| [#note-P1413R3]_","" -"`P2255R2 `__","A type trait to detect reference binding to temporary","2022-02 (Virtual)","","" -"`P2273R3 `__","Making ``std::unique_ptr`` constexpr","2022-02 (Virtual)","|Complete|","16.0" -"`P2387R3 `__","Pipe support for user-defined range adaptors","2022-02 (Virtual)","|Complete|","19.0" -"`P2440R1 `__","``ranges::iota``, ``ranges::shift_left`` and ``ranges::shift_right``","2022-02 (Virtual)","","" -"`P2441R2 `__","``views::join_with``","2022-02 (Virtual)","|In Progress|","" -"`P2442R1 `__","Windowing range adaptors: ``views::chunk`` and ``views::slide``","2022-02 (Virtual)","","" -"`P2443R1 `__","``views::chunk_by``","2022-02 (Virtual)","|Complete|","18.0" -"","","","","" -"`P0009R18 `__","mdspan: A Non-Owning Multidimensional Array Reference","2022-07 (Virtual)","|Complete|","18.0" -"`P0429R9 `__","A Standard ``flat_map``","2022-07 (Virtual)","","" -"`P1169R4 `__","``static operator()``","2022-07 (Virtual)","|Complete|","16.0" -"`P1222R4 `__","A Standard ``flat_set``","2022-07 (Virtual)","","" -"`P1223R5 `__","``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()``","2022-07 (Virtual)","|Complete|","19.0" -"`P1467R9 `__","Extended ``floating-point`` types and standard names","2022-07 (Virtual)","","" -"`P1642R11 `__","Freestanding ``[utilities]``, ``[ranges]``, and ``[iterators]``","2022-07 (Virtual)","","" -"`P1899R3 `__","``stride_view``","2022-07 (Virtual)","","" -"`P2093R14 `__","Formatted output","2022-07 (Virtual)","|Complete|","18.0" -"`P2165R4 `__","Compatibility between ``tuple``, ``pair`` and ``tuple-like`` objects","2022-07 (Virtual)","","" -"`P2278R4 `__","``cbegin`` should always return a constant iterator","2022-07 (Virtual)","","" -"`P2286R8 `__","Formatting Ranges","2022-07 (Virtual)","|Complete|","16.0" -"`P2291R3 `__","Add Constexpr Modifiers to Functions ``to_chars`` and ``from_chars`` for Integral Types in ```` Header","2022-07 (Virtual)","|Complete|","16.0" -"`P2302R4 `__","``std::ranges::contains``","2022-07 (Virtual)","|Complete|","19.0" -"`P2322R6 `__","``ranges::fold``","2022-07 (Virtual)","","" -"`P2374R4 `__","``views::cartesian_product``","2022-07 (Virtual)","","" -"`P2404R3 `__","Move-only types for ``equality_comparable_with``, ``totally_ordered_with``, and ``three_way_comparable_with``","2022-07 (Virtual)","","" -"`P2408R5 `__","Ranges iterators as inputs to non-Ranges algorithms","2022-07 (Virtual)","","" -"`P2417R2 `__","A more ``constexpr`` ``bitset``","2022-07 (Virtual)","|Complete|","16.0" -"`P2419R2 `__","Clarify handling of encodings in localized formatting of chrono types","2022-07 (Virtual)","","" -"`P2438R2 `__","``std::string::substr() &&``","2022-07 (Virtual)","|Complete|","16.0" -"`P2445R1 `__","``forward_like``","2022-07 (Virtual)","|Complete|","16.0" -"`P2446R2 `__","``views::as_rvalue``","2022-07 (Virtual)","|Complete|","16.0" -"`P2460R2 `__","Relax requirements on ``wchar_t`` to match existing practices","2022-07 (Virtual)","|Nothing To Do|","" -"`P2465R3 `__","Standard Library Modules ``std`` and ``std.compat``","2022-07 (Virtual)","|Complete|","19.0" -"`P2467R1 `__","Support exclusive mode for ``fstreams``","2022-07 (Virtual)","|Complete|","18.0" -"`P2474R2 `__","``views::repeat``","2022-07 (Virtual)","|Complete|","17.0" -"`P2494R2 `__","Relaxing range adaptors to allow for move only types","2022-07 (Virtual)","|Complete|","17.0" -"`P2499R0 `__","``string_view`` range constructor should be ``explicit``","2022-07 (Virtual)","|Complete|","16.0" -"`P2502R2 `__","``std::generator``: Synchronous Coroutine Generator for Ranges","2022-07 (Virtual)","","" -"`P2508R1 `__","Exposing ``std::basic-format-string``","2022-07 (Virtual)","|Complete|","15.0" -"`P2513R4 `__","``char8_t`` Compatibility and Portability Fixes","2022-07 (Virtual)","","" -"`P2517R1 `__","Add a conditional ``noexcept`` specification to ``std::apply``","2022-07 (Virtual)","|Complete|","3.9" -"`P2520R0 `__","``move_iterator`` should be a random access iterator","2022-07 (Virtual)","|Complete| [#note-P2520R0]_","17.0" -"`P2540R1 `__","Empty Product for certain Views","2022-07 (Virtual)","","" -"`P2549R1 `__","``std::unexpected`` should have ``error()`` as member accessor","2022-07 (Virtual)","|Complete|","16.0" -"`P2585R0 `__","Improving default container formatting","2022-07 (Virtual)","|Complete|","17.0" -"`P2590R2 `__","Explicit lifetime management","2022-07 (Virtual)","","" -"`P2599R2 `__","``mdspan::size_type`` should be ``index_type``","2022-07 (Virtual)","|Complete|","18.0" -"`P2604R0 `__","mdspan: rename pointer and contiguous","2022-07 (Virtual)","|Complete|","18.0" -"`P2613R1 `__","Add the missing ``empty`` to ``mdspan``","2022-07 (Virtual)","|Complete|","18.0" -"","","","","" -"`P1202R5 `__","Asymmetric Fences","2022-11 (Kona)","","" -"`P1264R2 `__","Revising the wording of ``stream`` input operations","2022-11 (Kona)","|Complete|","9.0" -"`P1478R8 `__","``Byte-wise`` ``atomic`` ``memcpy``","2022-11 (Kona)","","" -"`P2167R3 `__","Improved Proposed Wording for LWG 2114","2022-11 (Kona)","","" -"`P2396R1 `__","Concurrency TS 2 fixes ","2022-11 (Kona)","","" -"`P2505R5 `__","Monadic Functions for ``std::expected``","2022-11 (Kona)","|Complete|","17.0" -"`P2539R4 `__","Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?","2022-11 (Kona)","|Complete|","18.0" -"`P2602R2 `__","Poison Pills are Too Toxic","2022-11 (Kona)","|Complete|","19.0" -"`P2708R1 `__","No Further Fundamentals TSes","2022-11 (Kona)","|Nothing To Do|","" -"","","","","" -"`P0290R4 `__","``apply()`` for ``synchronized_value``","2023-02 (Issaquah)","","" -"`P2770R0 `__","Stashing stashing ``iterators`` for proper flattening","2023-02 (Issaquah)","|Partial| [#note-P2770R0]_","" -"`P2164R9 `__","``views::enumerate``","2023-02 (Issaquah)","","" -"`P2711R1 `__","Making multi-param constructors of ``views`` ``explicit``","2023-02 (Issaquah)","|In Progress| [#note-P2711R1]_","" -"`P2609R3 `__","Relaxing Ranges Just A Smidge","2023-02 (Issaquah)","|Complete| [#note-P2609R3]_","20.0" -"`P2713R1 `__","Escaping improvements in ``std::format``","2023-02 (Issaquah)","|Complete|","19.0" -"`P2675R1 `__","``format``'s width estimation is too approximate and not forward compatible","2023-02 (Issaquah)","|Complete|","17.0" -"`P2572R1 `__","``std::format`` fill character allowances","2023-02 (Issaquah)","|Complete|","17.0" -"`P2693R1 `__","Formatting ``thread::id`` and ``stacktrace``","2023-02 (Issaquah)","|Partial| [#note-P2693R1]_","" -"`P2679R2 `__","Fixing ``std::start_lifetime_as`` for arrays","2023-02 (Issaquah)","","" -"`P2674R1 `__","A trait for implicit lifetime types","2023-02 (Issaquah)","","" -"`P2655R3 `__","``common_reference_t`` of ``reference_wrapper`` Should Be a Reference Type","2023-02 (Issaquah)","","" -"`P2652R2 `__","Disallow User Specialization of ``allocator_traits``","2023-02 (Issaquah)","|Complete|","19.0" -"`P2787R1 `__","``pmr::generator`` - Promise Types are not Values","2023-02 (Issaquah)","","" -"`P2614R2 `__","Deprecate ``numeric_limits::has_denorm``","2023-02 (Issaquah)","|Complete|","18.0" -"`P2588R3 `__","``barrier``โ€™s phase completion guarantees","2023-02 (Issaquah)","","" -"`P2763R1 `__","``layout_stride`` static extents default constructor fix","2023-02 (Issaquah)","","" -"`P2736R2 `__","Referencing The Unicode Standard","2023-02 (Issaquah)","|Complete|","19.0" +"Paper #","Paper Name","Meeting","Status","First released version","Notes" +"`P0881R7 `__","A Proposal to add stacktrace library","2020-11 (Virtual)","","","" +"`P0943R6 `__","Support C atomics in C++","2020-11 (Virtual)","|Complete|","15.0","" +"`P1048R1 `__","A proposal for a type trait to detect scoped enumerations","2020-11 (Virtual)","|Complete|","12.0","" +"`P1679R3 `__","string contains function","2020-11 (Virtual)","|Complete|","12.0","" +"","","","","","" +"`P1682R3 `__","std::to_underlying for enumerations","2021-02 (Virtual)","|Complete|","13.0","" +"`P2017R1 `__","Conditionally borrowed ranges","2021-02 (Virtual)","|Complete|","16.0","" +"`P2160R1 `__","Locks lock lockables","2021-02 (Virtual)","|Nothing To Do|","","" +"`P2162R2 `__","Inheriting from std::variant","2021-02 (Virtual)","|Complete|","13.0","" +"`P2212R2 `__","Relax Requirements for time_point::clock","2021-02 (Virtual)","|Nothing To Do|","","" +"`P2259R1 `__","Repairing input range adaptors and counted_iterator","2021-02 (Virtual)","","","" +"","","","","","" +"`P0401R6 `__","Providing size feedback in the Allocator interface","2021-06 (Virtual)","|Complete|","15.0","" +"`P0448R4 `__","A strstream replacement using span as buffer","2021-06 (Virtual)","","","" +"`P1132R8 `__","out_ptr - a scalable output pointer abstraction","2021-06 (Virtual)","|Complete|","19.0","" +"`P1328R1 `__","Making std::type_info::operator== constexpr","2021-06 (Virtual)","|Complete|","17.0","" +"`P1425R4 `__","Iterators pair constructors for stack and queue","2021-06 (Virtual)","|Complete|","14.0","" +"`P1518R2 `__","Stop overconstraining allocators in container deduction guides","2021-06 (Virtual)","|Complete|","13.0","" +"`P1659R3 `__","starts_with and ends_with","2021-06 (Virtual)","|Complete|","19.0","" +"`P1951R1 `__","Default Arguments for pair Forwarding Constructor","2021-06 (Virtual)","|Complete|","14.0","" +"`P1989R2 `__","Range constructor for std::string_view","2021-06 (Virtual)","|Complete|","14.0","" +"`P2136R3 `__","invoke_r","2021-06 (Virtual)","|Complete|","17.0","" +"`P2166R1 `__","A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr","2021-06 (Virtual)","|Complete|","13.0","" +"","","","","","" +"`P0288R9 `__","``any_invocable``","2021-10 (Virtual)","","","" +"`P0798R8 `__","Monadic operations for ``std::optional``","2021-10 (Virtual)","|Complete|","14.0","" +"`P0849R8 `__","``auto(x)``: ``DECAY_COPY`` in the language","2021-10 (Virtual)","|Complete|","14.0","" +"`P1072R10 `__","``basic_string::resize_and_overwrite``","2021-10 (Virtual)","|Complete|","14.0","" +"`P1147R1 `__","Printing ``volatile`` Pointers","2021-10 (Virtual)","|Complete|","14.0","" +"`P1272R4 `__","Byteswapping for fun&&nuf","2021-10 (Virtual)","|Complete|","14.0","" +"`P1675R2 `__","``rethrow_exception`` must be allowed to copy","2021-10 (Virtual)","|Nothing To Do|","","" +"`P2077R3 `__","Heterogeneous erasure overloads for associative containers","2021-10 (Virtual)","","","" +"`P2251R1 `__","Require ``span`` & ``basic_string_view`` to be Trivially Copyable","2021-10 (Virtual)","|Complete|","14.0","" +"`P2301R1 `__","Add a ``pmr`` alias for ``std::stacktrace``","2021-10 (Virtual)","","","" +"`P2321R2 `__","``zip``","2021-10 (Virtual)","|In Progress|","","" +"`P2340R1 `__","Clarifying the status of the 'C headers'","2021-10 (Virtual)","|Nothing To Do|","","" +"`P2393R1 `__","Cleaning up ``integer``-class types","2021-10 (Virtual)","","","" +"`P2401R0 `__","Add a conditional ``noexcept`` specification to ``std::exchange``","2021-10 (Virtual)","|Complete|","14.0","" +"","","","","","" +"`P0323R12 `__","``std::expected``","2022-02 (Virtual)","|Complete|","16.0","" +"`P0533R9 `__","``constexpr`` for ```` and ````","2022-02 (Virtual)","|In Progress| [#note-P0533R9]_","","" +"`P0627R6 `__","Function to mark unreachable code","2022-02 (Virtual)","|Complete|","15.0","" +"`P1206R7 `__","``ranges::to``: A function to convert any range to a container","2022-02 (Virtual)","|Complete|","17.0","" +"`P1413R3 `__","Deprecate ``std::aligned_storage`` and ``std::aligned_union``","2022-02 (Virtual)","|Complete| [#note-P1413R3]_","","" +"`P2255R2 `__","A type trait to detect reference binding to temporary","2022-02 (Virtual)","","","" +"`P2273R3 `__","Making ``std::unique_ptr`` constexpr","2022-02 (Virtual)","|Complete|","16.0","" +"`P2387R3 `__","Pipe support for user-defined range adaptors","2022-02 (Virtual)","|Complete|","19.0","" +"`P2440R1 `__","``ranges::iota``, ``ranges::shift_left`` and ``ranges::shift_right``","2022-02 (Virtual)","","","" +"`P2441R2 `__","``views::join_with``","2022-02 (Virtual)","|In Progress|","","" +"`P2442R1 `__","Windowing range adaptors: ``views::chunk`` and ``views::slide``","2022-02 (Virtual)","","","" +"`P2443R1 `__","``views::chunk_by``","2022-02 (Virtual)","|Complete|","18.0","" +"","","","","","" +"`P0009R18 `__","mdspan: A Non-Owning Multidimensional Array Reference","2022-07 (Virtual)","|Complete|","18.0","" +"`P0429R9 `__","A Standard ``flat_map``","2022-07 (Virtual)","","","" +"`P1169R4 `__","``static operator()``","2022-07 (Virtual)","|Complete|","16.0","" +"`P1222R4 `__","A Standard ``flat_set``","2022-07 (Virtual)","","","" +"`P1223R5 `__","``ranges::find_last()``, ``ranges::find_last_if()``, and ``ranges::find_last_if_not()``","2022-07 (Virtual)","|Complete|","19.0","" +"`P1467R9 `__","Extended ``floating-point`` types and standard names","2022-07 (Virtual)","","","" +"`P1642R11 `__","Freestanding ``[utilities]``, ``[ranges]``, and ``[iterators]``","2022-07 (Virtual)","","","" +"`P1899R3 `__","``stride_view``","2022-07 (Virtual)","","","" +"`P2093R14 `__","Formatted output","2022-07 (Virtual)","|Complete|","18.0","" +"`P2165R4 `__","Compatibility between ``tuple``, ``pair`` and ``tuple-like`` objects","2022-07 (Virtual)","","","" +"`P2278R4 `__","``cbegin`` should always return a constant iterator","2022-07 (Virtual)","","","" +"`P2286R8 `__","Formatting Ranges","2022-07 (Virtual)","|Complete|","16.0","" +"`P2291R3 `__","Add Constexpr Modifiers to Functions ``to_chars`` and ``from_chars`` for Integral Types in ```` Header","2022-07 (Virtual)","|Complete|","16.0","" +"`P2302R4 `__","``std::ranges::contains``","2022-07 (Virtual)","|Complete|","19.0","" +"`P2322R6 `__","``ranges::fold``","2022-07 (Virtual)","","","" +"`P2374R4 `__","``views::cartesian_product``","2022-07 (Virtual)","","","" +"`P2404R3 `__","Move-only types for ``equality_comparable_with``, ``totally_ordered_with``, and ``three_way_comparable_with``","2022-07 (Virtual)","","","" +"`P2408R5 `__","Ranges iterators as inputs to non-Ranges algorithms","2022-07 (Virtual)","","","" +"`P2417R2 `__","A more ``constexpr`` ``bitset``","2022-07 (Virtual)","|Complete|","16.0","" +"`P2419R2 `__","Clarify handling of encodings in localized formatting of chrono types","2022-07 (Virtual)","","","" +"`P2438R2 `__","``std::string::substr() &&``","2022-07 (Virtual)","|Complete|","16.0","" +"`P2445R1 `__","``forward_like``","2022-07 (Virtual)","|Complete|","16.0","" +"`P2446R2 `__","``views::as_rvalue``","2022-07 (Virtual)","|Complete|","16.0","" +"`P2460R2 `__","Relax requirements on ``wchar_t`` to match existing practices","2022-07 (Virtual)","|Nothing To Do|","","" +"`P2465R3 `__","Standard Library Modules ``std`` and ``std.compat``","2022-07 (Virtual)","|Complete|","19.0","" +"`P2467R1 `__","Support exclusive mode for ``fstreams``","2022-07 (Virtual)","|Complete|","18.0","" +"`P2474R2 `__","``views::repeat``","2022-07 (Virtual)","|Complete|","17.0","" +"`P2494R2 `__","Relaxing range adaptors to allow for move only types","2022-07 (Virtual)","|Complete|","17.0","" +"`P2499R0 `__","``string_view`` range constructor should be ``explicit``","2022-07 (Virtual)","|Complete|","16.0","" +"`P2502R2 `__","``std::generator``: Synchronous Coroutine Generator for Ranges","2022-07 (Virtual)","","","" +"`P2508R1 `__","Exposing ``std::basic-format-string``","2022-07 (Virtual)","|Complete|","15.0","" +"`P2513R4 `__","``char8_t`` Compatibility and Portability Fixes","2022-07 (Virtual)","","","" +"`P2517R1 `__","Add a conditional ``noexcept`` specification to ``std::apply``","2022-07 (Virtual)","|Complete|","3.9","" +"`P2520R0 `__","``move_iterator`` should be a random access iterator","2022-07 (Virtual)","|Complete| [#note-P2520R0]_","17.0","" +"`P2540R1 `__","Empty Product for certain Views","2022-07 (Virtual)","","","" +"`P2549R1 `__","``std::unexpected`` should have ``error()`` as member accessor","2022-07 (Virtual)","|Complete|","16.0","" +"`P2585R0 `__","Improving default container formatting","2022-07 (Virtual)","|Complete|","17.0","" +"`P2590R2 `__","Explicit lifetime management","2022-07 (Virtual)","","","" +"`P2599R2 `__","``mdspan::size_type`` should be ``index_type``","2022-07 (Virtual)","|Complete|","18.0","" +"`P2604R0 `__","mdspan: rename pointer and contiguous","2022-07 (Virtual)","|Complete|","18.0","" +"`P2613R1 `__","Add the missing ``empty`` to ``mdspan``","2022-07 (Virtual)","|Complete|","18.0","" +"","","","","","" +"`P1202R5 `__","Asymmetric Fences","2022-11 (Kona)","","","" +"`P1264R2 `__","Revising the wording of ``stream`` input operations","2022-11 (Kona)","|Complete|","9.0","" +"`P1478R8 `__","``Byte-wise`` ``atomic`` ``memcpy``","2022-11 (Kona)","","","" +"`P2167R3 `__","Improved Proposed Wording for LWG 2114","2022-11 (Kona)","","","" +"`P2396R1 `__","Concurrency TS 2 fixes ","2022-11 (Kona)","","","" +"`P2505R5 `__","Monadic Functions for ``std::expected``","2022-11 (Kona)","|Complete|","17.0","" +"`P2539R4 `__","Should the output of ``std::print`` to a terminal be synchronized with the underlying stream?","2022-11 (Kona)","|Complete|","18.0","" +"`P2602R2 `__","Poison Pills are Too Toxic","2022-11 (Kona)","|Complete|","19.0","" +"`P2708R1 `__","No Further Fundamentals TSes","2022-11 (Kona)","|Nothing To Do|","","" +"","","","","","" +"`P0290R4 `__","``apply()`` for ``synchronized_value``","2023-02 (Issaquah)","","","" +"`P2770R0 `__","Stashing stashing ``iterators`` for proper flattening","2023-02 (Issaquah)","|Partial| [#note-P2770R0]_","","" +"`P2164R9 `__","``views::enumerate``","2023-02 (Issaquah)","","","" +"`P2711R1 `__","Making multi-param constructors of ``views`` ``explicit``","2023-02 (Issaquah)","|In Progress| [#note-P2711R1]_","","" +"`P2609R3 `__","Relaxing Ranges Just A Smidge","2023-02 (Issaquah)","|Complete| [#note-P2609R3]_","20.0","" +"`P2713R1 `__","Escaping improvements in ``std::format``","2023-02 (Issaquah)","|Complete|","19.0","" +"`P2675R1 `__","``format``'s width estimation is too approximate and not forward compatible","2023-02 (Issaquah)","|Complete|","17.0","" +"`P2572R1 `__","``std::format`` fill character allowances","2023-02 (Issaquah)","|Complete|","17.0","" +"`P2693R1 `__","Formatting ``thread::id`` and ``stacktrace``","2023-02 (Issaquah)","|Partial| [#note-P2693R1]_","","" +"`P2679R2 `__","Fixing ``std::start_lifetime_as`` for arrays","2023-02 (Issaquah)","","","" +"`P2674R1 `__","A trait for implicit lifetime types","2023-02 (Issaquah)","","","" +"`P2655R3 `__","``common_reference_t`` of ``reference_wrapper`` Should Be a Reference Type","2023-02 (Issaquah)","","","" +"`P2652R2 `__","Disallow User Specialization of ``allocator_traits``","2023-02 (Issaquah)","|Complete|","19.0","" +"`P2787R1 `__","``pmr::generator`` - Promise Types are not Values","2023-02 (Issaquah)","","","" +"`P2614R2 `__","Deprecate ``numeric_limits::has_denorm``","2023-02 (Issaquah)","|Complete|","18.0","" +"`P2588R3 `__","``barrier``โ€™s phase completion guarantees","2023-02 (Issaquah)","","","" +"`P2763R1 `__","``layout_stride`` static extents default constructor fix","2023-02 (Issaquah)","","","" +"`P2736R2 `__","Referencing The Unicode Standard","2023-02 (Issaquah)","|Complete|","19.0","" diff --git a/libcxx/docs/Status/Cxx2cIssues.csv b/libcxx/docs/Status/Cxx2cIssues.csv index 41c0d56a2a2a0e..14633265a42251 100644 --- a/libcxx/docs/Status/Cxx2cIssues.csv +++ b/libcxx/docs/Status/Cxx2cIssues.csv @@ -1,81 +1,81 @@ -"Issue #","Issue Name","Meeting","Status","First released version" -"`LWG2994 `__","Needless UB for ``basic_string`` and ``basic_string_view``","2023-06 (Varna)","|Complete|","5.0" -"`LWG3884 `__","``flat_foo`` is missing allocator-extended copy/move constructors","2023-06 (Varna)","","" -"`LWG3885 `__","``op`` should be in [zombie.names]","2023-06 (Varna)","|Nothing To Do|","" -"`LWG3887 `__","Version macro for ``allocate_at_least``","2023-06 (Varna)","|Complete|","19.0" -"`LWG3893 `__","LWG 3661 broke ``atomic> a; a = nullptr;``","2023-06 (Varna)","","" -"`LWG3894 `__","``generator::promise_type::yield_value(ranges::elements_of)`` should not be ``noexcept``","2023-06 (Varna)","","" -"`LWG3903 `__","span destructor is redundantly noexcept","2023-06 (Varna)","|Complete|","7.0" -"`LWG3904 `__","``lazy_split_view::outer-iterator``'s const-converting constructor isn't setting ``trailing_empty_``","2023-06 (Varna)","","" -"`LWG3905 `__","Type of ``std::fexcept_t``","2023-06 (Varna)","|Complete|","3.4" -"`LWG3912 `__","``enumerate_view::iterator::operator-`` should be ``noexcept``","2023-06 (Varna)","","" -"`LWG3914 `__","Inconsistent template-head of ``ranges::enumerate_view``","2023-06 (Varna)","","" -"`LWG3915 `__","Redundant paragraph about expression variations","2023-06 (Varna)","","" -"`LWG3925 `__","Concept ``formattable``'s definition is incorrect","2023-06 (Varna)","|Complete|","17.0" -"`LWG3927 `__","Unclear preconditions for ``operator[]`` for sequence containers","2023-06 (Varna)","|Nothing To Do|","" -"`LWG3935 `__","``template constexpr complex& operator=(const complex&)`` has no specification","2023-06 (Varna)","|Complete|","3.4" -"`LWG3938 `__","Cannot use ``std::expected`` monadic ops with move-only ``error_type``","2023-06 (Varna)","|Complete|","18.0" -"`LWG3940 `__","``std::expected::value()`` also needs ``E`` to be copy constructible","2023-06 (Varna)","|Complete|","18.0" -"","","","","" -"`LWG2392 `__","""character type"" is used but not defined","2023-11 (Kona)","","" -"`LWG3203 `__","``span`` element access invalidation","2023-11 (Kona)","|Nothing To Do|","" -"`LWG3305 `__","``any_cast``","2023-11 (Kona)","|Complete|","18.0" -"`LWG3431 `__","``<=>`` for containers should require ``three_way_comparable`` instead of ``<=>``","2023-11 (Kona)","","" -"`LWG3749 `__","``common_iterator`` should handle integer-class difference types","2023-11 (Kona)","","" -"`LWG3809 `__","Is ``std::subtract_with_carry_engine`` supposed to work","2023-11 (Kona)","","" -"`LWG3892 `__","Incorrect formatting of nested ranges and tuples","2023-11 (Kona)","|Complete|","17.0" -"`LWG3897 `__","``inout_ptr`` will not update raw pointer to 0","2023-11 (Kona)","|Complete|","19.0" -"`LWG3946 `__","The definition of ``const_iterator_t`` should be reworked","2023-11 (Kona)","","" -"`LWG3947 `__","Unexpected constraints on ``adjacent_transform_view::base()``","2023-11 (Kona)","","" -"`LWG3948 `__","``possibly-const-range and as-const-pointer`` should be ``noexcept``","2023-11 (Kona)","","" -"`LWG3949 `__","``std::atomic``'s trivial destructor dropped in C++17 spec wording","2023-11 (Kona)","","" -"`LWG3951 `__","[expected.object.swap]: Using ``value()`` instead of ``has_value()``","2023-11 (Kona)","|Complete|","16.0" -"`LWG3953 `__","``iter_move`` for ``common_iterator`` and ``counted_iterator`` should return ``decltype(auto)``","2023-11 (Kona)","","" -"`LWG3957 `__","[container.alloc.reqmts] The value category of v should be claimed","2023-11 (Kona)","","" -"`LWG3965 `__","Incorrect example in [format.string.escaped] p3 for formatting of combining characters","2023-11 (Kona)","|Complete|","19.0" -"`LWG3970 `__","[mdspan.syn] Missing definition of ``full_extent_t`` and ``full_extent``","2023-11 (Kona)","","" -"`LWG3973 `__","Monadic operations should be ADL-proof","2023-11 (Kona)","","" -"`LWG3974 `__","``mdspan::operator[]`` should not copy ``OtherIndexTypes``","2023-11 (Kona)","","" -"`LWG3987 `__","Including ```` doesn't provide ``std::begin``/``end``","2023-11 (Kona)","","" -"`LWG3990 `__","Program-defined specializations of ``std::tuple`` and ``std::variant`` can't be properly supported","2023-11 (Kona)","","" -"`LWG4001 `__","``iota_view`` should provide ``empty``","2023-11 (Kona)","|Complete|","19.0" -"","","","","" -"`LWG3767 `__","``codecvt`` incorrectly added to locale","2024-03 (Tokyo)","","" -"`LWG3919 `__","``enumerate_view`` may invoke UB for sized common non-forward underlying ranges","2024-03 (Tokyo)","","" -"`LWG3950 `__","``std::basic_string_view`` comparison operators are overspecified","2024-03 (Tokyo)","|Complete|","18.0" -"`LWG3975 `__","Specializations of ``basic_format_context`` should not be permitted","2024-03 (Tokyo)","|Nothing To Do|","" -"`LWG3984 `__","``ranges::to``'s recursion branch may be ill-formed","2024-03 (Tokyo)","|Complete|","19.0" -"`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)","","" -"`LWG4023 `__","Preconditions of ``std::basic_streambuf::setg/setp``","2024-03 (Tokyo)","|Complete|","19.0" -"`LWG4025 `__","Move assignment operator of ``std::expected`` should not be conditionally deleted","2024-03 (Tokyo)","","" -"`LWG4030 `__","Clarify whether arithmetic expressions in ``[numeric.sat.func]`` are mathematical or C++","2024-03 (Tokyo)","|Nothing To Do|","" -"`LWG4031 `__","``bad_expected_access`` member functions should be ``noexcept``","2024-03 (Tokyo)","|Complete|","16.0" -"`LWG4035 `__","``single_view`` should provide ``empty``","2024-03 (Tokyo)","|Complete|","19.0" -"`LWG4036 `__","``__alignof_is_defined`` is only implicitly specified in C++ and not yet deprecated","2024-03 (Tokyo)","","" -"`LWG4037 `__","Static data members of ``ctype_base`` are not yet required to be usable in constant expressions","2024-03 (Tokyo)","","" -"`LWG4038 `__","``std::text_encoding::aliases_view`` should have constexpr iterators","2024-03 (Tokyo)","","" -"`LWG4043 `__","""ASCII"" is not a registered character encoding","2024-03 (Tokyo)","|Nothing To Do|","" -"`LWG4045 `__","``tuple`` can create dangling references from ``tuple-like``","2024-03 (Tokyo)","","" -"`LWG4053 `__","Unary call to ``std::views::repeat`` does not decay the argument","2024-03 (Tokyo)","|Complete|","19.0" -"`LWG4054 `__","Repeating a ``repeat_view`` should repeat the view","2024-03 (Tokyo)","|Complete|","19.0" -"","","","","" -"`LWG3944 `__","Formatters converting sequences of ``char`` to sequences of ``wchar_t``","2024-06 (St. Louis)","","" -"`LWG4060 `__","``submdspan`` preconditions do not forbid creating invalid pointer","2024-06 (St. Louis)","","" -"`LWG4061 `__","Should ``std::basic_format_context`` be default-constructible/copyable/movable?","2024-06 (St. Louis)","|Complete|","19.0" -"`LWG4071 `__","``reference_wrapper`` comparisons are not SFINAE-friendly","2024-06 (St. Louis)","|Complete|","19.0" -"`LWG4074 `__","``compatible-joinable-ranges`` is underconstrained","2024-06 (St. Louis)","","" -"`LWG4076 `__","``concat_view`` should be freestanding","2024-06 (St. Louis)","","" -"`LWG4079 `__","Missing Preconditions in ``concat_view::iterator``\`s conversion constructor","2024-06 (St. Louis)","","" -"`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.0" -"","","","","" -"`LWG3343 `__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","Not Adopted Yet","|Complete|","16.0" -"`LWG4139 `__","ยง[time.zone.leap] recursive constraint in <=>","Not Adopted Yet","|Complete|","20.0" -"","","","","" +"Issue #","Issue Name","Meeting","Status","First released version","Notes" +"`LWG2994 `__","Needless UB for ``basic_string`` and ``basic_string_view``","2023-06 (Varna)","|Complete|","5.0","" +"`LWG3884 `__","``flat_foo`` is missing allocator-extended copy/move constructors","2023-06 (Varna)","","","" +"`LWG3885 `__","``op`` should be in [zombie.names]","2023-06 (Varna)","|Nothing To Do|","","" +"`LWG3887 `__","Version macro for ``allocate_at_least``","2023-06 (Varna)","|Complete|","19.0","" +"`LWG3893 `__","LWG 3661 broke ``atomic> a; a = nullptr;``","2023-06 (Varna)","","","" +"`LWG3894 `__","``generator::promise_type::yield_value(ranges::elements_of)`` should not be ``noexcept``","2023-06 (Varna)","","","" +"`LWG3903 `__","span destructor is redundantly noexcept","2023-06 (Varna)","|Complete|","7.0","" +"`LWG3904 `__","``lazy_split_view::outer-iterator``'s const-converting constructor isn't setting ``trailing_empty_``","2023-06 (Varna)","","","" +"`LWG3905 `__","Type of ``std::fexcept_t``","2023-06 (Varna)","|Complete|","3.4","" +"`LWG3912 `__","``enumerate_view::iterator::operator-`` should be ``noexcept``","2023-06 (Varna)","","","" +"`LWG3914 `__","Inconsistent template-head of ``ranges::enumerate_view``","2023-06 (Varna)","","","" +"`LWG3915 `__","Redundant paragraph about expression variations","2023-06 (Varna)","","","" +"`LWG3925 `__","Concept ``formattable``'s definition is incorrect","2023-06 (Varna)","|Complete|","17.0","" +"`LWG3927 `__","Unclear preconditions for ``operator[]`` for sequence containers","2023-06 (Varna)","|Nothing To Do|","","" +"`LWG3935 `__","``template constexpr complex& operator=(const complex&)`` has no specification","2023-06 (Varna)","|Complete|","3.4","" +"`LWG3938 `__","Cannot use ``std::expected`` monadic ops with move-only ``error_type``","2023-06 (Varna)","|Complete|","18.0","" +"`LWG3940 `__","``std::expected::value()`` also needs ``E`` to be copy constructible","2023-06 (Varna)","|Complete|","18.0","" +"","","","","","" +"`LWG2392 `__","""character type"" is used but not defined","2023-11 (Kona)","","","" +"`LWG3203 `__","``span`` element access invalidation","2023-11 (Kona)","|Nothing To Do|","","" +"`LWG3305 `__","``any_cast``","2023-11 (Kona)","|Complete|","18.0","" +"`LWG3431 `__","``<=>`` for containers should require ``three_way_comparable`` instead of ``<=>``","2023-11 (Kona)","","","" +"`LWG3749 `__","``common_iterator`` should handle integer-class difference types","2023-11 (Kona)","","","" +"`LWG3809 `__","Is ``std::subtract_with_carry_engine`` supposed to work","2023-11 (Kona)","","","" +"`LWG3892 `__","Incorrect formatting of nested ranges and tuples","2023-11 (Kona)","|Complete|","17.0","" +"`LWG3897 `__","``inout_ptr`` will not update raw pointer to 0","2023-11 (Kona)","|Complete|","19.0","" +"`LWG3946 `__","The definition of ``const_iterator_t`` should be reworked","2023-11 (Kona)","","","" +"`LWG3947 `__","Unexpected constraints on ``adjacent_transform_view::base()``","2023-11 (Kona)","","","" +"`LWG3948 `__","``possibly-const-range and as-const-pointer`` should be ``noexcept``","2023-11 (Kona)","","","" +"`LWG3949 `__","``std::atomic``'s trivial destructor dropped in C++17 spec wording","2023-11 (Kona)","","","" +"`LWG3951 `__","[expected.object.swap]: Using ``value()`` instead of ``has_value()``","2023-11 (Kona)","|Complete|","16.0","" +"`LWG3953 `__","``iter_move`` for ``common_iterator`` and ``counted_iterator`` should return ``decltype(auto)``","2023-11 (Kona)","","","" +"`LWG3957 `__","[container.alloc.reqmts] The value category of v should be claimed","2023-11 (Kona)","","","" +"`LWG3965 `__","Incorrect example in [format.string.escaped] p3 for formatting of combining characters","2023-11 (Kona)","|Complete|","19.0","" +"`LWG3970 `__","[mdspan.syn] Missing definition of ``full_extent_t`` and ``full_extent``","2023-11 (Kona)","","","" +"`LWG3973 `__","Monadic operations should be ADL-proof","2023-11 (Kona)","","","" +"`LWG3974 `__","``mdspan::operator[]`` should not copy ``OtherIndexTypes``","2023-11 (Kona)","","","" +"`LWG3987 `__","Including ```` doesn't provide ``std::begin``/``end``","2023-11 (Kona)","","","" +"`LWG3990 `__","Program-defined specializations of ``std::tuple`` and ``std::variant`` can't be properly supported","2023-11 (Kona)","","","" +"`LWG4001 `__","``iota_view`` should provide ``empty``","2023-11 (Kona)","|Complete|","19.0","" +"","","","","","" +"`LWG3767 `__","``codecvt`` incorrectly added to locale","2024-03 (Tokyo)","","","" +"`LWG3919 `__","``enumerate_view`` may invoke UB for sized common non-forward underlying ranges","2024-03 (Tokyo)","","","" +"`LWG3950 `__","``std::basic_string_view`` comparison operators are overspecified","2024-03 (Tokyo)","|Complete|","18.0","" +"`LWG3975 `__","Specializations of ``basic_format_context`` should not be permitted","2024-03 (Tokyo)","|Nothing To Do|","","" +"`LWG3984 `__","``ranges::to``'s recursion branch may be ill-formed","2024-03 (Tokyo)","|Complete|","19.0","" +"`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)","","","" +"`LWG4023 `__","Preconditions of ``std::basic_streambuf::setg/setp``","2024-03 (Tokyo)","|Complete|","19.0","" +"`LWG4025 `__","Move assignment operator of ``std::expected`` should not be conditionally deleted","2024-03 (Tokyo)","","","" +"`LWG4030 `__","Clarify whether arithmetic expressions in ``[numeric.sat.func]`` are mathematical or C++","2024-03 (Tokyo)","|Nothing To Do|","","" +"`LWG4031 `__","``bad_expected_access`` member functions should be ``noexcept``","2024-03 (Tokyo)","|Complete|","16.0","" +"`LWG4035 `__","``single_view`` should provide ``empty``","2024-03 (Tokyo)","|Complete|","19.0","" +"`LWG4036 `__","``__alignof_is_defined`` is only implicitly specified in C++ and not yet deprecated","2024-03 (Tokyo)","","","" +"`LWG4037 `__","Static data members of ``ctype_base`` are not yet required to be usable in constant expressions","2024-03 (Tokyo)","","","" +"`LWG4038 `__","``std::text_encoding::aliases_view`` should have constexpr iterators","2024-03 (Tokyo)","","","" +"`LWG4043 `__","""ASCII"" is not a registered character encoding","2024-03 (Tokyo)","|Nothing To Do|","","" +"`LWG4045 `__","``tuple`` can create dangling references from ``tuple-like``","2024-03 (Tokyo)","","","" +"`LWG4053 `__","Unary call to ``std::views::repeat`` does not decay the argument","2024-03 (Tokyo)","|Complete|","19.0","" +"`LWG4054 `__","Repeating a ``repeat_view`` should repeat the view","2024-03 (Tokyo)","|Complete|","19.0","" +"","","","","","" +"`LWG3944 `__","Formatters converting sequences of ``char`` to sequences of ``wchar_t``","2024-06 (St. Louis)","","","" +"`LWG4060 `__","``submdspan`` preconditions do not forbid creating invalid pointer","2024-06 (St. Louis)","","","" +"`LWG4061 `__","Should ``std::basic_format_context`` be default-constructible/copyable/movable?","2024-06 (St. Louis)","|Complete|","19.0","" +"`LWG4071 `__","``reference_wrapper`` comparisons are not SFINAE-friendly","2024-06 (St. Louis)","|Complete|","19.0","" +"`LWG4074 `__","``compatible-joinable-ranges`` is underconstrained","2024-06 (St. Louis)","","","" +"`LWG4076 `__","``concat_view`` should be freestanding","2024-06 (St. Louis)","","","" +"`LWG4079 `__","Missing Preconditions in ``concat_view::iterator``\`s conversion constructor","2024-06 (St. Louis)","","","" +"`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.0","" +"","","","","","" +"`LWG3343 `__","Ordering of calls to ``unlock()`` and ``notify_all()`` in Effects element of ``notify_all_at_thread_exit()`` should be reversed","Not Adopted Yet","|Complete|","16.0","" +"`LWG4139 `__","ยง[time.zone.leap] recursive constraint in <=>","Not Adopted Yet","|Complete|","20.0","" +"","","","","","" diff --git a/libcxx/docs/Status/Cxx2cPapers.csv b/libcxx/docs/Status/Cxx2cPapers.csv index 92e6defaf0d51c..8b1f350d6466c0 100644 --- a/libcxx/docs/Status/Cxx2cPapers.csv +++ b/libcxx/docs/Status/Cxx2cPapers.csv @@ -1,78 +1,78 @@ -"Paper #","Paper Name","Meeting","Status","First released version" -"`P2497R0 `__","Testing for success or failure of ```` functions","2023-06 (Varna)","|Complete|","18.0" -"`P2592R3 `__","Hashing support for ``std::chrono`` value classes","2023-06 (Varna)","","" -"`P2587R3 `__","``to_string`` or not ``to_string``","2023-06 (Varna)","","" -"`P2562R1 `__","``constexpr`` Stable Sorting","2023-06 (Varna)","","" -"`P2545R4 `__","Read-Copy Update (RCU)","2023-06 (Varna)","","" -"`P2530R3 `__","Hazard Pointers for C++26","2023-06 (Varna)","","" -"`P2538R1 `__","ADL-proof ``std::projected``","2023-06 (Varna)","|Complete|","18.0" -"`P2495R3 `__","Interfacing ``stringstream``\s with ``string_view``","2023-06 (Varna)","|Complete|","19.0" -"`P2510R3 `__","Formatting pointers","2023-06 (Varna)","|Complete| [#note-P2510R3]_","17.0" -"`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 `__","Mandating Annex D Require No More","2023-06 (Varna)","","" -"`P2757R3 `__","Type-checking format args","2023-06 (Varna)","","" -"`P2637R3 `__","Member ``visit``","2023-06 (Varna)","|Complete|","19.0" -"`P2641R4 `__","Checking if a ``union`` alternative is active","2023-06 (Varna)","","" -"`P1759R6 `__","Native handles and file streams","2023-06 (Varna)","|Complete|","18.0" -"`P2697R1 `__","Interfacing ``bitset`` with ``string_view``","2023-06 (Varna)","|Complete|","18.0" -"`P1383R2 `__","More ``constexpr`` for ```` and ````","2023-06 (Varna)","","" -"`P2734R0 `__","Adding the new SI prefixes","2023-06 (Varna)","|Complete|","17.0" -"`P2548R6 `__","``copyable_function``","2023-06 (Varna)","","" -"`P2714R1 `__","Bind front and back to NTTP callables","2023-06 (Varna)","","" -"`P2630R4 `__","``submdspan``","2023-06 (Varna)","","" -"","","","","" -"`P0543R3 `__","Saturation arithmetic","2023-11 (Kona)","|Complete|","18.0" -"`P2407R5 `__","Freestanding Library: Partial Classes","2023-11 (Kona)","","" -"`P2546R5 `__","Debugging Support","2023-11 (Kona)","","" -"`P2905R2 `__","Runtime format strings","2023-11 (Kona)","|Complete|","18.0" -"`P2918R2 `__","Runtime format strings II","2023-11 (Kona)","|Complete|","18.0" -"`P2909R4 `__","Fix formatting of code units as integers (Dude, whereโ€™s my ``char``?)","2023-11 (Kona)","|Complete|","18.0" -"`P0952R2 `__","A new specification for ``std::generate_canonical``","2023-11 (Kona)","","" -"`P2447R6 `__","``std::span`` over an initializer list","2023-11 (Kona)","|Complete|","18.0" -"`P2821R5 `__","``span.at()``","2023-11 (Kona)","|Complete|","18.0" -"`P2868R3 `__","Remove Deprecated ``std::allocator`` Typedef From C++26","2023-11 (Kona)","|Complete|","18.0" -"`P2870R3 `__","Remove ``basic_string::reserve()`` From C++26","2023-11 (Kona)","|Complete|","18.0" -"`P2871R3 `__","Remove Deprecated Unicode Conversion Facets from C++26","2023-11 (Kona)","|Complete|","18.0" -"`P2819R2 `__","Add tuple protocol to complex","2023-11 (Kona)","|Complete|","19.0" -"`P2937R0 `__","Freestanding: Remove ``strtok``","2023-11 (Kona)","","" -"`P2833R2 `__","Freestanding Library: inout expected span","2023-11 (Kona)","","" -"`P2836R1 `__","``std::basic_const_iterator`` should follow its underlying type's convertibility","2023-11 (Kona)","","" -"`P2264R7 `__","Make ``assert()`` macro user friendly for C and C++","2023-11 (Kona)","","" -"`P1673R13 `__","A free function linear algebra interface based on the BLAS","2023-11 (Kona)","","" -"","","","","" -"`P2875R4 `__","Undeprecate ``polymorphic_allocator::destroy`` for C++26","2024-03 (Tokyo)","|Complete|","15.0" -"`P2867R2 `__","Remove Deprecated ``strstreams`` From C++26","2024-03 (Tokyo)","|Complete|","19.0" -"`P2869R4 `__","Remove Deprecated ``shared_ptr`` Atomic Access APIs from C++26","2024-03 (Tokyo)","","" -"`P2872R3 `__","Remove ``wstring_convert`` From C++26","2024-03 (Tokyo)","|Complete|","19.0" -"`P3107R5 `__","Permit an efficient implementation of ``std::print``","2024-03 (Tokyo)","","" -"`P3142R0 `__","Printing Blank Lines with ``println``","2024-03 (Tokyo)","|Complete| [#note-P3142R0]_","19.0" -"`P2845R8 `__","Formatting of ``std::filesystem::path``","2024-03 (Tokyo)","","" -"`P0493R5 `__","Atomic minimum/maximum","2024-03 (Tokyo)","","" -"`P2542R8 `__","``views::concat``","2024-03 (Tokyo)","","" -"`P2591R5 `__","Concatenation of strings and string views","2024-03 (Tokyo)","|Complete|","19.0" -"`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| [#note-P2944R3]_","19.0" -"`P2642R6 `__","Padded ``mdspan`` layouts","2024-03 (Tokyo)","","" -"`P3029R1 `__","Better ``mdspan``'s CTAD","2024-03 (Tokyo)","|Complete|","19.0" -"","","","","" -"`P2747R2 `__","``constexpr`` placement new","2024-06 (St. Louis)","|Complete|","20.0" -"`P2997R1 `__","Removing the common reference requirement from the indirectly invocable concepts","2024-06 (St. Louis)","|Complete| [#note-P2997R1]_","19.0" -"`P2389R2 `__","``dextents`` Index Type Parameter","2024-06 (St. Louis)","|Complete|","19.0" -"`P3168R2 `__","Give ``std::optional`` Range Support","2024-06 (St. Louis)","","" -"`P3217R0 `__","Adjoints to 'Enabling list-initialization for algorithms': find_last","2024-06 (St. Louis)","","" -"`P2985R0 `__","A type trait for detecting virtual base classes","2024-06 (St. Louis)","|Complete|","20.0" -"`P0843R14 `__","``inplace_vector``","2024-06 (St. Louis)","","" -"`P3235R3 `__","``std::print`` more types faster with less memory","2024-06 (St. Louis)","","" -"`P2968R2 `__","Make ``std::ignore`` a first-class object","2024-06 (St. Louis)","|Complete|","19.0" -"`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| [#note-P2422R1]_","19.0" -"`P2300R10 `__","``std::execution``","2024-06 (St. Louis)","","" -"","","","","" +"Paper #","Paper Name","Meeting","Status","First released version","Notes" +"`P2497R0 `__","Testing for success or failure of ```` functions","2023-06 (Varna)","|Complete|","18.0","" +"`P2592R3 `__","Hashing support for ``std::chrono`` value classes","2023-06 (Varna)","","","" +"`P2587R3 `__","``to_string`` or not ``to_string``","2023-06 (Varna)","","","" +"`P2562R1 `__","``constexpr`` Stable Sorting","2023-06 (Varna)","","","" +"`P2545R4 `__","Read-Copy Update (RCU)","2023-06 (Varna)","","","" +"`P2530R3 `__","Hazard Pointers for C++26","2023-06 (Varna)","","","" +"`P2538R1 `__","ADL-proof ``std::projected``","2023-06 (Varna)","|Complete|","18.0","" +"`P2495R3 `__","Interfacing ``stringstream``\s with ``string_view``","2023-06 (Varna)","|Complete|","19.0","" +"`P2510R3 `__","Formatting pointers","2023-06 (Varna)","|Complete| [#note-P2510R3]_","17.0","" +"`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 `__","Mandating Annex D Require No More","2023-06 (Varna)","","","" +"`P2757R3 `__","Type-checking format args","2023-06 (Varna)","","","" +"`P2637R3 `__","Member ``visit``","2023-06 (Varna)","|Complete|","19.0","" +"`P2641R4 `__","Checking if a ``union`` alternative is active","2023-06 (Varna)","","","" +"`P1759R6 `__","Native handles and file streams","2023-06 (Varna)","|Complete|","18.0","" +"`P2697R1 `__","Interfacing ``bitset`` with ``string_view``","2023-06 (Varna)","|Complete|","18.0","" +"`P1383R2 `__","More ``constexpr`` for ```` and ````","2023-06 (Varna)","","","" +"`P2734R0 `__","Adding the new SI prefixes","2023-06 (Varna)","|Complete|","17.0","" +"`P2548R6 `__","``copyable_function``","2023-06 (Varna)","","","" +"`P2714R1 `__","Bind front and back to NTTP callables","2023-06 (Varna)","","","" +"`P2630R4 `__","``submdspan``","2023-06 (Varna)","","","" +"","","","","","" +"`P0543R3 `__","Saturation arithmetic","2023-11 (Kona)","|Complete|","18.0","" +"`P2407R5 `__","Freestanding Library: Partial Classes","2023-11 (Kona)","","","" +"`P2546R5 `__","Debugging Support","2023-11 (Kona)","","","" +"`P2905R2 `__","Runtime format strings","2023-11 (Kona)","|Complete|","18.0","" +"`P2918R2 `__","Runtime format strings II","2023-11 (Kona)","|Complete|","18.0","" +"`P2909R4 `__","Fix formatting of code units as integers (Dude, whereโ€™s my ``char``?)","2023-11 (Kona)","|Complete|","18.0","" +"`P0952R2 `__","A new specification for ``std::generate_canonical``","2023-11 (Kona)","","","" +"`P2447R6 `__","``std::span`` over an initializer list","2023-11 (Kona)","|Complete|","18.0","" +"`P2821R5 `__","``span.at()``","2023-11 (Kona)","|Complete|","18.0","" +"`P2868R3 `__","Remove Deprecated ``std::allocator`` Typedef From C++26","2023-11 (Kona)","|Complete|","18.0","" +"`P2870R3 `__","Remove ``basic_string::reserve()`` From C++26","2023-11 (Kona)","|Complete|","18.0","" +"`P2871R3 `__","Remove Deprecated Unicode Conversion Facets from C++26","2023-11 (Kona)","|Complete|","18.0","" +"`P2819R2 `__","Add tuple protocol to complex","2023-11 (Kona)","|Complete|","19.0","" +"`P2937R0 `__","Freestanding: Remove ``strtok``","2023-11 (Kona)","","","" +"`P2833R2 `__","Freestanding Library: inout expected span","2023-11 (Kona)","","","" +"`P2836R1 `__","``std::basic_const_iterator`` should follow its underlying type's convertibility","2023-11 (Kona)","","","" +"`P2264R7 `__","Make ``assert()`` macro user friendly for C and C++","2023-11 (Kona)","","","" +"`P1673R13 `__","A free function linear algebra interface based on the BLAS","2023-11 (Kona)","","","" +"","","","","","" +"`P2875R4 `__","Undeprecate ``polymorphic_allocator::destroy`` for C++26","2024-03 (Tokyo)","|Complete|","15.0","" +"`P2867R2 `__","Remove Deprecated ``strstreams`` From C++26","2024-03 (Tokyo)","|Complete|","19.0","" +"`P2869R4 `__","Remove Deprecated ``shared_ptr`` Atomic Access APIs from C++26","2024-03 (Tokyo)","","","" +"`P2872R3 `__","Remove ``wstring_convert`` From C++26","2024-03 (Tokyo)","|Complete|","19.0","" +"`P3107R5 `__","Permit an efficient implementation of ``std::print``","2024-03 (Tokyo)","","","" +"`P3142R0 `__","Printing Blank Lines with ``println``","2024-03 (Tokyo)","|Complete| [#note-P3142R0]_","19.0","" +"`P2845R8 `__","Formatting of ``std::filesystem::path``","2024-03 (Tokyo)","","","" +"`P0493R5 `__","Atomic minimum/maximum","2024-03 (Tokyo)","","","" +"`P2542R8 `__","``views::concat``","2024-03 (Tokyo)","","","" +"`P2591R5 `__","Concatenation of strings and string views","2024-03 (Tokyo)","|Complete|","19.0","" +"`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| [#note-P2944R3]_","19.0","" +"`P2642R6 `__","Padded ``mdspan`` layouts","2024-03 (Tokyo)","","","" +"`P3029R1 `__","Better ``mdspan``'s CTAD","2024-03 (Tokyo)","|Complete|","19.0","" +"","","","","","" +"`P2747R2 `__","``constexpr`` placement new","2024-06 (St. Louis)","|Complete|","20.0","" +"`P2997R1 `__","Removing the common reference requirement from the indirectly invocable concepts","2024-06 (St. Louis)","|Complete| [#note-P2997R1]_","19.0","" +"`P2389R2 `__","``dextents`` Index Type Parameter","2024-06 (St. Louis)","|Complete|","19.0","" +"`P3168R2 `__","Give ``std::optional`` Range Support","2024-06 (St. Louis)","","","" +"`P3217R0 `__","Adjoints to 'Enabling list-initialization for algorithms': find_last","2024-06 (St. Louis)","","","" +"`P2985R0 `__","A type trait for detecting virtual base classes","2024-06 (St. Louis)","|Complete|","20.0","" +"`P0843R14 `__","``inplace_vector``","2024-06 (St. Louis)","","","" +"`P3235R3 `__","``std::print`` more types faster with less memory","2024-06 (St. Louis)","","","" +"`P2968R2 `__","Make ``std::ignore`` a first-class object","2024-06 (St. Louis)","|Complete|","19.0","" +"`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| [#note-P2422R1]_","19.0","" +"`P2300R10 `__","``std::execution``","2024-06 (St. Louis)","","","" +"","","","","","" From e78120c8b8ec3f58b327b1cfa74ff712f1c83c45 Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Wed, 28 Aug 2024 12:04:38 -0400 Subject: [PATCH 4/6] Populate Notes entries for items with notes --- libcxx/docs/Status/Cxx17.rst | 19 ----------------- libcxx/docs/Status/Cxx17Issues.csv | 6 +++--- libcxx/docs/Status/Cxx17Papers.csv | 18 ++++++++-------- libcxx/docs/Status/Cxx20.rst | 34 ------------------------------ libcxx/docs/Status/Cxx20Issues.csv | 10 ++++----- libcxx/docs/Status/Cxx20Papers.csv | 24 ++++++++++----------- libcxx/docs/Status/Cxx23.rst | 26 ----------------------- libcxx/docs/Status/Cxx23Issues.csv | 12 +++++------ libcxx/docs/Status/Cxx23Papers.csv | 14 ++++++------ libcxx/docs/Status/Cxx2c.rst | 12 ----------- libcxx/docs/Status/Cxx2cPapers.csv | 10 ++++----- 11 files changed, 47 insertions(+), 138 deletions(-) diff --git a/libcxx/docs/Status/Cxx17.rst b/libcxx/docs/Status/Cxx17.rst index a97eea91ca09a1..e0ac2cb5c36004 100644 --- a/libcxx/docs/Status/Cxx17.rst +++ b/libcxx/docs/Status/Cxx17.rst @@ -26,8 +26,6 @@ The groups that have contributed papers: .. note:: "Nothing to do" means that no library changes were needed to implement this change. -.. _paper-status-cxx17: - Paper Status ==================================== @@ -36,23 +34,6 @@ Paper Status :header-rows: 1 :widths: auto -.. note:: - - .. [#note-N4259] N4259: ``std::uncaught_exception`` is deprecated since LLVM 20.0. - .. [#note-P0067R5] P0067R5: ``std::(to|from)_chars`` for integrals has been available since version 7.0. ``std::to_chars`` for ``float`` and ``double`` since version 14.0 ``std::to_chars`` for ``long double`` uses the implementation for ``double``. - .. [#note-P0226] P0226: Progress is tracked `here `_. - .. [#note-P0607] P0607: The parts of P0607 that are not done are the ```` bits. - .. [#note-P0154] P0154: The required macros are only implemented as of clang 19. - .. [#note-P0452] P0452: The changes to ``std::transform_inclusive_scan`` and ``std::transform_exclusive_scan`` have not yet been implemented. - .. [#note-P0156] P0156: That paper was pulled out of the draft at the 2017-01 meeting in Kona. - .. [#note-P0181] P0181: That paper was pulled out of the draft at the 2017-01 meeting in Kona. - .. [#note-P0067R3] P0067R3: That paper was resolved by `P0067R5 `__. - .. [#note-LWG2587] LWG2587: That LWG issue was resolved by `LWG2567 `__. - .. [#note-LWG2588] LWG2588: That LWG issue was resolved by `LWG2568 `__. - .. [#note-LWG2955] LWG2955: That LWG issue was resolved by `P0682R1 `__. - -.. _issues-status-cxx17: - Library Working Group Issues Status ==================================== diff --git a/libcxx/docs/Status/Cxx17Issues.csv b/libcxx/docs/Status/Cxx17Issues.csv index 5288d8301f2e8c..7119382eb5cfb4 100644 --- a/libcxx/docs/Status/Cxx17Issues.csv +++ b/libcxx/docs/Status/Cxx17Issues.csv @@ -211,8 +211,8 @@ "`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| [#note-LWG2587]_","","" -"`LWG2588 `__","[fund.ts.v2] ""Convertible to bool"" requirement in conjunction and disjunction","2016-11 (Issaquah)","|Nothing To Do| [#note-LWG2588]_","","" +"`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|","","" @@ -310,5 +310,5 @@ "`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| [#note-LWG2955]_","","" +"`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|","","" diff --git a/libcxx/docs/Status/Cxx17Papers.csv b/libcxx/docs/Status/Cxx17Papers.csv index bae771c4ff07bb..3dd386a8a1ee18 100644 --- a/libcxx/docs/Status/Cxx17Papers.csv +++ b/libcxx/docs/Status/Cxx17Papers.csv @@ -4,7 +4,7 @@ "`N4169 `__","A proposal to add invoke function template","2014-11 (Urbana)","|Complete|","3.7","" "`N4190 `__","Removing auto_ptr, random_shuffle(), And Old Stuff.","2014-11 (Urbana)","|Complete|","15.0","" "`N4258 `__","Cleaning-up noexcept in the Library.","2014-11 (Urbana)","|In Progress|","3.7","" -"`N4259 `__","Wording for std::uncaught_exceptions","2014-11 (Urbana)","|Complete| [#note-N4259]_","3.7","" +"`N4259 `__","Wording for std::uncaught_exceptions","2014-11 (Urbana)","|Complete|","3.7","``std::uncaught_exception`` is deprecated since LLVM 20.0" "`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","" @@ -21,12 +21,12 @@ "`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| [#note-P0156]_","","" +"`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| [#note-P0226]_","","" +"`P0226R1 `__","Mathematical Special Functions for C++17","2016-02 (Jacksonville)","|In Progress|","","Progress is tracked `here `__" "`P0220R1 `__","Adopt Library Fundamentals V1 TS Components for C++17","2016-02 (Jacksonville)","|Complete|","16.0","" "`P0218R1 `__","Adopt the File System TS for C++17","2016-02 (Jacksonville)","|Complete|","7.0","" "`P0033R1 `__","Re-enabling shared_from_this","2016-02 (Jacksonville)","|Complete|","3.9","" @@ -35,7 +35,7 @@ "`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| [#note-P0154]_","19.0","" +"`P0154R1 `__","constexpr std::hardware_{constructive,destructive}_interference_size","2016-02 (Jacksonville)","|Complete|","19.0","The required macros are only implemented as of LLVM 19." "`P0030R1 `__","Proposal to Introduce a 3-Argument Overload to std::hypot","2016-02 (Jacksonville)","|Complete|","3.9","" "`P0031R0 `__","A Proposal to Add Constexpr Modifiers to reverse_iterator, move_iterator, array and Range Access","2016-02 (Jacksonville)","|Complete|","4.0","" "`P0272R1 `__","Give ``std::string``\ a non-const ``.data()``\ member function","2016-02 (Jacksonville)","|Complete|","3.9","" @@ -44,7 +44,7 @@ "`P0032R3 `__","Homogeneous interface for variant, any and optional","2016-06 (Oulu)","|Complete|","4.0","" "`P0040R3 `__","Extending memory management tools","2016-06 (Oulu)","|Complete|","4.0","" "`P0063R3 `__","C++17 should refer to C11 instead of C99","2016-06 (Oulu)","|Complete|","7.0","" -"`P0067R3 `__","Elementary string conversions","2016-06 (Oulu)","|Nothing To Do| [#note-P0067R3]_","n/a","" +"`P0067R3 `__","Elementary string conversions","2016-06 (Oulu)","|Nothing To Do|","n/a","Resolved by `P0067R5 `__" "`P0083R3 `__","Splicing Maps and Sets","2016-06 (Oulu)","|Complete|","8.0","" "`P0084R2 `__","Emplace Return Type","2016-06 (Oulu)","|Complete|","4.0","" "`P0088R3 `__","Variant: a type-safe union for C++17","2016-06 (Oulu)","|Complete|","4.0","" @@ -53,7 +53,7 @@ "`P0174R2 `__","Deprecating Vestigial Library Parts in C++17","2016-06 (Oulu)","|Complete|","15.0","" "`P0175R1 `__","Synopses for the C library","2016-06 (Oulu)","","","" "`P0180R2 `__","Reserve a New Library Namespace for Future Standardization","2016-06 (Oulu)","|Nothing To Do|","n/a","" -"`P0181R1 `__","Ordered by Default","2016-06 (Oulu)","|Nothing To Do| [#note-P0181]_","n/a","" +"`P0181R1 `__","Ordered by Default","2016-06 (Oulu)","|Nothing To Do|","n/a","Pulled at the 2017-01 meeting in Kona" "`P0209R2 `__","make_from_tuple: apply for construction","2016-06 (Oulu)","|Complete|","3.9","" "`P0219R1 `__","Relative Paths for Filesystem","2016-06 (Oulu)","|Complete|","7.0","" "`P0254R2 `__","Integrating std::string_view and std::string","2016-06 (Oulu)","|Complete|","4.0","" @@ -71,7 +71,7 @@ "`P0394R4 `__","Hotel Parallelifornia: terminate() for Parallel Algorithms Exception Handling","2016-06 (Oulu)","|Complete|","17.0","" "","","","","","" "`P0003R5 `__","Removing Deprecated Exception Specifications from C++17","2016-11 (Issaquah)","|Complete|","5.0","" -"`P0067R5 `__","Elementary string conversions, revision 5","2016-11 (Issaquah)","|Partial| [#note-P0067R5]_","","" +"`P0067R5 `__","Elementary string conversions, revision 5","2016-11 (Issaquah)","|Partial|","","``std::(to|from)_chars`` for integrals has been available since version 7.0. ``std::to_chars`` for ``float`` and ``double`` since version 14.0 ``std::to_chars`` for ``long double`` uses the implementation for ``double``." "`P0403R1 `__","Literal suffixes for ``basic_string_view``\ ","2016-11 (Issaquah)","|Complete|","4.0","" "`P0414R2 `__","Merging shared_ptr changes from Library Fundamentals to C++17","2016-11 (Issaquah)","|Complete|","11.0","" "`P0418R2 `__","Fail or succeed: there is no atomic lattice","2016-11 (Issaquah)","","","" @@ -95,7 +95,7 @@ "`P0317R1 `__","Directory Entry Caching for Filesystem","2017-02 (Kona)","|Complete|","7.0","" "`P0430R2 `__","File system library on non-POSIX-like operating systems","2017-02 (Kona)","|Complete|","7.0","" "`P0433R2 `__","Toward a resolution of US7 and US14: Integrating template deduction for class templates into the standard library","2017-02 (Kona)","|Complete|","14.0","" -"`P0452R1 `__","Unifying Parallel Algorithms","2017-02 (Kona)","|Partial| [#note-P0452]_","","" +"`P0452R1 `__","Unifying Parallel Algorithms","2017-02 (Kona)","|Partial|","","The changes to ``std::transform_inclusive_scan`` and ``std::transform_exclusive_scan`` have not yet been implemented." "`P0467R2 `__","Iterator Concerns for Parallel Algorithms","2017-02 (Kona)","|Partial|","","" "`P0492R2 `__","Proposed Resolution of C++17 National Body Comments for Filesystems","2017-02 (Kona)","|Complete|","7.0","" "`P0518R1 `__","Allowing copies as arguments to function objects given to parallel algorithms in response to CH11","2017-02 (Kona)","|Nothing To Do|","","" @@ -105,7 +105,7 @@ "`P0574R1 `__","Algorithm Complexity Constraints and Parallel Overloads","2017-02 (Kona)","|Nothing To Do|","","" "`P0599R1 `__","noexcept for hash functions","2017-02 (Kona)","|Complete|","5.0","" "`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| [#note-P0607]_","6.0","" +"`P0607R0 `__","Inline Variables for the Standard Library","2017-02 (Kona)","|In Progress|","6.0","The parts of P0607 that are not done are the ```` bits" "`P0618R0 `__","Deprecating ","2017-02 (Kona)","|Complete|","15.0","" "`P0623R0 `__","Final C++17 Parallel Algorithms Fixes","2017-02 (Kona)","|Nothing To Do|","","" "","","","","","" diff --git a/libcxx/docs/Status/Cxx20.rst b/libcxx/docs/Status/Cxx20.rst index 16a93b23f3c1eb..3b1241cd07e472 100644 --- a/libcxx/docs/Status/Cxx20.rst +++ b/libcxx/docs/Status/Cxx20.rst @@ -26,8 +26,6 @@ The groups that have contributed papers: .. note:: "Nothing to do" means that no library changes were needed to implement this change. -.. _paper-status-cxx20: - Paper Status ==================================== @@ -36,38 +34,6 @@ Paper Status :header-rows: 1 :widths: auto -.. note:: - - .. [#note-P0591] P0591: The changes in [mem.poly.allocator.mem] are missing. - .. [#note-P0645] P0645: The implementation was complete since Clang 14, - except the feature-test macro was not set until Clang 19. - .. [#note-P0966] P0966: It was previously erroneously marked as complete in version 8.0. See `bug 45368 `__. - .. [#note-P0619] P0619: Only sections D.7, D.8, D.9, D.10, D.11 and D.13 are implemented. Sections D.4 and D.12 remain undone. - .. [#note-P0883.1] P0883: shared_ptr and floating-point changes weren't applied as they themselves aren't implemented yet. - .. [#note-P0883.2] P0883: ``ATOMIC_FLAG_INIT`` was marked deprecated in version 14.0, but was undeprecated with the implementation of LWG3659 in version 15.0. - .. [#note-P0660] P0660: The paper is implemented but the features are experimental and can be enabled via ``-fexperimental-library``. - .. [#note-P1614] P1614: ``std::strong_order(long double, long double)`` is partly implemented. - .. [#note-P0542] P0542: That paper was pulled out of the draft at the 2019-07 meeting in Cologne. - .. [#note-P0788] P0788: That paper was pulled out of the draft at the 2019-07 meeting in Cologne. - .. [#note-P0920] P0920: That paper was reverted by `P1661 `__. - .. [#note-P1424] P1424: That paper was superseded by `P1902 `__. - .. [#note-LWG2070] LWG2070: That LWG issue was resolved by `P0674R1 `__. - .. [#note-LWG2499] LWG2499: That LWG issue was resolved by `P0487R1 `__. - .. [#note-LWG2797] LWG2797: That LWG issue was resolved by `P1285R0 `__. - .. [#note-LWG3022] LWG3022: That LWG issue was resolved by `P1285R0 `__. - .. [#note-LWG3134] LWG3134: That LWG issue was resolved by `P1210R0 `__. - .. [#note-P0355] P0355: The implementation status is: - - * ``Calendars`` mostly done in Clang 7 - * ``Input parsers`` not done - * ``Stream output`` Obsolete due to `P1361R2 `_ "Integration of chrono with text formatting" - * ``Time zone and leap seconds`` In Progress - * ``TAI clock`` not done - * ``GPS clock`` not done - * ``UTC clock`` not done - -.. _issues-status-cxx20: - Library Working Group Issues Status ==================================== diff --git a/libcxx/docs/Status/Cxx20Issues.csv b/libcxx/docs/Status/Cxx20Issues.csv index 12327f26f83555..9c65ff9a536407 100644 --- a/libcxx/docs/Status/Cxx20Issues.csv +++ b/libcxx/docs/Status/Cxx20Issues.csv @@ -1,5 +1,5 @@ "Issue #","Issue Name","Meeting","Status","First released version","Notes" -"`LWG2070 `__","``allocate_shared``\ should use ``allocator_traits::construct``\ ","2017-07 (Toronto)","|Nothing To Do| [#note-LWG2070]_","","" +"`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)","","","" "`LWG2597 `__","``std::log``\ misspecified for complex numbers","2017-07 (Toronto)","","","" @@ -94,17 +94,17 @@ "`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| [#note-LWG2499]_","","" +"`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| [#note-LWG2797]_","","" +"`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.0","" "`LWG2996 `__","Missing rvalue overloads for ``shared_ptr``\ operations","2018-11 (San Diego)","|Complete|","17.0","" "`LWG3008 `__","``make_shared``\ (sub)object destruction semantics are not specified","2018-11 (San Diego)","|Complete|","16.0","" -"`LWG3022 `__","``is_convertible``\ may lead to ODR","2018-11 (San Diego)","|Nothing To Do| [#note-LWG3022]_","","" +"`LWG3022 `__","``is_convertible``\ may lead to ODR","2018-11 (San Diego)","|Nothing To Do|","","Resolved by `P1285R0 `__" "`LWG3025 `__","Map-like container deduction guides should use ``pair``\ , not ``pair``\ ","2018-11 (San Diego)","|Complete|","","" "`LWG3031 `__","Algorithms and predicates with non-const reference arguments","2018-11 (San Diego)","","","" "`LWG3037 `__","``polymorphic_allocator``\ and incomplete types","2018-11 (San Diego)","|Complete|","16.0","" @@ -120,7 +120,7 @@ "`LWG3130 `__","|sect|\ [input.output] needs many ``addressof``\ ","2018-11 (San Diego)","|Complete|","20.0","" "`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| [#note-LWG3134]_","","" +"`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|","","" diff --git a/libcxx/docs/Status/Cxx20Papers.csv b/libcxx/docs/Status/Cxx20Papers.csv index cace6551f3900b..ad788d7416fdad 100644 --- a/libcxx/docs/Status/Cxx20Papers.csv +++ b/libcxx/docs/Status/Cxx20Papers.csv @@ -18,29 +18,29 @@ "`P0777R1 `__","Treating Unnecessary ``decay``\ ","2017-11 (Albuquerque)","|Complete|","7.0","" "","","","","","" "`P0122R7 `__","","2018-03 (Jacksonville)","|Complete|","7.0","" -"`P0355R7 `__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial| [#note-P0355]_","","" +"`P0355R7 `__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial|","","See the `Github issue `__ for detailed status" "`P0551R3 `__","Thou Shalt Not Specialize ``std``\ Function Templates!","2018-03 (Jacksonville)","|Complete|","11.0","" "`P0753R2 `__","Manipulators for C++ Synchronized Buffered Ostream","2018-03 (Jacksonville)","","","" "`P0754R2 `__","","2018-03 (Jacksonville)","|Complete|","7.0","" "`P0809R0 `__","Comparing Unordered Containers","2018-03 (Jacksonville)","|Nothing To Do|","","" "`P0858R0 `__","Constexpr iterator requirements","2018-03 (Jacksonville)","|Complete|","12.0","" "`P0905R1 `__","Symmetry for spaceship","2018-03 (Jacksonville)","|Complete|","7.0","" -"`P0966R1 `__","``string::reserve``\ Should Not Shrink","2018-03 (Jacksonville)","|Complete| [#note-P0966]_","12.0","" +"`P0966R1 `__","``string::reserve``\ Should Not Shrink","2018-03 (Jacksonville)","|Complete|","12.0","It was previously erroneously marked as complete in version 8.0. See `bug 45368 `__" "","","","","","" "`P0019R8 `__","Atomic Ref","2018-06 (Rapperswil)","|Complete|","19.0","" "`P0458R2 `__","Checking for Existence of an Element in Associative Containers","2018-06 (Rapperswil)","|Complete|","13.0","" "`P0475R1 `__","LWG 2511: guaranteed copy elision for piecewise construction","2018-06 (Rapperswil)","|Complete|","","" "`P0476R2 `__","Bit-casting object representations","2018-06 (Rapperswil)","|Complete|","14.0","" "`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| [#note-P0542]_","n/a","" +"`P0542R5 `__","Support for contract based programming in C++","2018-06 (Rapperswil)","|Nothing To Do|","n/a","Pulled at the 2019-07 meeting in Cologne" "`P0556R3 `__","Integral power-of-2 operations","2018-06 (Rapperswil)","|Complete|","9.0","" -"`P0619R4 `__","Reviewing Deprecated Facilities of C++17 for C++20","2018-06 (Rapperswil)","|Partial| [#note-P0619]_","","" +"`P0619R4 `__","Reviewing Deprecated Facilities of C++17 for C++20","2018-06 (Rapperswil)","|Partial|","","Only sections D.7, D.8, D.9, D.10, D.11 and D.13 are implemented. Sections D.4 and D.12 remain undone." "`P0646R1 `__","Improving the Return Value of Erase-Like Algorithms","2018-06 (Rapperswil)","|Complete|","10.0","" "`P0722R3 `__","Efficient sized delete for variable sized classes","2018-06 (Rapperswil)","|Complete|","9.0","" "`P0758R1 `__","Implicit conversion traits and utility functions","2018-06 (Rapperswil)","|Complete|","","" "`P0759R1 `__","fpos Requirements","2018-06 (Rapperswil)","|Complete|","11.0","" "`P0769R2 `__","Add shift to ","2018-06 (Rapperswil)","|Complete|","12.0","" -"`P0788R3 `__","Standard Library Specification in a Concepts and Contracts World","2018-06 (Rapperswil)","|Nothing To Do| [#note-P0788]_","n/a","" +"`P0788R3 `__","Standard Library Specification in a Concepts and Contracts World","2018-06 (Rapperswil)","|Nothing To Do|","n/a","Pulled at the 2019-07 meeting in Cologne" "`P0879R0 `__","Constexpr for swap and swap related functions Also resolves LWG issue 2800.","2018-06 (Rapperswil)","|Complete|","13.0","" "`P0887R1 `__","The identity metafunction","2018-06 (Rapperswil)","|Complete|","8.0","" "`P0892R2 `__","explicit(bool)","2018-06 (Rapperswil)","","","" @@ -56,7 +56,7 @@ "`P0357R3 `__","reference_wrapper for incomplete types","2018-11 (San Diego)","|Complete|","8.0","" "`P0482R6 `__","char8_t: A type for UTF-8 characters and strings","2018-11 (San Diego)","|Complete|","16.0","" "`P0487R1 `__","Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)","2018-11 (San Diego)","|Complete|","8.0","" -"`P0591R4 `__","Utility functions to implement uses-allocator construction","2018-11 (San Diego)","|Partial| [#note-P0591]_","","" +"`P0591R4 `__","Utility functions to implement uses-allocator construction","2018-11 (San Diego)","|Partial|","","The changes in [mem.poly.allocator.mem] are missing" "`P0595R2 `__","std::is_constant_evaluated()","2018-11 (San Diego)","|Complete|","9.0","" "`P0602R4 `__","variant and optional should propagate copy/move triviality","2018-11 (San Diego)","|Complete|","8.0","" "`P0608R3 `__","A sane variant converting constructor","2018-11 (San Diego)","|Complete|","9.0","" @@ -85,7 +85,7 @@ "`P0340R3 `__","Making std::underlying_type SFINAE-friendly","2019-02 (Kona)","|Complete|","9.0","" "`P0738R2 `__","I Stream, You Stream, We All Stream for istream_iterator","2019-02 (Kona)","","","" "`P0811R3 `__","Well-behaved interpolation for numbers and pointers","2019-02 (Kona)","|Complete|","9.0","" -"`P0920R2 `__","Precalculated hash values in lookup","2019-02 (Kona)","|Nothing To Do| [#note-P0920]_","","" +"`P0920R2 `__","Precalculated hash values in lookup","2019-02 (Kona)","|Nothing To Do|","","Reverted by `P1661 `__" "`P1001R2 `__","Target Vectorization Policies from Parallelism V2 TS to C++20","2019-02 (Kona)","|Complete|","17.0","" "`P1024R3 `__","Usability Enhancements for std::span","2019-02 (Kona)","|Complete|","9.0","" "`P1164R1 `__","Make create_directory() Intuitive","2019-02 (Kona)","|Complete|","12.0","" @@ -104,8 +104,8 @@ "`P0466R5 `__","Layout-compatibility and Pointer-interconvertibility Traits","2019-07 (Cologne)","","","" "`P0553R4 `__","Bit operations","2019-07 (Cologne)","|Complete|","9.0","" "`P0631R8 `__","Math Constants","2019-07 (Cologne)","|Complete|","11.0","" -"`P0645R10 `__","Text Formatting","2019-07 (Cologne)","|Complete| [#note-P0645]_","14.0","" -"`P0660R10 `__","Stop Token and Joining Thread, Rev 10.","2019-07 (Cologne)","|Complete| [#note-P0660]_","18.0","" +"`P0645R10 `__","Text Formatting","2019-07 (Cologne)","|Complete|","14.0","The implementation was complete since LLVM 14, but the feature-test macro was not set until LLVM 19" +"`P0660R10 `__","Stop Token and Joining Thread, Rev 10.","2019-07 (Cologne)","|Complete|","18.0","The paper is implemented but the features are experimental and can be enabled via ``-fexperimental-library``." "`P0784R7 `__","More constexpr containers","2019-07 (Cologne)","|Complete|","12.0","" "`P0980R1 `__","Making std::string constexpr","2019-07 (Cologne)","|Complete|","15.0","" "`P1004R2 `__","Making std::vector constexpr","2019-07 (Cologne)","|Complete|","15.0","" @@ -117,14 +117,14 @@ "`P1355R2 `__","Exposing a narrow contract for ceil2","2019-07 (Cologne)","|Complete|","9.0","" "`P1361R2 `__","Integration of chrono with text formatting","2019-07 (Cologne)","|Partial|","","" "`P1423R3 `__","char8_t backward compatibility remediation","2019-07 (Cologne)","|Complete|","15.0","" -"`P1424R1 `__","'constexpr' feature macro concerns","2019-07 (Cologne)","|Nothing To Do| [#note-P1424]_","","" +"`P1424R1 `__","'constexpr' feature macro concerns","2019-07 (Cologne)","|Nothing To Do|","","Superseded by `P1902 `__" "`P1466R3 `__","Miscellaneous minor fixes for chrono","2019-07 (Cologne)","","","" "`P1474R1 `__","Helpful pointers for ContiguousIterator","2019-07 (Cologne)","|Complete|","15.0","" "`P1502R1 `__","Standard library header units for C++20","2019-07 (Cologne)","","","" "`P1522R1 `__","Iterator Difference Type and Integer Overflow","2019-07 (Cologne)","|Complete|","15.0","" "`P1523R1 `__","Views and Size Types","2019-07 (Cologne)","|Complete|","15.0","" "`P1612R1 `__","Relocate Endian's Specification","2019-07 (Cologne)","|Complete|","10.0","" -"`P1614R2 `__","The Mothership has Landed","2019-07 (Cologne)","|Complete| [#note-P1614]_","19.0","" +"`P1614R2 `__","The Mothership has Landed","2019-07 (Cologne)","|Complete|","19.0","``std::strong_order(long double, long double)`` is partly implemented." "`P1638R1 `__","basic_istream_view::iterator should not be copyable","2019-07 (Cologne)","|Complete|","16.0","" "`P1643R1 `__","Add wait/notify to atomic_ref","2019-07 (Cologne)","|Complete|","19.0","" "`P1644R0 `__","Add wait/notify to atomic","2019-07 (Cologne)","","","" @@ -134,7 +134,7 @@ "`P1661R1 `__","Remove dedicated precalculated hash lookup interface","2019-07 (Cologne)","|Nothing To Do|","","" "`P1754R1 `__","Rename concepts to standard_case for C++20, while we still can","2019-07 (Cologne)","|Complete|","15.0","" "","","","","","" -"`P0883R2 `__","Fixing Atomic Initialization","2019-11 (Belfast)","|Complete| [#note-P0883.1]_ [#note-P0883.2]_","14.0","" +"`P0883R2 `__","Fixing Atomic Initialization","2019-11 (Belfast)","|Complete|","14.0","shared_ptr and floating-point changes weren't applied as they themselves aren't implemented yet. Also, ``ATOMIC_FLAG_INIT`` was marked deprecated in version 14.0, but was undeprecated with the implementation of LWG3659 in version 15.0." "`P1391R4 `__","Range constructor for std::string_view","2019-11 (Belfast)","|Complete|","14.0","" "`P1394R4 `__","Range constructor for std::span","2019-11 (Belfast)","|Complete|","14.0","" "`P1456R1 `__","Move-only views","2019-11 (Belfast)","|Complete|","15.0","" diff --git a/libcxx/docs/Status/Cxx23.rst b/libcxx/docs/Status/Cxx23.rst index 05fdeb62653a2d..3a922adcb02350 100644 --- a/libcxx/docs/Status/Cxx23.rst +++ b/libcxx/docs/Status/Cxx23.rst @@ -26,8 +26,6 @@ The groups that have contributed papers: .. note:: "Nothing to do" means that no library changes were needed to implement this change. -.. _paper-status-cxx23: - Paper Status ==================================== @@ -36,24 +34,6 @@ Paper Status :header-rows: 1 :widths: auto -.. note:: - - .. [#note-P0533R9] P0533R9: ``isfinite``, ``isinf``, ``isnan`` and ``isnormal`` are implemented. - .. [#note-P1413R3] P1413R3: ``std::aligned_storage_t`` and ``std::aligned_union_t`` are marked deprecated, but - clang doesn't issue a diagnostic for deprecated using template declarations. - .. [#note-P2520R0] P2520R0: Libc++ implemented this paper as a DR in C++20 as well. - .. [#note-P2711R1] P2711R1: ``join_with_view`` hasn't been done yet since this type isn't implemented yet. - .. [#note-P2770R0] P2770R0: ``join_with_view`` hasn't been done yet since this type isn't implemented yet. - .. [#note-P2609R3] P2609R3: Libc++ implemented this paper as a DR in C++20 as well. (MSVC STL does the same.) - .. [#note-LWG3494] LWG3494: That LWG issue was superseded by `P2017R1 `__. - .. [#note-LWG3481] LWG3481: That LWG issue was superseded by `P2415R2 `__. - .. [#note-LWG3265] LWG3265: That LWG issue was resolved by `LWG3435 `__. - .. [#note-P2693R1] P2693R1: The formatter for ``std::thread::id`` is implemented. - The formatter for ``stacktrace`` is not implemented, since ``stacktrace`` is - not implemented yet. - -.. _issues-status-cxx23: - Library Working Group Issues Status ==================================== @@ -61,9 +41,3 @@ Library Working Group Issues Status :file: Cxx23Issues.csv :header-rows: 1 :widths: auto - -.. note:: - - .. [#note-LWG3750] LWG3750 Only ``__cpp_lib_format_ranges`` is fully implemented. - .. [#note-LWG3798] LWG3798: ``join_with_view``, ``zip_transform_view``, and ``adjacent_transform_view`` haven't been done yet since these types aren't implemented yet. - .. [#note-LWG3036] LWG3036: This issue was reverted by P2875R4 diff --git a/libcxx/docs/Status/Cxx23Issues.csv b/libcxx/docs/Status/Cxx23Issues.csv index 4ce1832bf852ae..da4cce6eac0c90 100644 --- a/libcxx/docs/Status/Cxx23Issues.csv +++ b/libcxx/docs/Status/Cxx23Issues.csv @@ -5,7 +5,7 @@ "`LWG3195 `__","What is the stored pointer value of an empty ``weak_ptr``?","2020-11 (Virtual)","|Nothing To Do|","","" "`LWG3211 `__","``std::tuple<>`` should be trivially constructible","2020-11 (Virtual)","|Complete|","9.0","" "`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| [#note-LWG3265]_","","" +"`LWG3265 `__","``move_iterator``'s conversions are more broken after P1207","2020-11 (Virtual)","|Nothing To Do|","","Resolved by `LWG3435 `__" "`LWG3435 `__","``three_way_comparable_with, reverse_iterator>``","2020-11 (Virtual)","|Complete|","13.0","" "`LWG3432 `__","Missing requirement for ``comparison_category``","2020-11 (Virtual)","|Complete|","16.0","" "`LWG3447 `__","Deduction guides for ``take_view`` and ``drop_view`` have different constraints","2020-11 (Virtual)","|Complete|","14.0","" @@ -16,7 +16,7 @@ "`LWG2820 `__","Clarify ```` macros","2020-11 (Virtual)","|Nothing To Do|","","" "`LWG3120 `__","Unclear behavior of ``monotonic_buffer_resource::release()``","2020-11 (Virtual)","","","" "`LWG3170 `__","``is_always_equal`` added to ``std::allocator`` makes the standard library treat derived types as always equal","2020-11 (Virtual)","|Complete|","18.0","" -"`LWG3036 `__","``polymorphic_allocator::destroy`` is extraneous","2020-11 (Virtual)","|Nothing To Do| [#note-LWG3036]_","","" +"`LWG3036 `__","``polymorphic_allocator::destroy`` is extraneous","2020-11 (Virtual)","|Nothing To Do|","","Reverted by P2875R4" "`LWG3171 `__","LWG2989 breaks ``directory_entry`` stream insertion","2020-11 (Virtual)","|Complete|","14.0","" "`LWG3306 `__","``ranges::advance`` violates its preconditions","2020-11 (Virtual)","|Complete|","14.0","" "`LWG3403 `__","Domain of ``ranges::ssize(E)`` doesn't ``match ranges::size(E)``","2020-11 (Virtual)","","","" @@ -54,7 +54,7 @@ "`LWG3433 `__","``subrange::advance(n)`` has UB when ``n < 0``","2021-02 (Virtual)","|Complete|","14.0","" "`LWG3490 `__","``ranges::drop_while_view::begin()`` is missing a precondition","2021-02 (Virtual)","|Nothing To Do|","","" "`LWG3492 `__","Minimal improvements to ``elements_view::iterator``","2021-02 (Virtual)","|Complete|","16.0","" -"`LWG3494 `__","Allow ranges to be conditionally borrowed","2021-02 (Virtual)","|Nothing To Do| [#note-LWG3494]_","","" +"`LWG3494 `__","Allow ranges to be conditionally borrowed","2021-02 (Virtual)","|Nothing To Do|","","Superseded by `P2017R1 `__" "`LWG3495 `__","``constexpr launder`` makes pointers to inactive members of unions usable","2021-02 (Virtual)","|Nothing To Do|","","" "`LWG3500 `__","``join_view::iterator::operator->()`` is bogus","2021-02 (Virtual)","|Complete|","14.0","" "`LWG3502 `__","``elements_view`` should not be allowed to return dangling reference","2021-02 (Virtual)","|Complete|","16.0","" @@ -66,7 +66,7 @@ "`LWG3410 `__","``lexicographical_compare_three_way`` is overspecified","2021-06 (Virtual)","|Complete|","17.0","" "`LWG3430 `__","``std::fstream`` & co. should be constructible from string_view","2021-06 (Virtual)","|Complete|","19.0","" "`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| [#note-LWG3481]_","","" +"`LWG3481 `__","``viewable_range`` mishandles lvalue move-only views","2021-06 (Virtual)","|Nothing To Do|","","Superseded by `P2415R2 `__" "`LWG3506 `__","Missing allocator-extended constructors for ``priority_queue``","2021-06 (Virtual)","|Complete|","14.0","" "`LWG3517 `__","``join_view::iterator``'s ``iter_swap`` is underconstrained","2021-06 (Virtual)","|Complete|","14.0","" "`LWG3518 `__","Exception requirements on char trait operations unclear","2021-06 (Virtual)","|Nothing To Do|","","" @@ -208,7 +208,7 @@ "`LWG3745 `__","``std::atomic_wait`` and its friends lack ``noexcept``","2022-11 (Kona)","|Complete|","16.0","" "`LWG3746 `__","``optional``'s spaceship with ``U`` with a type derived from optional causes infinite constraint meta-recursion","2022-11 (Kona)","|Complete|","17.0","" "`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| [#note-LWG3750]_","","" +"`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|","","" @@ -234,7 +234,7 @@ "`LWG3792 `__","``__cpp_lib_constexpr_algorithms`` should also be defined in ````","2022-11 (Kona)","|Complete|","16.0","" "`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| [#note-LWG3798]_","","" +"`LWG3798 `__","Rvalue reference and ``iterator_category``","2022-11 (Kona)","|Partial|","","``join_with_view``, ``zip_transform_view``, and ``adjacent_transform_view`` haven't been done yet since these types aren't implemented yet" "`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)","","","" diff --git a/libcxx/docs/Status/Cxx23Papers.csv b/libcxx/docs/Status/Cxx23Papers.csv index eefcaa96bb7760..2c8a91d8401b53 100644 --- a/libcxx/docs/Status/Cxx23Papers.csv +++ b/libcxx/docs/Status/Cxx23Papers.csv @@ -39,10 +39,10 @@ "`P2401R0 `__","Add a conditional ``noexcept`` specification to ``std::exchange``","2021-10 (Virtual)","|Complete|","14.0","" "","","","","","" "`P0323R12 `__","``std::expected``","2022-02 (Virtual)","|Complete|","16.0","" -"`P0533R9 `__","``constexpr`` for ```` and ````","2022-02 (Virtual)","|In Progress| [#note-P0533R9]_","","" +"`P0533R9 `__","``constexpr`` for ```` and ````","2022-02 (Virtual)","|In Progress|","","``isfinite``, ``isinf``, ``isnan`` and ``isnormal`` are implemented" "`P0627R6 `__","Function to mark unreachable code","2022-02 (Virtual)","|Complete|","15.0","" "`P1206R7 `__","``ranges::to``: A function to convert any range to a container","2022-02 (Virtual)","|Complete|","17.0","" -"`P1413R3 `__","Deprecate ``std::aligned_storage`` and ``std::aligned_union``","2022-02 (Virtual)","|Complete| [#note-P1413R3]_","","" +"`P1413R3 `__","Deprecate ``std::aligned_storage`` and ``std::aligned_union``","2022-02 (Virtual)","|Complete|","","``std::aligned_storage_t`` and ``std::aligned_union_t`` are marked deprecated, but clang doesn't issue a diagnostic for deprecated using template declarations." "`P2255R2 `__","A type trait to detect reference binding to temporary","2022-02 (Virtual)","","","" "`P2273R3 `__","Making ``std::unique_ptr`` constexpr","2022-02 (Virtual)","|Complete|","16.0","" "`P2387R3 `__","Pipe support for user-defined range adaptors","2022-02 (Virtual)","|Complete|","19.0","" @@ -84,7 +84,7 @@ "`P2508R1 `__","Exposing ``std::basic-format-string``","2022-07 (Virtual)","|Complete|","15.0","" "`P2513R4 `__","``char8_t`` Compatibility and Portability Fixes","2022-07 (Virtual)","","","" "`P2517R1 `__","Add a conditional ``noexcept`` specification to ``std::apply``","2022-07 (Virtual)","|Complete|","3.9","" -"`P2520R0 `__","``move_iterator`` should be a random access iterator","2022-07 (Virtual)","|Complete| [#note-P2520R0]_","17.0","" +"`P2520R0 `__","``move_iterator`` should be a random access iterator","2022-07 (Virtual)","|Complete|","17.0","Implemented as a DR in C++20" "`P2540R1 `__","Empty Product for certain Views","2022-07 (Virtual)","","","" "`P2549R1 `__","``std::unexpected`` should have ``error()`` as member accessor","2022-07 (Virtual)","|Complete|","16.0","" "`P2585R0 `__","Improving default container formatting","2022-07 (Virtual)","|Complete|","17.0","" @@ -104,14 +104,14 @@ "`P2708R1 `__","No Further Fundamentals TSes","2022-11 (Kona)","|Nothing To Do|","","" "","","","","","" "`P0290R4 `__","``apply()`` for ``synchronized_value``","2023-02 (Issaquah)","","","" -"`P2770R0 `__","Stashing stashing ``iterators`` for proper flattening","2023-02 (Issaquah)","|Partial| [#note-P2770R0]_","","" +"`P2770R0 `__","Stashing stashing ``iterators`` for proper flattening","2023-02 (Issaquah)","|Partial|","","``join_with_view`` hasn't been done yet since this type isn't implemented yet" "`P2164R9 `__","``views::enumerate``","2023-02 (Issaquah)","","","" -"`P2711R1 `__","Making multi-param constructors of ``views`` ``explicit``","2023-02 (Issaquah)","|In Progress| [#note-P2711R1]_","","" -"`P2609R3 `__","Relaxing Ranges Just A Smidge","2023-02 (Issaquah)","|Complete| [#note-P2609R3]_","20.0","" +"`P2711R1 `__","Making multi-param constructors of ``views`` ``explicit``","2023-02 (Issaquah)","|In Progress|","","``join_with_view`` hasn't been done yet since this type isn't implemented yet" +"`P2609R3 `__","Relaxing Ranges Just A Smidge","2023-02 (Issaquah)","|Complete|","20.0","Implemented as a DR in C++20. Other implementations will do the same." "`P2713R1 `__","Escaping improvements in ``std::format``","2023-02 (Issaquah)","|Complete|","19.0","" "`P2675R1 `__","``format``'s width estimation is too approximate and not forward compatible","2023-02 (Issaquah)","|Complete|","17.0","" "`P2572R1 `__","``std::format`` fill character allowances","2023-02 (Issaquah)","|Complete|","17.0","" -"`P2693R1 `__","Formatting ``thread::id`` and ``stacktrace``","2023-02 (Issaquah)","|Partial| [#note-P2693R1]_","","" +"`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)","","","" "`P2655R3 `__","``common_reference_t`` of ``reference_wrapper`` Should Be a Reference Type","2023-02 (Issaquah)","","","" diff --git a/libcxx/docs/Status/Cxx2c.rst b/libcxx/docs/Status/Cxx2c.rst index 1b8d96588c3cba..d94b3cfacbb035 100644 --- a/libcxx/docs/Status/Cxx2c.rst +++ b/libcxx/docs/Status/Cxx2c.rst @@ -27,8 +27,6 @@ The groups that have contributed papers: .. note:: "Nothing to do" means that no library changes were needed to implement this change. -.. _paper-status-cxx2c: - Paper Status ==================================== @@ -37,16 +35,6 @@ Paper Status :header-rows: 1 :widths: auto -.. note:: - - .. [#note-P2510R3] This paper is applied as DR against C++20. (MSVC STL and libstdc++ will do the same.) - .. [#note-P3142R0] This paper is applied as DR against C++23. (MSVC STL and libstdc++ will do the same.) - .. [#note-P2944R3] Implemented comparisons for ``reference_wrapper`` only. - .. [#note-P2422R1] Libc++ keeps the ``nodiscard`` attributes as a conforming extension. - .. [#note-P2997R1] This paper is applied as DR against C++20. (MSVC STL and libstdc++ will do the same.) - -.. _issues-status-cxx2c: - Library Working Group Issues Status ==================================== diff --git a/libcxx/docs/Status/Cxx2cPapers.csv b/libcxx/docs/Status/Cxx2cPapers.csv index 8b1f350d6466c0..8864b1ebe28891 100644 --- a/libcxx/docs/Status/Cxx2cPapers.csv +++ b/libcxx/docs/Status/Cxx2cPapers.csv @@ -7,7 +7,7 @@ "`P2530R3 `__","Hazard Pointers for C++26","2023-06 (Varna)","","","" "`P2538R1 `__","ADL-proof ``std::projected``","2023-06 (Varna)","|Complete|","18.0","" "`P2495R3 `__","Interfacing ``stringstream``\s with ``string_view``","2023-06 (Varna)","|Complete|","19.0","" -"`P2510R3 `__","Formatting pointers","2023-06 (Varna)","|Complete| [#note-P2510R3]_","17.0","" +"`P2510R3 `__","Formatting pointers","2023-06 (Varna)","|Complete|","17.0","Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.)" "`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)","","","" @@ -51,7 +51,7 @@ "`P2869R4 `__","Remove Deprecated ``shared_ptr`` Atomic Access APIs from C++26","2024-03 (Tokyo)","","","" "`P2872R3 `__","Remove ``wstring_convert`` From C++26","2024-03 (Tokyo)","|Complete|","19.0","" "`P3107R5 `__","Permit an efficient implementation of ``std::print``","2024-03 (Tokyo)","","","" -"`P3142R0 `__","Printing Blank Lines with ``println``","2024-03 (Tokyo)","|Complete| [#note-P3142R0]_","19.0","" +"`P3142R0 `__","Printing Blank Lines with ``println``","2024-03 (Tokyo)","|Complete|","19.0","Implemented as a DR against C++23. (MSVC STL and libstdc++ will do the same.)" "`P2845R8 `__","Formatting of ``std::filesystem::path``","2024-03 (Tokyo)","","","" "`P0493R5 `__","Atomic minimum/maximum","2024-03 (Tokyo)","","","" "`P2542R8 `__","``views::concat``","2024-03 (Tokyo)","","","" @@ -59,12 +59,12 @@ "`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| [#note-P2944R3]_","19.0","" +"`P2944R3 `__","Comparisons for ``reference_wrapper``","2024-03 (Tokyo)","|Partial|","19.0","Implemented comparisons for ``reference_wrapper`` only" "`P2642R6 `__","Padded ``mdspan`` layouts","2024-03 (Tokyo)","","","" "`P3029R1 `__","Better ``mdspan``'s CTAD","2024-03 (Tokyo)","|Complete|","19.0","" "","","","","","" "`P2747R2 `__","``constexpr`` placement new","2024-06 (St. Louis)","|Complete|","20.0","" -"`P2997R1 `__","Removing the common reference requirement from the indirectly invocable concepts","2024-06 (St. Louis)","|Complete| [#note-P2997R1]_","19.0","" +"`P2997R1 `__","Removing the common reference requirement from the indirectly invocable concepts","2024-06 (St. Louis)","|Complete|","19.0","Implemented as a DR against C++20. (MSVC STL and libstdc++ will do the same.)" "`P2389R2 `__","``dextents`` Index Type Parameter","2024-06 (St. Louis)","|Complete|","19.0","" "`P3168R2 `__","Give ``std::optional`` Range Support","2024-06 (St. Louis)","","","" "`P3217R0 `__","Adjoints to 'Enabling list-initialization for algorithms': find_last","2024-06 (St. Louis)","","","" @@ -73,6 +73,6 @@ "`P3235R3 `__","``std::print`` more types faster with less memory","2024-06 (St. Louis)","","","" "`P2968R2 `__","Make ``std::ignore`` a first-class object","2024-06 (St. Louis)","|Complete|","19.0","" "`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| [#note-P2422R1]_","19.0","" +"`P2422R1 `__","Remove ``nodiscard`` annotations from the standard library specification","2024-06 (St. Louis)","|Complete|","19.0","``nodiscard`` attributes were kept as a conforming extension" "`P2300R10 `__","``std::execution``","2024-06 (St. Louis)","","","" "","","","","","" From cad62f536cba598da67a839ea29feccd0d35c25c Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Wed, 21 Aug 2024 16:39:46 -0400 Subject: [PATCH 5/6] [libc++] Replace 'tags' in CSV status pages by inline notes This patch replaces 'tags' in the CSV status pages by inline notes that optionally describe more details about the paper/LWG issue. Tags were not really useful anymore because we have a vastly superior tagging system via Github issues, and keeping the tags up-to-date between CSV files and Github is going to be really challenging. This patch also adds support for encoding custom notes in the CSV files via Github issues. To encode a note in the CSV file, the body (initial description) of a Github issue can be edited to contain the following markers: BEGIN-RST-NOTES text that will be added as a note in the RST END-RST-NOTES --- libcxx/docs/Helpers/Styles.rst | 23 ----- libcxx/utils/synchronize_csv_status_files.py | 90 +++++++++++++------- 2 files changed, 61 insertions(+), 52 deletions(-) diff --git a/libcxx/docs/Helpers/Styles.rst b/libcxx/docs/Helpers/Styles.rst index 67560351d73439..b13d2c91ac323a 100644 --- a/libcxx/docs/Helpers/Styles.rst +++ b/libcxx/docs/Helpers/Styles.rst @@ -17,13 +17,6 @@ font-style: italic; } .complete { background-color: #99FF99; } - .chrono { background-color: #D8BFD8; } - .format { background-color: #FFE4B5; } - .ranges { background-color: #7FFFD4; } - .spaceship { background-color: #B0E0E6; } - .fc { background-color: #8EAF63; white-space:nowrap; } - .concurrency { background-color: #909090; white-space:nowrap; } - .dr { background-color: #FFFF99; } .. role:: notstarted @@ -40,21 +33,5 @@ .. |Partial| replace:: :partial:`Partial` .. |Complete| replace:: :complete:`Complete` -.. role:: chrono -.. role:: format -.. role:: ranges -.. role:: spaceship -.. role:: fc -.. role:: concurrency -.. role:: dr - -.. |chrono| replace:: :chrono:`chrono` -.. |format| replace:: :format:`format` -.. |ranges| replace:: :ranges:`ranges` -.. |spaceship| replace:: :spaceship:`spaceship` -.. |flat_containers| replace:: :fc:`flat containers` -.. |concurrency TS| replace:: :concurrency:`concurrency TS` -.. |DR| replace:: :dr:`Defect Report` - .. |sect| unicode:: U+00A7 .. |hellip| unicode:: U+2026 diff --git a/libcxx/utils/synchronize_csv_status_files.py b/libcxx/utils/synchronize_csv_status_files.py index b3e28e1d07cf1e..d3a00fb7f59d59 100755 --- a/libcxx/utils/synchronize_csv_status_files.py +++ b/libcxx/utils/synchronize_csv_status_files.py @@ -8,6 +8,7 @@ # ===----------------------------------------------------------------------===## from typing import List, Dict, Tuple, Optional +import copy import csv import itertools import json @@ -19,6 +20,25 @@ # Number of the 'Libc++ Standards Conformance' project on Github LIBCXX_CONFORMANCE_PROJECT = '31' +def extract_between_markers(text: str, begin_marker: str, end_marker: str) -> Optional[str]: + """ + Given a string containing special markers, extract everything located beetwen these markers. + + If the beginning marker is not found, None is returned. If the beginning marker is found but + there is no end marker, it is an error (this is done to avoid silently accepting inputs that + are erroneous by mistake). + """ + start = text.find(begin_marker) + if start == -1: + return None + + start += len(begin_marker) # skip the marker itself + end = text.find(end_marker, start) + if end == -1: + raise ArgumentError(f"Could not find end marker {end_marker} in: {text[start:]}") + + return text[start:end] + class PaperStatus: TODO = 1 IN_PROGRESS = 2 @@ -60,19 +80,16 @@ def from_csv_entry(entry: str): - '|Partial|' - '|Complete|' - '|Nothing To Do|' - - Note that since we sometimes add additional notes after the status, we only check that the entry - starts with the above patterns. """ if entry == '': return PaperStatus(PaperStatus.TODO, entry) - elif entry.startswith('|In Progress|'): + elif entry == '|In Progress|': return PaperStatus(PaperStatus.IN_PROGRESS, entry) - elif entry.startswith('|Partial|'): + elif entry == '|Partial|': return PaperStatus(PaperStatus.PARTIAL, entry) - elif entry.startswith('|Complete|'): + elif entry == '|Complete|': return PaperStatus(PaperStatus.DONE, entry) - elif entry.startswith('|Nothing To Do|'): + elif entry == '|Nothing To Do|': return PaperStatus(PaperStatus.NOTHING_TO_DO, entry) else: raise RuntimeError(f'Unexpected CSV entry for status: {entry}') @@ -140,10 +157,10 @@ class PaperInfo: First version of LLVM in which this paper/issue was resolved. """ - labels: Optional[List[str]] + notes: Optional[str] """ - List of labels to associate to the issue in the status-tracking table. Supported labels are - 'format', 'ranges', 'spaceship', 'flat_containers', 'concurrency TS' and 'DR'. + Optional plain text string representing notes to associate to the paper. + This is used to populate the "Notes" column in the CSV status pages. """ original: Optional[object] @@ -156,14 +173,14 @@ def __init__(self, paper_number: str, paper_name: str, status: PaperStatus, meeting: Optional[str] = None, first_released_version: Optional[str] = None, - labels: Optional[List[str]] = None, + notes: Optional[str] = None, original: Optional[object] = None): self.paper_number = paper_number self.paper_name = paper_name self.status = status self.meeting = meeting self.first_released_version = first_released_version - self.labels = labels + self.notes = notes self.original = original def for_printing(self) -> Tuple[str, str, str, str, str, str]: @@ -173,7 +190,7 @@ def for_printing(self) -> Tuple[str, str, str, str, str, str]: 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 '', - ' '.join(f'|{label}|' for label in self.labels) if self.labels is not None else '', + self.notes if self.notes is not None else '', ) def __repr__(self) -> str: @@ -195,7 +212,7 @@ def from_csv_row(row: Tuple[str, str, str, str, str, str]):# -> PaperInfo: status=PaperStatus.from_csv_entry(row[3]), meeting=row[2] or None, first_released_version=row[4] or None, - labels=[l.strip('|') for l in row[5].split(' ') if l] or None, + notes=row[5] or None, original=row, ) @@ -210,9 +227,10 @@ def from_github_issue(issue: Dict):# -> PaperInfo: raise RuntimeError(f"Issue doesn't have a title that we know how to parse: {issue}") paper = match.group(1) - # Handle labels - valid_labels = ('format', 'ranges', 'spaceship', 'flat_containers', 'concurrency TS', 'DR') - labels = [label for label in issue['labels'] if label in valid_labels] + # Extract any notes from the Github issue and populate the RST notes with them + issue_description = issue['content']['body'] + notes = extract_between_markers(issue_description, 'BEGIN-RST-NOTES', 'END-RST-NOTES') + notes = notes.strip() if notes is not None else notes return PaperInfo( paper_number=paper, @@ -220,10 +238,34 @@ def from_github_issue(issue: Dict):# -> PaperInfo: status=PaperStatus.from_github_issue(issue), meeting=issue.get('meeting Voted', None), first_released_version=None, # TODO - labels=labels if labels else None, + notes=notes, original=issue, ) +def merge(paper: PaperInfo, gh: PaperInfo) -> PaperInfo: + """ + Merge a paper coming from a CSV row with a corresponding Github-tracked paper. + + If the CSV row has a status that is "less advanced" than the Github issue, simply update the CSV + row with the newer status. Otherwise, report an error if they have a different status because + something must be wrong. + + In case we don't update the CSV row's status, we still take any updated notes coming + from the Github issue. + """ + if paper.status < gh.status: + return gh + elif paper.status != gh.status: + print(f"We found a CSV row and a Github issue with different statuses:\nrow: {paper}\nGithub issue: {gh}") + return paper + else: + # Retain the notes from the Github issue, if any + if gh.notes is not None: + cp = copy.deepcopy(paper) + cp.notes = gh.notes + return cp + return paper + def load_csv(file: pathlib.Path) -> List[Tuple]: rows = [] with open(file, newline='') as f: @@ -275,17 +317,7 @@ def sync_csv(rows: List[Tuple], from_github: List[PaperInfo]) -> List[Tuple]: results.append(row) continue - gh = tracking[0] - - # If the CSV row has a status that is "less advanced" than the Github issue, simply update the CSV - # row with the newer status. Otherwise, report an error if they have a different status because - # something must be wrong. - if paper.status < gh.status: - results.append(gh.for_printing()) - continue - elif paper.status != gh.status: - print(f"We found a CSV row and a Github issue with different statuses:\nrow: {row}\nGithub issue: {gh}") - results.append(row) + results.append(merge(paper, tracking[0]).for_printing()) return results From be387cd541d0a7b4c477e26f396ef58dfa947560 Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Wed, 28 Aug 2024 12:23:47 -0400 Subject: [PATCH 6/6] Revert "[TEMP] Change synchronization script to remove rows" This reverts commit 643bb829d1b476cae02928f9a7c2d16171a3e127. --- libcxx/utils/synchronize_csv_status_files.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/libcxx/utils/synchronize_csv_status_files.py b/libcxx/utils/synchronize_csv_status_files.py index d3a00fb7f59d59..f87e938484c898 100755 --- a/libcxx/utils/synchronize_csv_status_files.py +++ b/libcxx/utils/synchronize_csv_status_files.py @@ -335,13 +335,18 @@ def sync_csv(rows: List[Tuple], from_github: List[PaperInfo]) -> List[Tuple]: def main(): libcxx_root = pathlib.Path(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) + # Extract the list of PaperInfos from issues we're tracking on Github. + print("Loading all issues from Github") + gh_command_line = ['gh', 'project', 'item-list', LIBCXX_CONFORMANCE_PROJECT, '--owner', 'llvm', '--format', 'json', '--limit', '9999999'] + project_info = json.loads(subprocess.check_output(gh_command_line)) + from_github = [PaperInfo.from_github_issue(i) for i in project_info['items']] + for filename in CSV_FILES_TO_SYNC: - print(f"Updating {filename}") + print(f"Synchronizing {filename} with Github issues") file = libcxx_root / 'docs' / 'Status' / filename csv = load_csv(file) - for row in csv: - del row[5] - write_csv(file, csv) + synced = sync_csv(csv, from_github) + write_csv(file, synced) if __name__ == '__main__': main()