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:
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 |
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! |
C++26 |
p2537: Relax va_start Requirements to Match C |
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! |
Being Reworked from Feedback:
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.
Cannot Pursue
These proposals are challenging and may require significant rework or language enhancement. Some have also been superseded by other proposals.