› P1974R1
Persistent constexpr allocation
J. Snyder
› P2034R8
Partially Mutable Lambda Captures
R. McDougall , L. Garg
› P2287R6
Designated-initializers for base classes
B. Revzin
Disposition Date
2026-06
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
B. Revzin , B. Lopez , Z. Laine , M. Park
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
G. Ažman
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
T. Doumler , P. Bindels , J. Berne
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
T. Doumler , J. Berne
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
A. Cassagnes
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
J. Berne
Abstract
* Major restructuring: new Introduction, Design, Glossary, expanded Standard Library Additions sections
› P3812R1
const and & in default member functions
J. Waterloo
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
V. Luchkin , G. Ažman
Disposition Date
2026-06
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
T. Doumler , J. Berne
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
A. Cassagnes
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
B. Revzin , P. Dimov , D. Vandevoorde , D. Katz
Disposition Date
2026-06
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
J. Schultke
Abstract
C23 now has `_BitInt` type for N-bit integers (WG14 N2763, N2775):
› P4222R1
An initialization profile (R2)
B. Stroustrup
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
M. Wippich , M. Çağrı
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
J. Berne
› P4275R0
EWG presentation for P3400R4
J. Berne
› P4281R0
Type Aliases in Requires-Expressions
H. Kang
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
J. Berne
› P4297R0
Severing P3100's Profiles Claim from Its Case-by-Case Review
V. Falco , V. Voutilainen
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
J. Berne
› P4304R0
Zero-Copy `co_return`
Y. Chen
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
V. Falco , V. Voutilainen
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
V. Falco
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.