"Paper #","Paper Name","Meeting","Status","First released version","Notes" "`P0463R1 `__","Endian just Endian","2017-07 (Toronto)","|Complete|","7","" "`P0674R1 `__","Extending make_shared to Support Arrays","2017-07 (Toronto)","|Complete|","15","" "","","","","","" "`P0020R6 `__","Floating Point Atomic","2017-11 (Albuquerque)","|Complete|","18","The feature-test macro was not set until LLVM 20." "`P0053R7 `__","C++ Synchronized Buffered Ostream","2017-11 (Albuquerque)","|Complete|","18","" "`P0202R3 `__","Add constexpr modifiers to functions in and Headers","2017-11 (Albuquerque)","|Complete|","12","" "`P0415R1 `__","Constexpr for ``std::complex``\ ","2017-11 (Albuquerque)","|Complete|","16","" "`P0439R0 `__","Make ``std::memory_order``\ a scoped enumeration","2017-11 (Albuquerque)","|Complete|","","" "`P0457R2 `__","String Prefix and Suffix Checking","2017-11 (Albuquerque)","|Complete|","6","" "`P0550R2 `__","Transformation Trait ``remove_cvref``\ ","2017-11 (Albuquerque)","|Complete|","6","" "`P0600R1 `__","nodiscard in the Library","2017-11 (Albuquerque)","|Complete|","16","" "`P0616R0 `__","de-pessimize legacy algorithms with std::move","2017-11 (Albuquerque)","|Complete|","12","" "`P0653R2 `__","Utility to convert a pointer to a raw pointer","2017-11 (Albuquerque)","|Complete|","6","" "`P0718R2 `__","Atomic shared_ptr","2017-11 (Albuquerque)","","","" "`P0767R1 `__","Deprecate POD","2017-11 (Albuquerque)","|Complete|","21","It was previously erroneously marked as complete in LLVM 7." "`P0768R1 `__","Library Support for the Spaceship (Comparison) Operator","2017-11 (Albuquerque)","|Complete|","","" "`P0777R1 `__","Treating Unnecessary ``decay``\ ","2017-11 (Albuquerque)","|Complete|","7","" "","","","","","" "`P0122R7 `__","","2018-03 (Jacksonville)","|Complete|","7","" "`P0355R7 `__","Extending chrono to Calendars and Time Zones","2018-03 (Jacksonville)","|Partial|","","See the `Github issue `__ for detailed status" "`P0551R3 `__","Thou Shalt Not Specialize ``std``\ Function Templates!","2018-03 (Jacksonville)","|Complete|","11","" "`P0753R2 `__","Manipulators for C++ Synchronized Buffered Ostream","2018-03 (Jacksonville)","","","" "`P0754R2 `__","","2018-03 (Jacksonville)","|Complete|","7","" "`P0809R0 `__","Comparing Unordered Containers","2018-03 (Jacksonville)","|Nothing To Do|","","" "`P0858R0 `__","Constexpr iterator requirements","2018-03 (Jacksonville)","|Complete|","12","" "`P0905R1 `__","Symmetry for spaceship","2018-03 (Jacksonville)","|Complete|","7","" "`P0966R1 `__","``string::reserve``\ Should Not Shrink","2018-03 (Jacksonville)","|Complete|","12","It was previously erroneously marked as complete in version 8. See `bug 45368 `__" "","","","","","" "`P0019R8 `__","Atomic Ref","2018-06 (Rapperswil)","|Complete|","19","" "`P0458R2 `__","Checking for Existence of an Element in Associative Containers","2018-06 (Rapperswil)","|Complete|","13","" "`P0475R1 `__","LWG 2511: guaranteed copy elision for piecewise construction","2018-06 (Rapperswil)","|Complete|","","" "`P0476R2 `__","Bit-casting object representations","2018-06 (Rapperswil)","|Complete|","14","" "`P0528R3 `__","The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange","2018-06 (Rapperswil)","","","" "`P0542R5 `__","Support for contract based programming in C++","2018-06 (Rapperswil)","|Nothing To Do|","n/a","Pulled at the 2019-07 meeting in Cologne" "`P0556R3 `__","Integral power-of-2 operations","2018-06 (Rapperswil)","|Complete|","9","" "`P0619R4 `__","Reviewing Deprecated Facilities of C++17 for C++20","2018-06 (Rapperswil)","|Complete|","20","Removed headers are still provided as an extension, but with deprecation warnings." "`P0646R1 `__","Improving the Return Value of Erase-Like Algorithms","2018-06 (Rapperswil)","|Complete|","10","" "`P0722R3 `__","Efficient sized delete for variable sized classes","2018-06 (Rapperswil)","|Complete|","9","" "`P0758R1 `__","Implicit conversion traits and utility functions","2018-06 (Rapperswil)","|Complete|","","" "`P0759R1 `__","fpos Requirements","2018-06 (Rapperswil)","|Complete|","11","" "`P0769R2 `__","Add shift to ","2018-06 (Rapperswil)","|Complete|","12","" "`P0788R3 `__","Standard Library Specification in a Concepts and Contracts World","2018-06 (Rapperswil)","|Nothing To Do|","n/a","Pulled at the 2019-07 meeting in Cologne" "`P0879R0 `__","Constexpr for swap and swap related functions Also resolves LWG issue 2800.","2018-06 (Rapperswil)","|Complete|","13","" "`P0887R1 `__","The identity metafunction","2018-06 (Rapperswil)","|Complete|","8","" "`P0892R2 `__","P0892R2: explicit(bool)","2018-06 (Rapperswil)","|Nothing To Do|","","" "`P0898R3 `__","Standard Library Concepts","2018-06 (Rapperswil)","|Complete|","13","" "`P0935R0 `__","Eradicating unnecessarily explicit default constructors from the standard library","2018-06 (Rapperswil)","|Complete|","12","" "`P0941R2 `__","Integrating feature-test macros into the C++ WD","2018-06 (Rapperswil)","|In Progress|","","" "`P1023R0 `__","constexpr comparison operators for std::array","2018-06 (Rapperswil)","|Complete|","8","" "`P1025R1 `__","Update The Reference To The Unicode Standard","2018-06 (Rapperswil)","","","" "`P1120R0 `__","Consistency improvements for <=> and other comparison operators","2018-06 (Rapperswil)","","","" "","","","","","" "`P0318R1 `__","unwrap_ref_decay and unwrap_reference","2018-11 (San Diego)","|Complete|","8","" "`P0356R5 `__","Simplified partial function application","2018-11 (San Diego)","|Complete|","13","" "`P0357R3 `__","reference_wrapper for incomplete types","2018-11 (San Diego)","|Complete|","8","" "`P0482R6 `__","char8_t: A type for UTF-8 characters and strings","2018-11 (San Diego)","|Complete|","16","" "`P0487R1 `__","Fixing ``operator>>(basic_istream&, CharT*)``\ (LWG 2499)","2018-11 (San Diego)","|Complete|","8","" "`P0591R4 `__","Utility functions to implement uses-allocator construction","2018-11 (San Diego)","|Partial|","","The changes in [mem.poly.allocator.mem] are missing" "`P0595R2 `__","std::is_constant_evaluated()","2018-11 (San Diego)","|Complete|","9","" "`P0602R4 `__","variant and optional should propagate copy/move triviality","2018-11 (San Diego)","|Complete|","8","" "`P0608R3 `__","A sane variant converting constructor","2018-11 (San Diego)","|Complete|","9","" "`P0655R1 `__","visit: Explicit Return Type for visit","2018-11 (San Diego)","|Complete|","12","" "`P0771R1 `__","std::function move constructor should be noexcept","2018-11 (San Diego)","|Complete|","6","" "`P0896R4 `__","The One Ranges Proposal","2018-11 (San Diego)","|Complete|","15","" "`P0899R1 `__","P0899R1 - LWG 3016 is not a defect","2018-11 (San Diego)","|Nothing To Do|","","" "`P0919R3 `__","Heterogeneous lookup for unordered containers","2018-11 (San Diego)","|Complete|","12","" "`P0972R0 `__"," ``zero()``\ , ``min()``\ , and ``max()``\ should be noexcept","2018-11 (San Diego)","|Complete|","8","" "`P1006R1 `__","Constexpr in std::pointer_traits","2018-11 (San Diego)","|Complete|","8","" "`P1007R3 `__","``std::assume_aligned``\ ","2018-11 (San Diego)","|Complete|","15","" "`P1020R1 `__","Smart pointer creation with default initialization","2018-11 (San Diego)","|Complete|","16","The feature-test macro was not set until LLVM 20." "`P1032R1 `__","Misc constexpr bits","2018-11 (San Diego)","|Complete|","13","" "`P1085R2 `__","Should Span be Regular?","2018-11 (San Diego)","|Complete|","8","" "`P1123R0 `__","Editorial Guidance for merging P0019r8 and P0528r3","2018-11 (San Diego)","","","" "`P1148R0 `__","Cleaning up Clause 20","2018-11 (San Diego)","","","" "`P1165R1 `__","Make stateful allocator propagation more consistent for ``operator+(basic_string)``\ ","2018-11 (San Diego)","|Complete|","15","" "`P1209R0 `__","Adopt Consistent Container Erasure from Library Fundamentals 2 for C++20","2018-11 (San Diego)","|Complete|","8","" "`P1210R0 `__","P1210R0: Completing the Rebase of Library Fundamentals, Version 3, Working Draft","2018-11 (San Diego)","|Nothing To Do|","","" "`P1236R1 `__","Alternative Wording for P0907R4 Signed Integers are Two's Complement","2018-11 (San Diego)","","","" "`P1248R1 `__","Remove CommonReference requirement from StrictWeakOrdering (a.k.a Fixing Relations)","2018-11 (San Diego)","|Complete|","13","" "`P1285R0 `__","Improving Completeness Requirements for Type Traits","2018-11 (San Diego)","","","" "`P1353R0 `__","Missing feature test macros","2018-11 (San Diego)","|Complete|","19","" "","","","","","" "`P0339R6 `__","polymorphic_allocator<> as a vocabulary type","2019-02 (Kona)","|Complete|","16","" "`P0340R3 `__","Making std::underlying_type SFINAE-friendly","2019-02 (Kona)","|Complete|","9","" "`P0738R2 `__","I Stream, You Stream, We All Stream for istream_iterator","2019-02 (Kona)","","","" "`P0811R3 `__","Well-behaved interpolation for numbers and pointers","2019-02 (Kona)","|Complete|","9","" "`P0920R2 `__","Precalculated hash values in lookup","2019-02 (Kona)","|Nothing To Do|","","Reverted by `P1661 `__" "`P1001R2 `__","Target Vectorization Policies from Parallelism V2 TS to C++20","2019-02 (Kona)","|Complete|","17","" "`P1024R3 `__","Usability Enhancements for std::span","2019-02 (Kona)","|Complete|","9","" "`P1164R1 `__","Make create_directory() Intuitive","2019-02 (Kona)","|Complete|","12","" "`P1227R2 `__","Signed ssize() functions, unsigned size() functions","2019-02 (Kona)","|Complete|","9","" "`P1252R2 `__","Ranges Design Cleanup","2019-02 (Kona)","|Complete|","15","" "`P1286R2 `__","Contra CWG DR1778","2019-02 (Kona)","","","" "`P1357R1 `__","Traits for [Un]bounded Arrays","2019-02 (Kona)","|Complete|","9","" "`P1458R1 `__","Mandating the Standard Library: Clause 16 - Language support library","2019-02 (Kona)","|Complete|","9","" "`P1459R1 `__","Mandating the Standard Library: Clause 18 - Diagnostics library","2019-02 (Kona)","|Complete|","9","" "`P1462R1 `__","Mandating the Standard Library: Clause 20 - Strings library","2019-02 (Kona)","|Complete|","9","" "`P1463R1 `__","Mandating the Standard Library: Clause 21 - Containers library","2019-02 (Kona)","","","" "`P1464R1 `__","Mandating the Standard Library: Clause 22 - Iterators library","2019-02 (Kona)","|Complete|","9","" "","","","","","" "`P0325R4 `__","to_array from LFTS with updates","2019-07 (Cologne)","|Complete|","10","" "`P0408R7 `__","Efficient Access to basic_stringbuf's Buffer","2019-07 (Cologne)","|Complete|","17","" "`P0466R5 `__","Layout-compatibility and Pointer-interconvertibility Traits","2019-07 (Cologne)","","","" "`P0553R4 `__","Bit operations","2019-07 (Cologne)","|Complete|","9","" "`P0631R8 `__","Math Constants","2019-07 (Cologne)","|Complete|","11","" "`P0645R10 `__","Text Formatting","2019-07 (Cologne)","|Complete|","14","The implementation was complete since LLVM 14, but the feature-test macro was not set until LLVM 19" "`P0660R10 `__","Stop Token and Joining Thread, Rev 10.","2019-07 (Cologne)","|Complete|","20","The feature was implemented since LLVM 18 but was guarded behind ``-fexperimental-library``." "`P0784R7 `__","More constexpr containers","2019-07 (Cologne)","|Complete|","12","" "`P0980R1 `__","Making std::string constexpr","2019-07 (Cologne)","|Complete|","15","" "`P1004R2 `__","Making std::vector constexpr","2019-07 (Cologne)","|Complete|","15","" "`P1035R7 `__","Input Range Adaptors","2019-07 (Cologne)","|Complete|","16","" "`P1065R2 `__","Constexpr INVOKE","2019-07 (Cologne)","|Complete|","12","" "`P1135R6 `__","The C++20 Synchronization Library","2019-07 (Cologne)","|Complete|","11","" "`P1207R4 `__","Movability of Single-pass Iterators","2019-07 (Cologne)","|Complete|","15","" "`P1208R6 `__","Adopt source_location for C++20","2019-07 (Cologne)","|Complete|","16","" "`P1355R2 `__","Exposing a narrow contract for ceil2","2019-07 (Cologne)","|Complete|","9","" "`P1361R2 `__","Integration of chrono with text formatting","2019-07 (Cologne)","|Complete|","21","" "`P1423R3 `__","char8_t backward compatibility remediation","2019-07 (Cologne)","|Complete|","15","" "`P1424R1 `__","'constexpr' feature macro concerns","2019-07 (Cologne)","|Nothing To Do|","","Superseded by `P1902 `__" "`P1466R3 `__","Miscellaneous minor fixes for chrono","2019-07 (Cologne)","|Partial|","","" "`P1474R1 `__","Helpful pointers for ContiguousIterator","2019-07 (Cologne)","|Complete|","15","" "`P1502R1 `__","Standard library header units for C++20","2019-07 (Cologne)","","","" "`P1522R1 `__","Iterator Difference Type and Integer Overflow","2019-07 (Cologne)","|Complete|","15","" "`P1523R1 `__","Views and Size Types","2019-07 (Cologne)","|Complete|","15","" "`P1612R1 `__","Relocate Endian's Specification","2019-07 (Cologne)","|Complete|","10","" "`P1614R2 `__","The Mothership has Landed","2019-07 (Cologne)","|Complete|","19","``std::strong_order(long double, long double)`` is partly implemented." "`P1638R1 `__","basic_istream_view::iterator should not be copyable","2019-07 (Cologne)","|Complete|","16","" "`P1643R1 `__","Add wait/notify to atomic_ref","2019-07 (Cologne)","|Complete|","19","" "`P1644R0 `__","Add wait/notify to atomic","2019-07 (Cologne)","","","" "`P1650R0 `__","Output std::chrono::days with 'd' suffix","2019-07 (Cologne)","|Complete|","16","" "`P1651R0 `__","bind_front should not unwrap reference_wrapper","2019-07 (Cologne)","|Complete|","13","" "`P1652R1 `__","Printf corner cases in std::format","2019-07 (Cologne)","|Complete|","14","" "`P1661R1 `__","Remove dedicated precalculated hash lookup interface","2019-07 (Cologne)","|Nothing To Do|","","" "`P1754R1 `__","Rename concepts to standard_case for C++20, while we still can","2019-07 (Cologne)","|Complete|","15","" "","","","","","" "`P0883R2 `__","Fixing Atomic Initialization","2019-11 (Belfast)","|Complete|","14","shared_ptr and floating-point changes weren't applied as they themselves aren't implemented yet. Also, ``ATOMIC_FLAG_INIT`` was marked deprecated in version 14, but was undeprecated with the implementation of LWG3659 in version 15." "`P1391R4 `__","Range constructor for std::string_view","2019-11 (Belfast)","|Complete|","14","" "`P1394R4 `__","Range constructor for std::span","2019-11 (Belfast)","|Complete|","14","" "`P1456R1 `__","Move-only views","2019-11 (Belfast)","|Complete|","15","" "`P1622R3 `__","Mandating the Standard Library: Clause 32 - Thread support library","2019-11 (Belfast)","","","" "`P1645R1 `__","constexpr for numeric algorithms","2019-11 (Belfast)","|Complete|","12","" "`P1686R2 `__","Mandating the Standard Library: Clause 27 - Time library","2019-11 (Belfast)","","","" "`P1690R1 `__","Refinement Proposal for P0919 Heterogeneous lookup for unordered containers","2019-11 (Belfast)","|Complete|","12","" "`P1716R3 `__","ranges compare algorithm are over-constrained","2019-11 (Belfast)","|Complete|","15","" "`P1718R2 `__","Mandating the Standard Library: Clause 25 - Algorithms library","2019-11 (Belfast)","","","" "`P1719R2 `__","Mandating the Standard Library: Clause 26 - Numerics library","2019-11 (Belfast)","","","" "`P1720R2 `__","Mandating the Standard Library: Clause 28 - Localization library","2019-11 (Belfast)","","","" "`P1721R2 `__","Mandating the Standard Library: Clause 29 - Input/Output library","2019-11 (Belfast)","","","" "`P1722R2 `__","Mandating the Standard Library: Clause 30 - Regular Expression library","2019-11 (Belfast)","","","" "`P1723R2 `__","Mandating the Standard Library: Clause 31 - Atomics library","2019-11 (Belfast)","","","" "`P1855R0 `__","Make ````\ freestanding","2019-11 (Belfast)","","","" "`P1862R1 `__","Ranges adaptors for non-copyable iterators","2019-11 (Belfast)","|Complete|","16","" "`P1865R1 `__","Add max() to latch and barrier","2019-11 (Belfast)","|Complete|","11","" "`P1869R1 `__","Rename 'condition_variable_any' interruptible wait methods","2019-11 (Belfast)","|Complete|","18","" "`P1870R1 `__","forwarding-range is too subtle","2019-11 (Belfast)","|Complete|","15","" "`P1871R1 `__","Concept traits should be named after concepts","2019-11 (Belfast)","|Complete|","14","" "`P1872R0 `__","span should have size_type, not index_type","2019-11 (Belfast)","|Complete|","10","" "`P1878R1 `__","Constraining Readable Types","2019-11 (Belfast)","|Complete|","15","" "`P1892R1 `__","Extended locale-specific presentation specifiers for std::format","2019-11 (Belfast)","|Complete|","14","" "`P1902R1 `__","Missing feature-test macros 2018-2019","2019-11 (Belfast)","","","" "`P1959R0 `__","Remove std::weak_equality and std::strong_equality","2019-11 (Belfast)","|Nothing To Do|","","" "`P1960R0 `__","NB Comment Changes Reviewed by SG1","2019-11 (Belfast)","","","" "`P1961R0 `__","Harmonizing the definitions of total order for pointers","2019-11 (Belfast)","","","" "`P1965R0 `__","Blanket Wording for Specifying ""Hidden Friends""","2019-11 (Belfast)","","","" "","","","","","" "`P0586R2 `__","Safe integral comparisons","2020-02 (Prague)","|Complete|","13","" "`P0593R6 `__","Implicit creation of objects for low-level object manipulation","2020-02 (Prague)","","","" "`P1115R3 `__","Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if","2020-02 (Prague)","|Complete|","11","" "`P1243R4 `__","Rangify New Algorithms","2020-02 (Prague)","|Complete|","15","" "`P1460R1 `__","Mandating the Standard Library: Clause 20 - Utilities library","2020-02 (Prague)","","","" "`P1739R4 `__","Avoid template bloat for safe_ranges in combination with ""subrange-y"" view adaptors","2020-02 (Prague)","|Complete|","15","" "`P1831R1 `__","Deprecating volatile: library","2020-02 (Prague)","","","" "`P1868R2 `__","width: clarifying units of width and precision in std::format","2020-02 (Prague)","|Complete|","14","" "`P1956R1 `__","On the names of low-level bit manipulation functions","2020-02 (Prague)","|Complete|","12","" "`P1957R2 `__","Converting from ``T*``\ to bool should be considered narrowing (re: US 212)","2020-02 (Prague)","|Complete|","18","" "`P1963R0 `__","P1963R0: Fixing US 313","2020-02 (Prague)","|Nothing To Do|","","" "`P1964R2 `__","Wording for boolean-testable","2020-02 (Prague)","|Complete|","13","" "`P1970R2 `__","Consistency for size() functions: Add ranges::ssize","2020-02 (Prague)","|Complete|","15","" "`P1973R1 `__","Rename ""_default_init"" Functions, Rev1","2020-02 (Prague)","|Complete|","16","The feature-test macro was not set until LLVM 20." "`P1976R2 `__","Fixed-size span construction from dynamic range","2020-02 (Prague)","|Complete|","11","" "`P1981R0 `__","Rename leap to leap_second","2020-02 (Prague)","|Complete|","19","" "`P1982R0 `__","Rename link to time_zone_link","2020-02 (Prague)","|Complete|","19","" "`P1983R0 `__","Wording for GB301, US296, US292, US291, and US283","2020-02 (Prague)","|Complete|","15","" "`P1994R1 `__","elements_view needs its own sentinel","2020-02 (Prague)","|Complete|","16","" "`P2002R1 `__","Defaulted comparison specification cleanups","2020-02 (Prague)","|Complete|","7","" "`P2045R1 `__","P2045R1: Missing Mandates for the standard library","2020-02 (Prague)","|Nothing To Do|","","" "`P2085R0 `__","Consistent defaulted comparisons","2020-02 (Prague)","","","" "`P2091R0 `__","Issues with range access CPOs","2020-02 (Prague)","|Complete|","15","" "`P2101R0 `__","P2101R0: 'Models' subsumes 'satisfies' (Wording for US298 and US300)","2020-02 (Prague)","|Nothing To Do|","","" "`P2102R0 `__","Make 'implicit expression variations' more explicit (Wording for US185)","2020-02 (Prague)","|Complete|","15","" "`P2106R0 `__","Alternative wording for GB315 and GB316","2020-02 (Prague)","|Complete|","15","" "`P2116R0 `__","Remove tuple-like protocol support from fixed-extent span","2020-02 (Prague)","|Complete|","11","" "","","","","","" "`P2231R1 `__","Missing constexpr in std::optional and std::variant","2021-06 (Virtual)","|Complete|","19","Changes of feature-test macros are completed in LLVM 20." "`P2325R3 `__","Views should not be required to be default constructible","2021-06 (Virtual)","|Complete|","16","" "`P2210R2 `__","Superior String Splitting","2021-06 (Virtual)","|Complete|","16","" "`P2216R3 `__","std::format improvements","2021-06 (Virtual)","|Complete|","15","" "`P2281R1 `__","Clarifying range adaptor objects","2021-06 (Virtual)","|Complete|","14","" "`P2328R1 `__","join_view should join all views of ranges","2021-06 (Virtual)","|Complete|","15","" "`P2367R0 `__","Remove misuses of list-initialization from Clause 24","2021-06 (Virtual)","|Complete|","15","" "","","","","","" "`P2372R3 `__","Fixing locale handling in chrono formatters","2021-10 (Virtual)","|Complete|","21","" "`P2415R2 `__","What is a ``view``","2021-10 (Virtual)","|Complete|","14","" "`P2418R2 `__","Add support for ``std::generator``-like types to ``std::format``","2021-10 (Virtual)","|Complete|","15","" "`P2432R1 `__","Fix ``istream_view``","2021-10 (Virtual)","|Complete|","16",""