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
Mailings
1 · Year 1 · Month

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

2026 Jul · 1 of 7

Pick months in 2026

2025 143 papers

Pick months in 2025

Add Year +

Select Years To Display

Current Years Selected

2026 2025
Filters EWG Clear all
26 out of 26 papers selected for export
SelectPaper Title Authors Audience Doc Date Mailing Date
P1974R1 Persistent constexpr allocation Jeff Snyder J. Snyder 2026-07
Mailing Date 2026-07 Post-Brno
Author(s) Jeff Snyder
Target Audience EWG
Tracking issue View on GitHub
P2034R8 Partially Mutable Lambda Captures Ryan McDougall R. McDougall , Lakshay Garg L. Garg 2026-07
Mailing Date 2026-07 Post-Brno
Target Audience EWGCWG
Revisions R9R7R6
Tracking issue View on GitHub
P2287R6 Designated-initializers for base classes Barry Revzin B. Revzin 2026-07
Mailing Date 2026-07 Post-Brno
Author(s) Barry Revzin
Target Audience EWG
Tracking issue View on GitHub
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
Mailing Date 2026-07 Post-Brno
Target Audience EWG
Revisions R5
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 Gašper Ažman G. Ažman 2026-07
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 Timur Doumler T. Doumler , Peter Bindels P. Bindels , Joshua Berne J. Berne 2026-07
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 Timur Doumler T. Doumler , Joshua Berne J. Berne 2026-07
Mailing Date 2026-07 Post-Brno
Target Audience EWGLEWG
Revisions R8R6R3
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 Aurelien Cassagnes A. Cassagnes 2026-07
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 Joshua Berne J. Berne 2026-07
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 Jarrad J Waterloo J. Waterloo 2026-07
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 Viacheslav Luchkin V. Luchkin , Gašper Ažman G. Ažman 2026-07
Mailing Date 2026-07 Post-Brno
Target Audience EWG
Revisions R1
Tracking issue View on GitHub
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
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 Aurelien Cassagnes A. Cassagnes 2026-07
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 Barry Revzin B. Revzin , Peter Dimov P. Dimov , Daveed Vandevoorde D. Vandevoorde , Dan Katz D. Katz 2026-07
Mailing Date 2026-07 Post-Brno
Target Audience EWGCWG
Revisions R0
Tracking issue View on GitHub
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
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) Bjarne Stroustrup B. Stroustrup 2026-07
Mailing Date 2026-07 Post-Brno
Author(s) Bjarne Stroustrup
Target Audience EWGSG23
Revisions R2R0
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 Matthias Wippich M. Wippich , Murat Can Çağrı M. Çağrı 2026-07
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 Joshua Berne J. Berne 2026-07
Mailing Date 2026-07 Post-Brno
Author(s) Joshua Berne
Target Audience EWG
Tracking issue View on GitHub
P4275R0 EWG presentation for P3400R4 Joshua Berne J. Berne 2026-07
Mailing Date 2026-07 Post-Brno
Author(s) Joshua Berne
Target Audience EWG
Tracking issue View on GitHub
P4281R0 Type Aliases in Requires-Expressions Hewill Kang H. Kang 2026-07
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 Joshua Berne J. Berne 2026-07
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 Vinnie Falco V. Falco , Ville Voutilainen V. Voutilainen 2026-07
Intent Ask
Mailing Date 2026-07 Post-Brno
Target Audience EWG
Revisions R1
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 Joshua Berne J. Berne 2026-07
Mailing Date 2026-07 Post-Brno
Author(s) Joshua Berne
Target Audience EWG
Tracking issue View on GitHub
P4304R0 Zero-Copy `co_return` Yuxuan Chen Y. Chen 2026-07
Mailing Date 2026-07 Post-Brno
Author(s) Yuxuan Chen
Target Audience EWGSG17
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 Vinnie Falco V. Falco , Ville Voutilainen V. Voutilainen 2026-07
Intent Inform
Mailing Date 2026-07 Post-Brno
Target Audience EWG
Revisions R1
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 Vinnie Falco V. Falco 2026-07
Intent Propose
Mailing Date 2026-07 Post-Brno
Author(s) Vinnie Falco
Target Audience EWGSG22
Revisions R1
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