I have quite a few C++ proposals I am working on and percolating through the C++ Standards Committee. You will find the submitted and unsubmitted ones below! Be sure to also check out the proposals
and standard
tags for any writeups related to C++ proposals!
Actively Pursued Evolution Proposals:
C++ | p1040: std::embed | Published | Latest Draft |
C++ | p1629: Standard Text Encoding | Published | Latest Draft |
C++ | p1664: Reconstructible Ranges | Published | Latest Draft |
C++ | p1967: Preprocessor embed - Binary Resource Inclusion | Published | Latest Draft |
C++ | p2513: char8_t Compatibility and Portability Fixes |
Published | Latest Draft |
C | n2965: Modern Bit Utilities | Published | Latest Draft |
C | n2968: Prefixes for the Standard Library | Published | Latest Draft |
C | n2970: Transparent Aliases | Published | Latest Draft |
C | n2995: __supports_literal |
Published | Latest Draft |
C | n2996: Enhanced Enumerations | Published | Latest Draft |
C | n2997: Improved Normal Enumerations | Published | Latest Draft |
C | n2998: Literal Suffixes for size_t |
Published | Latest Draft |
C | n2999: Restartable Functions for Efficient Character Conversions | Published | Latest Draft |
C | n3000: Preprocessor embed - Binary Resource Inclusion | Published | Latest Draft |
C | n3001: Modern Bit Utilities | Published | Latest Draft |
C | n3011: Oops, Compound Literals and Empty Initializers | Published | Latest Draft |
Approved Proposals:
Most have been completed / merged at this point! The rest of the work is up above!
Completed / Merged Proposals:
C++ | p1025: Update References to the Unicode Standard | Published | Accepted, C++20! |
C++ | p1682: std::to_underlying(T enum_value) |
Published | Accepted, C++23! |
C++ | p1132: out_ptr - a scalable output pointer abstraction | Published | Accepted, C++23! |
C++ | p0330: Literal Suffixes for ptrdiff_t and size_t |
Published | Accepted, C++23! |
C++ | p1301: [[nodiscard(“should have a reason”)]] | Published | Accepted, C++20! |
C | n2448: [[nodiscard(“should have a reason”)]] | Published | Accepted, C23! |
C | n2594: Mixed Wide String Literal Concatenation | Published | Accepted, C23! |
C | n2726: _Imaginary_I and _Complex_I Qualifiers |
Published | Accepted, C23! |
C | n2728: char16_t & char32_t string literals shall be UTF-16 and UTF-32 |
Published | Accepted, C23! |
C | n2927: Not-So-Magic: typeof() for C |
Published | Accepted, C23! |
C | n2828: Unicode Sequences More Than 21 Bits Are A Constraint Violation | Published | Accepted, C23! |
C | n2900: Consistent, Warningless, and Intuitive Initialization with {} |
Published | Accepted, C23! |
Being Reworked from Feedback:
C++ | p1214: Callables Cleanup! - Overloading and Pointer-to-Members | Published | Latest Draft |
C++ | p1039: I got you, FAM - Flexible Array Members for C++ | Published | Latest Draft |
Educational
These proposals are educational in nature only and, while making recommendations, will not see additional pursuit or wording.
C++ | p1683: A Survey of References for Standard Library Types - A Survey of Optionals | Published | Latest Draft |
Expired:
These proposals are dead and will not be picked up again.
C++ | p1175: A simple and practical optional reference for C++ | Published | Latest Draft |
C++ | p1130: Module Resource Requirement Propagation | Published | Latest Draft |
Cannot Pursue
These proposals are challenging and may require significant rework or language enhancement. Some have also been superseded by other proposals.
C++ | p0051: std::overload |
Not Published | Latest Draft |
C++ | p1803: packexpr(args, I) – compile-time friendly pack inspection | Published | Latest Draft |
C++ | p1193: Explicitly Specified Returns for (Implicit) Conversions | Published | Latest Draft |
C++ | p1378: consteval is_string_literal(T*) |
Not Published | Latest Draft |