WG21 PAPERS

Mailings Beta

Volunteer-driven · Not affiliated with WG21 or ISO

Filter and export papers from the C++ Committee’s monthly mailings by time frame and audience using the options below, or refine your export further with the Select button. Links point directly to the official WG21 papers on open-std.org.

Disposition Updated

Audience
General
Wording
Evolution
Study Groups
WG21
Mailings
1 · Year 1 · Month

Select the arrow to the right of the year to filter for specific months.

2026 Jul · 1 of 5

Pick months in 2026

Filters EWG Clear all
26 out of 26 papers selected for export
Paper Title Authors Audience Doc Date Audit
P1974R1 Persistent constexpr allocation J. Snyder
Mailing Date 2026-07 Post-Brno
Author(s) Jeff Snyder
Target Audience EWG
Tracking issue View on GitHub
P2034R8 Partially Mutable Lambda Captures R. McDougall, L. Garg
Mailing Date 2026-07 Post-Brno
Target Audience EWGCWG
Revisions R7R6
Tracking issue View on GitHub
P2287R6 Designated-initializers for base classes B. Revzin
Mailing Date 2026-07 Post-Brno
Author(s) Barry Revzin
Target Audience EWG
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Target Audience EWG
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Author(s) Gašper Ažman
Target Audience EWG
Revisions R3
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Target Audience EWGLEWG
Revisions R2
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Target Audience EWGLEWG
Revisions R6
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Author(s) Aurelien Cassagnes
Target Audience EWGLEWG
Revisions R7
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Author(s) Joshua Berne
Target Audience EWG
Revisions R3
Tracking issue View on GitHub
Abstract * Major restructuring: new Introduction, Design, Glossary, expanded Standard Library Additions sections
P3812R1 const and & in default member functions J. Waterloo
Mailing Date 2026-07 Post-Brno
Author(s) Jarrad J Waterloo
Target Audience EWGCWG
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Target Audience EWG
Revisions R1
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Target Audience EWGLEWG
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Author(s) Aurelien Cassagnes
Target Audience EWGSG7
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Target Audience EWGCWG
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Author(s) Jan Schultke
Target Audience EWGLEWG
Revisions R0
Tracking issue View on GitHub
Abstract C23 now has `_BitInt` type for N-bit integers (WG14 N2763, N2775):
P4222R1 An initialization profile (R2) B. Stroustrup
Mailing Date 2026-07 Post-Brno
Author(s) Bjarne Stroustrup
Target Audience EWGSG23
Revisions R0
Tracking issue View on GitHub
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ı
Mailing Date 2026-07 Post-Brno
Target Audience EWGSG22
Revisions R1R0
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Author(s) Joshua Berne
Target Audience EWG
Tracking issue View on GitHub
P4275R0 EWG presentation for P3400R4 J. Berne
Mailing Date 2026-07 Post-Brno
Author(s) Joshua Berne
Target Audience EWG
Tracking issue View on GitHub
P4281R0 Type Aliases in Requires-Expressions H. Kang
Mailing Date 2026-07 Post-Brno
Author(s) Hewill Kang
Target Audience EWGCWG
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Author(s) Joshua Berne
Target Audience EWG
Tracking issue View on GitHub
P4297R0 Severing P3100's Profiles Claim from Its Case-by-Case Review V. Falco, V. Voutilainen
Intent Ask
Mailing Date 2026-07 Post-Brno
Target Audience EWG
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Author(s) Joshua Berne
Target Audience EWG
Tracking issue View on GitHub
P4304R0 Zero-Copy `co_return` Y. Chen
Mailing Date 2026-07 Post-Brno
Author(s) Yuxuan Chen
Target Audience EWGEWGI
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Target Audience EWG
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Author(s) Vinnie Falco
Target Audience EWGSG22
Tracking issue View on GitHub
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.
Showing 26 of 26 papers · source: open-std.org