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++29 | p1629: Standard Text Encoding | Published | Latest Draft |
| C++29 | p1664: Reconstructible Ranges | Published | Latest Draft |
| C++29 | p1040: std::embed |
Published | Latest Draft |
| C++29 | p1130: Module Resource Requirement Propagation | Published | Latest Draft |
| C2y/C3a | n3332: _Record types |
Published | Latest Draft |
| C2y/C3a | n3695: Strict Compatibility for Translation-Time Type Matching Improvements | Published | Latest Draft |
| C2y/C3a | n3912: #embed Synchronization |
Published | Latest Draft |
| C2y/C3a | n3915: Expression Evaluation and Access in _Generic | Published | Latest Draft |
| C2y/C3a | n3916: Thread Attributes | Published | Latest Draft |
| C2y/C3a | n4000: Transparent Aliases | Published | Latest Draft |
| C2y/C3a | n4002: _Any_func - A Universal Function Pointer Storage Type |
Published | Latest Draft |
| C2y/C3a | n4008: Unicode Printing | Published | Latest Draft |
Actively Pursued Technical Specifications
| C2y/C3a | n4001: defer Technical Specification |
Published | Latest Draft |
| C2y/C3a | n3852: Improved __attribute__((cleanup)) Through defer |
Published | Latest Draft |
| C2y/C3a | n3780: Function with Data - Closures in C (A Comprehensive Proposal Overviewing Blocks, Nested Functions, and Lambdas) | Published | Latest Draft |
| C2y/C3a | cXXX3: Comprehensive Statement Expressions | Soon™ | Latest Draft |
| C2y/C3a | cXXX5: -fwrapv for Everyone - A Measured Approach to _Operators |
Soon™ | Latest Draft |
| C2y/C3a | cXXX7: T[..; …] — A Non-owning Sized Arrays for Spans and Beyond |
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! |
| C++26 | p2537: Relax va_start Requirements to Match C |
Published | Latest Draft |
| C++26 | p1967: Preprocessor embed - Binary Resource Inclusion |
Published | Latest Draft |
| C++26 | (Through Steve Downey – Thanks, Steve!) p1175: A simple and practical optional reference for C++ | Published | Latest Draft |
| C++29 | p3540: #embed offset Parameter |
Published | Latest Draft |
| 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! |
| C2y | n3330: More Modern Bit Utilities | Published | Accepted, C2y! |
| C2y | n3265: Restartable Functions for Efficient Character Conversions | Published | Accepted, C2y! |
| C2y | n3365: Official Function Nomenclature | Published | Latest Draft |
| C2y | n3469: The Big Size Survey | Published | Latest Draft |
| C2y | n3833: Integer Constant Expression Initialized const Integer Declarations are Implicitly constexpr |
Published | Latest Draft |
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 |
| C++?? | p1040: std::embed |
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 | n3198: Unwinding | Published | Latest Draft |
| C | n2995: __supports_literal |
Published | Latest Draft |
| C | n3441: _Generic and VLA Realignment and Improvement |
Published | Latest Draft |
| C | n3485: Literal Suffixes for size_t |
Published | Latest Draft |
| C | n3486: __self_func |
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 |
| C++ | p2958: typeof and typeof_unqual for C++ |
Published | Latest Draft |
| C3a | n3437: Variable-Length Array (VLA) Allocator Control | Published | Latest Draft |
| C3a | n3601: Additional Half-Open case Range Syntax | Published | Latest Draft |
| C3a | n3691: printf string size specifiers (and general precision length modifiers) | Published | Latest Draft |