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++26 | p1629: Standard Text Encoding | Published | Latest Draft |
C++26 | p1664: Reconstructible Ranges | Published | Latest Draft |
C++26 | p1967: Preprocessor embed - Binary Resource Inclusion |
Published | Latest Draft |
C++26 | p2537: Relax va_start Requirements to Match C |
Published | Latest Draft |
C++26 | p2958: typeof and typeof_unqual for C++ |
Published | Latest Draft |
C++?? | p1040: std::embed |
Published | Latest Draft |
C2y/C3a | n2995: __supports_literal |
Published | Latest Draft |
C2y/C3a | n2998: Literal Suffixes for size_t |
Published | Latest Draft |
C2y/C3a | n3095: Restartable Functions for Efficient Character Conversions | Published | Latest Draft |
C2y/C3a | n3198: Unwinding | Published | Latest Draft |
C2y/C3a | n3199: Improved __attribute__((cleanup)) Through defer |
Published | Latest Draft |
C2y/C3a | n3200: Transparent Aliases | Published | Latest Draft |
C2y/C3a | cXXX1: Integer Constant Expression Initialized const Integer Declarations are Implicitly constexpr |
Soon™ | Latest Draft |
C2y/C3a | cXXX3: Comprehensive Statement Expressions | Soon™ | Latest Draft |
C2y/C3a | cXXX4: Functional Functions - A Comprehensive Proposal Overviewing Blocks, Nested Functions, and Lambdas for C | Soon™ | Latest Draft |
C2y/C3a | cXXX5: -fwrapv for Everyone - A Measured Approach to _Operator s |
Soon™ | Latest Draft |
C2y/C3a | cXXX7: T[..; …] — A Non-owning Sized Arrays for Spans and Beyond |
Soon™ | Latest Draft |
C2y/C3a | cXXX8: More Modern Bit Utilities (Follow up to N3022) | Soon™ | Latest Draft |
C2y/C3a | cXXX9: Variable-Length Array (VLA) Types for Any Size | Soon™ | Latest Draft |
C2y/C3a | cXX10: Variable-Length Array (VLA) Allocator Control | Soon™ | Latest Draft |
Approved Proposals:
Most have been completed / merged at this point! The rest of the work is up above!
Completed / Merged Proposals:
C++20 | p1025: Update References to the Unicode Standard | Published | Accepted, C++20! |
C++20 | p1301: [[nodiscard("should have a reason")]] |
Published | Accepted, C++20! |
C++23 | p1682: std::to_underlying(T enum_value) |
Published | Accepted, C++23! |
C++23 | p1132: out_ptr - a scalable output pointer abstraction |
Published | Accepted, C++23! |
C++23 | p0330: Literal Suffixes for ptrdiff_t and size_t |
Published | Accepted, C++23! |
C++23 | p2513: char8_t Compatibility and Portability Fixes |
Published | Accepted, C++23! |
C23 | n2448: [[nodiscard("should have a reason")]] |
Published | Accepted, C23! |
C23 | n2594: Mixed Wide String Literal Concatenation | Published | Accepted, C23! |
C23 | n2968: Prefixes for the Standard Library | Published | Accepted, C23! |
C23 | n2726: _Imaginary_I and _Complex_I Qualifiers |
Published | Accepted, C23! |
C23 | n2728: char16_t & char32_t string literals shall be UTF-16 and UTF-32 |
Published | Accepted, C23! |
C23 | n2927: Not-So-Magic: typeof() for C |
Published | Accepted, C23! |
C23 | n2828: Unicode Sequences More Than 21 Bits Are A Constraint Violation | Published | Accepted, C23! |
C23 | n2900: Consistent, Warningless, and Intuitive Initialization with {} |
Published | Accepted, C23! |
C23 | n3011: Oops, Compound Literals and Empty Initializers | Published | Accepted, C23! |
C23 | n3017: Preprocessor embed - Binary Resource Inclusion |
Published | Accepted, C23! |
C23 | n3022: Modern Bit Utilities (Most Components) | Published | Accepted, C23! |
C23 | n3029: Improved Normal Enumerations | Published | Accepted, C23! |
C23 | n3030: Enhanced Enumerations | 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 |