› P1974R1
Persistent constexpr allocation
Jeff Snyder
J. Snyder
2026-07
› P2034R8
Partially Mutable Lambda Captures
Ryan McDougall
R. McDougall
,
Lakshay Garg
L. Garg
2026-07
› P2287R6
Designated-initializers for base classes
Barry Revzin
B. Revzin
2026-07
Disposition Date
2026-06Adopted
Abstract
[[P0017R1]](https://wg21.link/p0017r1) extended aggregates to allow an aggregate to have a base class. [[P0329R4]](https://wg21.link/p0329r4) gave us designated initializers, which allow for much more expressive and functional initialization of aggregates. However, the two do not mix: a designated initializer can currently only refer to a direct non-static data members. This means that if I have a
› P2806R4
do expressions
Barry Revzin
B. Revzin
,
Bruno Cardoso Lopez
B. Lopez
,
Zach Laine
Z. Laine
,
Michael Park
M. Park
2026-07
Abstract
C++ is a language built on statements. `if` is not an expression, loops aren’t expressions, statements aren’t expressions (except maybe in the specific case of `*expression*;`).
› P2826R4
Expression Aliases
Gašper Ažman
G. Ažman
2026-07
Abstract
This paper introduces a way to rewrite a function call to a different expression without a forwarding layer.
› P3099R3
Contracts for C++: User-defined diagnostic messages
Timur Doumler
T. Doumler
,
Peter Bindels
P. Bindels
,
Joshua Berne
J. Berne
2026-07
Abstract
* Updated Section 2.6 “Constant evaluation”; specified behaviour for unevaluated contexts, discarded contexts, SFINAE, and trial evaluation
› P3100R7
A framework for systematically addressing undefined behaviour in the C++ Standard
Timur Doumler
T. Doumler
,
Joshua Berne
J. Berne
2026-07
Abstract
In this paper, we enumerate all cases of core language undefined behaviour explicitly specified in the C++ Standard, group them into ten categories, and classify them along a number of relevant criteria.
› P3385R8
Attributes reflection
Aurelien Cassagnes
A. Cassagnes
2026-07
Abstract
Attributes are used to a great extent, and there is new attributes being added to the language somewhat regularly. As reflection makes its way into our standard, we are missing a way for generic code to look into the attributes appertaining to an entity. That is what this proposal aims to tackle by introducing the building blocks.
› P3400R4
Controlling Contract-Assertion Properties
Joshua Berne
J. Berne
2026-07
Abstract
* Major restructuring: new Introduction, Design, Glossary, expanded Standard Library Additions sections
› P3812R1
const and & in default member functions
Jarrad J Waterloo
J. Waterloo
2026-07
Abstract
Allow compilers to be able to generate the default copy assignment operator for classes that have `const` and `&` members by making the class `transparently replaceable` if it has a default copy constructor. Allow compilers to be able to generate the default move assignment operator for classes that have `const` and `&` members by making the class `transparently replaceable` if it has a default mo
› P3822R2
Conditional noexcept specifiers in compound requirements
Viacheslav Luchkin
V. Luchkin
,
Gašper Ažman
G. Ažman
2026-07
Disposition Date
2026-06Adopted
Abstract
This paper extends compound requirements to allow noexcept specifiers to be applied conditionally. The proposed syntax for this is `requires { { *expression* } noexcept(*constant-expression*) -> *return-type-constraint*; }`.
› P3850R1
A proposed plan for extending Contracts in C++29
Timur Doumler
T. Doumler
,
Joshua Berne
J. Berne
2026-07
Abstract
At the March 2026 WG21 meeting in Croydon, the ISO C++ committee completed the C++26 Standard, including the addition of *contract* assertions. This milestone is the result of a sustained effort by the authors of [[P2900R14](https://wg21.link/p2900r14)] and the WG21 subgroups responsible for evaluating the proposal: SG21, EWG, and CWG. This success was made possible in part by the existence of a c
› P4033R1
Synthesizing enum at compile time with define_enum
Aurelien Cassagnes
A. Cassagnes
2026-07
Abstract
The generative capability of reflection as they were introduced in C++26 are limited to `define_aggregate`, with no quick paths to more powerful facilities (See [p3294r2] for example). We can already leverage `define_aggregate` to impressive effects (See a JSON parser [here](https://brevzin.github.io/c++/2025/06/26/json-reflection/)), here we introduce another basic and lightweight building block:
› P4101R1
Consteval-only Values for C++26
Barry Revzin
B. Revzin
,
Peter Dimov
P. Dimov
,
Daveed Vandevoorde
D. Vandevoorde
,
Dan Katz
D. Katz
2026-07
Disposition Date
2026-06Adopted
Abstract
The Reflection design from [[P2996R13]](https://wg21.link/p2996r13) was based on a model of having consteval-only types to prevent reflections from leaking to runtime. But we’ve run into issues and limitations with that approach, so we propose that, for C++26, we change instead to a consteval-only value model. This solves the same problems, but has additional benefits.
› P4157R1
LEWG Slides for P3666R4
Jan Schultke
J. Schultke
2026-07
Abstract
C23 now has `_BitInt` type for N-bit integers (WG14 N2763, N2775):
› P4222R1
An initialization profile (R2)
Bjarne Stroustrup
B. Stroustrup
2026-07
Abstract
The initialization profile should be the easiest to define, but there can be no profile that everybody can agree on without discussion and alternative choices. Also, the rules for initialization and uninitialized memory are far more complex than most people are willing to believe. The initialization profile is foundational to just about every profile, so the initialization profile must isolate tho
› P4234R2
$identifiers
Matthias Wippich
M. Wippich
,
Murat Can Çağrı
M. Çağrı
2026-07
Abstract
One of the oldest and most widely supported extensions to C++ is allowing `$` in identifiers. This feature's origins predate both standard C++ and standard C. As GCC notes in its [documentation](https://gcc.gnu.org/onlinedocs/gcc/Dollar-Signs.html):
› P4262R0
Design Considerations for Class Invariants
Joshua Berne
J. Berne
2026-07
› P4275R0
EWG presentation for P3400R4
Joshua Berne
J. Berne
2026-07
› P4281R0
Type Aliases in Requires-Expressions
Hewill Kang
H. Kang
2026-07
Abstract
This paper proposes extending the syntax of `requires`-expressions to allow `using`-type aliases within the requirement body.
› P4283R0
Requires clauses for Contract Assertions
Joshua Berne
J. Berne
2026-07
› P4297R0
Severing P3100's Profiles Claim from Its Case-by-Case Review
Vinnie Falco
V. Falco
,
Ville Voutilainen
V. Voutilainen
2026-07
Intent
Ask
Abstract
This paper asks EWG (the Evolution Working Group) to sever an unadopted architecture claim from the wording it is bundled with, so that the wording proceeds and the claim gets its own paper and poll.
› P4298R0
Nonthrowing Evaluation Semantics
Joshua Berne
J. Berne
2026-07
› P4304R0
Zero-Copy `co_return`
Yuxuan Chen
Y. Chen
2026-07
Abstract
For a plain function, `auto v = foo();` constructs the result directly into `v`: mandatory copy elision has made the value path of ordinary calls zero-copy since C++17. The equivalent coroutine code
› P4308R0
Eight Responses to a Throwing Implicit Contract Assertion
Vinnie Falco
V. Falco
,
Ville Voutilainen
V. Voutilainen
2026-07
Intent
Inform
Abstract
The response space for a throwing implicit contract assertion contains at least eight options, not the four before EWG.
› P4317R0
A Profile for Runtime-Checkable Core-Language Undefined Behavior: std::core_ub
Vinnie Falco
V. Falco
2026-07
Intent
Propose
Abstract
The runtime-checkable cases of core-language undefined behavior can be guarded by a single standard profile, with none of the changes to the definitional machinery of the standard that a Contracts-based routing would require.