"Paper #","Group","Paper Name","Meeting","Status","First released version" "`P0463R1 `__","LWG","Endian just Endian","Toronto","|Complete|","7.0" "`P0674R1 `__","LWG","Extending make_shared to Support Arrays","Toronto","","" "","","","","","" "`P0020R6 `__","LWG","Floating Point Atomic","Albuquerque","","" "`P0053R7 `__","LWG","C++ Synchronized Buffered Ostream","Albuquerque","","" "`P0202R3 `__","LWG","Add constexpr modifiers to functions in and Headers","Albuquerque","|Complete|","12.0" "`P0415R1 `__","LWG","Constexpr for ``std::complex``\ ","Albuquerque","|In Progress|","7.0" "`P0439R0 `__","LWG","Make ``std::memory_order``\ a scoped enumeration","Albuquerque","|Complete|","" "`P0457R2 `__","LWG","String Prefix and Suffix Checking","Albuquerque","|Complete|","6.0" "`P0550R2 `__","LWG","Transformation Trait ``remove_cvref``\ ","Albuquerque","|Complete|","6.0" "`P0600R1 `__","LWG","nodiscard in the Library","Albuquerque","|In Progress| [#note-P0600]_","7.0" "`P0616R0 `__","LWG","de-pessimize legacy algorithms with std::move","Albuquerque","|Complete|","12.0" "`P0653R2 `__","LWG","Utility to convert a pointer to a raw pointer","Albuquerque","|Complete|","6.0" "`P0718R2 `__","LWG","Atomic shared_ptr","Albuquerque","","" "`P0767R1 `__","CWG","Deprecate POD","Albuquerque","|Complete|","7.0" "`P0768R1 `__","CWG","Library Support for the Spaceship (Comparison) Operator","Albuquerque","|Complete|","" "`P0777R1 `__","LWG","Treating Unnecessary ``decay``\ ","Albuquerque","|Complete|","7.0" "`P0122R7 `__","LWG","","Jacksonville","|Complete|","7.0" "`P0355R7 `__","LWG","Extending chrono to Calendars and Time Zones","Jacksonville","|In Progress|","" "`P0551R3 `__","LWG","Thou Shalt Not Specialize ``std``\ Function Templates!","Jacksonville","|Complete|","11.0" "`P0753R2 `__","LWG","Manipulators for C++ Synchronized Buffered Ostream","Jacksonville","","" "`P0754R2 `__","LWG","","Jacksonville","|Complete|","7.0" "`P0809R0 `__","LWG","Comparing Unordered Containers","Jacksonville","|Nothing To Do|","" "`P0858R0 `__","LWG","Constexpr iterator requirements","Jacksonville","","" "`P0905R1 `__","CWG","Symmetry for spaceship","Jacksonville","","" "`P0966R1 `__","LWG","``string::reserve``\ Should Not Shrink","Jacksonville","|Complete| [#note-P0966]_","12.0" "","","","","","" "`P0019R8 `__","LWG","Atomic Ref","Rapperswil","","" "`P0458R2 `__","LWG","Checking for Existence of an Element in Associative Containers","Rapperswil","|Complete|","13.0" "`P0475R1 `__","LWG","LWG 2511: guaranteed copy elision for piecewise construction","Rapperswil","|Complete|","" "`P0476R2 `__","LWG","Bit-casting object representations","Rapperswil","","" "`P0528R3 `__","CWG","The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange","Rapperswil","","" "`P0542R5 `__","CWG","Support for contract based programming in C++","Rapperswil","*Removed in Cologne*","n/a" "`P0556R3 `__","LWG","Integral power-of-2 operations","Rapperswil","|Complete|","9.0" "`P0619R4 `__","LWG","Reviewing Deprecated Facilities of C++17 for C++20","Rapperswil","|Partial| [#note-P0619]_","" "`P0646R1 `__","LWG","Improving the Return Value of Erase-Like Algorithms","Rapperswil","|Complete|","10.0" "`P0722R3 `__","CWG","Efficient sized delete for variable sized classes","Rapperswil","|Complete|","9.0" "`P0758R1 `__","LWG","Implicit conversion traits and utility functions","Rapperswil","|Complete|","" "`P0759R1 `__","LWG","fpos Requirements","Rapperswil","|Complete|","11.0" "`P0769R2 `__","LWG","Add shift to ","Rapperswil","|Complete|","12.0" "`P0788R3 `__","LWG","Standard Library Specification in a Concepts and Contracts World","Rapperswil","*Removed in Cologne*","n/a" "`P0879R0 `__","LWG","Constexpr for swap and swap related functions Also resolves LWG issue 2800.","Rapperswil","|Complete|","13.0" "`P0887R1 `__","LWG","The identity metafunction","Rapperswil","|Complete|","8.0" "`P0892R2 `__","CWG","explicit(bool)","Rapperswil","","" "`P0898R3 `__","LWG","Standard Library Concepts","Rapperswil","|Complete|","13.0" "`P0935R0 `__","LWG","Eradicating unnecessarily explicit default constructors from the standard library","Rapperswil","|Complete|","12.0" "`P0941R2 `__","CWG","Integrating feature-test macros into the C++ WD","Rapperswil","|In Progress|","" "`P1023R0 `__","LWG","constexpr comparison operators for std::array","Rapperswil","|Complete|","8.0" "`P1025R1 `__","CWG","Update The Reference To The Unicode Standard","Rapperswil","","" "`P1120R0 `__","CWG","Consistency improvements for <=> and other comparison operators","Rapperswil","","" "","","","","","" "`P0318R1 `__","LWG","unwrap_ref_decay and unwrap_reference","San Diego","|Complete|","8.0" "`P0356R5 `__","LWG","Simplified partial function application","San Diego","|Complete|","13.0" "`P0357R3 `__","LWG","reference_wrapper for incomplete types","San Diego","|Complete|","8.0" "`P0482R6 `__","CWG","char8_t: A type for UTF-8 characters and strings","San Diego","|In Progress|","" "`P0487R1 `__","LWG","Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)","San Diego","|Complete|","8.0" "`P0591R4 `__","LWG","Utility functions to implement uses-allocator construction","San Diego","* *","" "`P0595R2 `__","CWG","P0595R2 std::is_constant_evaluated()","San Diego","|Complete|","9.0" "`P0602R4 `__","LWG","variant and optional should propagate copy/move triviality","San Diego","|Complete|","8.0" "`P0608R3 `__","LWG","A sane variant converting constructor","San Diego","|Complete|","9.0" "`P0655R1 `__","LWG","visit: Explicit Return Type for visit","San Diego","|Complete|","12.0" "`P0771R1 `__","LWG","std::function move constructor should be noexcept","San Diego","|Complete|","6.0" "`P0896R4 `__","LWG","The One Ranges Proposal","San Diego","|In Progress|","" "`P0899R1 `__","LWG","P0899R1 - LWG 3016 is not a defect","San Diego","|Nothing To Do|","" "`P0919R3 `__","LWG","Heterogeneous lookup for unordered containers","San Diego","|Complete|","12.0" "`P0972R0 `__","LWG"," ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept","San Diego","|Complete|","8.0" "`P1006R1 `__","LWG","Constexpr in std::pointer_traits","San Diego","|Complete|","8.0" "`P1007R3 `__","LWG","``std::assume_aligned``\ ","San Diego","* *","" "`P1020R1 `__","LWG","Smart pointer creation with default initialization","San Diego","* *","" "`P1032R1 `__","LWG","Misc constexpr bits","San Diego","|Complete|","13.0" "`P1085R2 `__","LWG","Should Span be Regular?","San Diego","|Complete|","8.0" "`P1123R0 `__","LWG","Editorial Guidance for merging P0019r8 and P0528r3","San Diego","* *","" "`P1148R0 `__","LWG","Cleaning up Clause 20","San Diego","* *","" "`P1165R1 `__","LWG","Make stateful allocator propagation more consistent for ``operator+(basic_string)``\ ","San Diego","* *","" "`P1209R0 `__","LWG","Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20","San Diego","|Complete|","8.0" "`P1210R0 `__","LWG","Completing the Rebase of Library Fundamentals, Version 3, Working Draft","San Diego","* *","" "`P1236R1 `__","CWG","Alternative Wording for P0907R4 Signed Integers are Two's Complement","San Diego","* *","" "`P1248R1 `__","LWG","Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)","San Diego","|Complete|","13.0" "`P1285R0 `__","LWG","Improving Completeness Requirements for Type Traits","San Diego","* *","" "`P1353R0 `__","CWG","Missing feature test macros","San Diego","* *","" "","","","","","" "`P0339R6 `__","LWG","polymorphic_allocator<> as a vocabulary type","Kona","","" "`P0340R3 `__","LWG","Making std::underlying_type SFINAE-friendly","Kona","|Complete|","9.0" "`P0738R2 `__","LWG","I Stream, You Stream, We All Stream for istream_iterator","Kona","","" "`P0811R3 `__","LWG","Well-behaved interpolation for numbers and pointers","Kona","|Complete|","9.0" "`P0920R2 `__","LWG","Precalculated hash values in lookup","Kona","Reverted by `P1661 `__","" "`P1001R2 `__","LWG","Target Vectorization Policies from Parallelism V2 TS to C++20","Kona","","" "`P1024R3 `__","LWG","Usability Enhancements for std::span","Kona","|Complete|","9.0" "`P1164R1 `__","LWG","Make create_directory() Intuitive","Kona","|Complete|","12.0" "`P1227R2 `__","LWG","Signed ssize() functions, unsigned size() functions","Kona","|Complete|","9.0" "`P1252R2 `__","LWG","Ranges Design Cleanup","Kona","","" "`P1286R2 `__","CWG","Contra CWG DR1778","Kona","","" "`P1357R1 `__","LWG","Traits for [Un]bounded Arrays","Kona","|Complete|","9.0" "`P1458R1 `__","LWG","Mandating the Standard Library: Clause 16 - Language support library","Kona","|Complete|","9.0" "`P1459R1 `__","LWG","Mandating the Standard Library: Clause 18 - Diagnostics library","Kona","|Complete|","9.0" "`P1462R1 `__","LWG","Mandating the Standard Library: Clause 20 - Strings library","Kona","|Complete|","9.0" "`P1463R1 `__","LWG","Mandating the Standard Library: Clause 21 - Containers library","Kona","","" "`P1464R1 `__","LWG","Mandating the Standard Library: Clause 22 - Iterators library","Kona","|Complete|","9.0" "","","","","","" "`P0325 `__","LWG","to_array from LFTS with updates","Cologne","|Complete|","10.0" "`P0408 `__","LWG","Efficient Access to basic_stringbuf's Buffer","Cologne","","" "`P0466 `__","LWG","Layout-compatibility and Pointer-interconvertibility Traits","Cologne","","" "`P0553 `__","LWG","Bit operations","Cologne","|Complete|","9.0" "`P0631 `__","LWG","Math Constants","Cologne","|Complete|","11.0" "`P0645 `__","LWG","Text Formatting","Cologne","|In Progress|","" "`P0660 `__","LWG","Stop Token and Joining Thread, Rev 10","Cologne","","" "`P0784 `__","CWG","More constexpr containers","Cologne","|Complete|","12.0" "`P0980 `__","LWG","Making std::string constexpr","Cologne","","" "`P1004 `__","LWG","Making std::vector constexpr","Cologne","","" "`P1035 `__","LWG","Input Range Adaptors","Cologne","","" "`P1065 `__","LWG","Constexpr INVOKE","Cologne","|Complete|","12.0" "`P1135 `__","LWG","The C++20 Synchronization Library","Cologne","|Complete|","11.0" "`P1207 `__","LWG","Movability of Single-pass Iterators","Cologne","","" "`P1208 `__","LWG","Adopt source_location for C++20","Cologne","","" "`P1355 `__","LWG","Exposing a narrow contract for ceil2","Cologne","|Complete|","9.0" "`P1361 `__","LWG","Integration of chrono with text formatting","Cologne","","" "`P1423 `__","LWG","char8_t backward compatibility remediation","Cologne","|In Progress|","" "`P1424 `__","LWG","'constexpr' feature macro concerns","Cologne","Superseded by `P1902 `__","" "`P1466 `__","LWG","Miscellaneous minor fixes for chrono","Cologne","","" "`P1474 `__","LWG","Helpful pointers for ContiguousIterator","Cologne","","" "`P1502 `__","LWG","Standard library header units for C++20","Cologne","","" "`P1522 `__","LWG","Iterator Difference Type and Integer Overflow","Cologne","","" "`P1523 `__","LWG","Views and Size Types","Cologne","","" "`P1612 `__","LWG","Relocate Endian's Specification","Cologne","|Complete|","10.0" "`P1614 `__","LWG","The Mothership has Landed","Cologne","|In Progress|","" "`P1638 `__","LWG","basic_istream_view::iterator should not be copyable","Cologne","","" "`P1643 `__","LWG","Add wait/notify to atomic_ref","Cologne","","" "`P1644 `__","LWG","Add wait/notify to atomic","Cologne","","" "`P1650 `__","LWG","Output std::chrono::days with 'd' suffix","Cologne","","" "`P1651 `__","LWG","bind_front should not unwrap reference_wrapper","Cologne","|Complete|","13.0" "`P1652 `__","LWG","Printf corner cases in std::format","Cologne","","" "`P1661 `__","LWG","Remove dedicated precalculated hash lookup interface","Cologne","|Nothing To Do|","" "`P1754 `__","LWG","Rename concepts to standard_case for C++20, while we still can","Cologne","|In Progress|","" "","","","","","" "`P0883 `__","LWG","Fixing Atomic Initialization","Belfast","* *","" "`P1391 `__","LWG","Range constructor for std::string_view","Belfast","* *","" "`P1394 `__","LWG","Range constructor for std::span","Belfast","* *","" "`P1456 `__","LWG","Move-only views","Belfast","* *","" "`P1622 `__","LWG","Mandating the Standard Library: Clause 32 - Thread support library","Belfast","* *","" "`P1645 `__","LWG","constexpr for numeric algorithms","Belfast","|Complete|","12.0" "`P1664 `__","LWG","reconstructible_range - a concept for putting ranges back together","Belfast","* *","" "`P1686 `__","LWG","Mandating the Standard Library: Clause 27 - Time library","Belfast","* *","" "`P1690 `__","LWG","Refinement Proposal for P0919 Heterogeneous lookup for unordered containers","Belfast","|Complete|","12.0" "`P1716 `__","LWG","ranges compare algorithm are over-constrained","Belfast","* *","" "`P1718 `__","LWG","Mandating the Standard Library: Clause 25 - Algorithms library","Belfast","* *","" "`P1719 `__","LWG","Mandating the Standard Library: Clause 26 - Numerics library","Belfast","* *","" "`P1720 `__","LWG","Mandating the Standard Library: Clause 28 - Localization library","Belfast","* *","" "`P1721 `__","LWG","Mandating the Standard Library: Clause 29 - Input/Output library","Belfast","* *","" "`P1722 `__","LWG","Mandating the Standard Library: Clause 30 - Regular Expression library","Belfast","* *","" "`P1723 `__","LWG","Mandating the Standard Library: Clause 31 - Atomics library","Belfast","* *","" "`P1855 `__","LWG","Make ````\ freestanding","Belfast","* *","" "`P1862 `__","LWG","Ranges adaptors for non-copyable iterators","Belfast","* *","" "`P1865 `__","LWG","Add max() to latch and barrier","Belfast","|Complete|","11.0" "`P1869 `__","LWG","Rename 'condition_variable_any' interruptible wait methods","Belfast","* *","" "`P1870 `__","LWG","forwarding-range is too subtle","Belfast","|In Progress|","" "`P1871 `__","LWG","Should concepts be enabled or disabled?","Belfast","* *","" "`P1872 `__","LWG","span should have size_type, not index_type","Belfast","|Complete|","10.0" "`P1878 `__","LWG","Constraining Readable Types","Belfast","* *","" "`P1892 `__","LWG","Extended locale-specific presentation specifiers for std::format","Belfast","* *","" "`P1902 `__","LWG","Missing feature-test macros 2018-2019","Belfast","* *","" "`P1959 `__","LWG","Remove std::weak_equality and std::strong_equality","Belfast","* *","" "`P1960 `__","LWG","NB Comment Changes Reviewed by SG1","Belfast","* *","" "`P1961 `__","LWG","Harmonizing the definitions of total order for pointers","Belfast","* *","" "`P1965 `__","LWG","Blanket Wording for Specifying ""Hidden Friends""","Belfast","* *","" "","","","","","" "`P0586 `__","LWG","Safe integral comparisons","Prague","|Complete|","13.0" "`P0593 `__","CWG","Implicit creation of objects for low-level object manipulation","Prague","* *","" "`P1115 `__","LWG","Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if","Prague","|Complete|","11.0" "`P1243 `__","LWG","Rangify New Algorithms","Prague","* *","" "`P1460 `__","LWG","Mandating the Standard Library: Clause 20 - Utilities library","Prague","* *","" "`P1739 `__","LWG","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","Prague","* *","" "`P1831 `__","LWG","Deprecating volatile: library","Prague","* *","" "`P1868 `__","LWG","width: clarifying units of width and precision in std::format","Prague","* *","" "`P1908 `__","CWG","Reserving Attribute Namespaces for Future Use","Prague","* *","" "`P1937 `__","CWG","Fixing inconsistencies between constexpr and consteval functions","Prague","* *","" "`P1956 `__","LWG","On the names of low-level bit manipulation functions","Prague","|Complete|","12.0" "`P1957 `__","CWG","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","Prague","* *","" "`P1963 `__","LWG","Fixing US 313","Prague","* *","" "`P1964 `__","LWG","Wording for boolean-testable","Prague","|Complete|","13.0" "`P1970 `__","LWG","Consistency for size() functions: Add ranges::ssize","Prague","* *","" "`P1973 `__","LWG","Rename ""_default_init"" Functions, Rev1","Prague","* *","" "`P1976 `__","LWG","Fixed-size span construction from dynamic range","Prague","|Complete|","11.0" "`P1981 `__","LWG","Rename leap to leap_second","Prague","* *","" "`P1982 `__","LWG","Rename link to time_zone_link","Prague","* *","" "`P1983 `__","LWG","Wording for GB301, US296, US292, US291, and US283","Prague","* *","" "`P1994 `__","LWG","elements_view needs its own sentinel","Prague","* *","" "`P2002 `__","CWG","Defaulted comparison specification cleanups","Prague","* *","" "`P2045 `__","LWG","Missing Mandates for the standard library","Prague","* *","" "`P2085 `__","CWG","Consistent defaulted comparisons","Prague","* *","" "`P2091 `__","LWG","Issues with range access CPOs","Prague","* *","" "`P2101 `__","LWG","'Models' subsumes 'satisfies' (Wording for US298 and US300)","Prague","* *","" "`P2102 `__","LWG","Make 'implicit expression variations' more explicit (Wording for US185)","Prague","* *","" "`P2106 `__","LWG","Alternative wording for GB315 and GB316","Prague","* *","" "`P2116 `__","LWG","Remove tuple-like protocol support from fixed-extent span","Prague","|Complete|","11.0"