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 Apr · 1 of 6

Pick months in 2026

Add Year +

Select Years To Display

Current Years Selected

2026
Filters EWG Clear all
23 out of 23 papers selected for export
SelectPaper Title Authors Audience Doc Date
P1040R9 std::embed and #depend J. Meneide
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) JeanHeyd Meneide
Target Audience EWGLEWGCWG
Revisions R11R10
Tracking issue View on GitHub
Abstract > I’m very keen on std::embed. I’ve been hand-embedding data in executables for NEARLY FORTY YEARS now. — Guy "Hatcat" Davidson, June 15, 2018
P1130R2 Module Resource Requirement Propagation J. Meneide
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) JeanHeyd Meneide
Target Audience EWGSG15
Tracking issue View on GitHub
Abstract The only way to declare a dependency in C++ currently is to use a `#include` statement. With Modules coming to C++, dependency information was greatly enhanced by preambles and globule module fragments which allow for both the compiler and build system to understand physical and semantic layout of code. However, there is still a problem area that C++ has not addressed that people in the brave new
P2034R6 Partially Mutable Lambda Captures R. McDougall, L. Garg
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience EWG
Revisions R8R7
Tracking issue View on GitHub
Abstract Type erased callables like `std::move_only_function` are the backbone of most asynchronous systems. Users of such systems close their operations in lambdas and place them in a concurrent queue to be processed elsewhere. Performance is often key in such systems, and such operations may want its own local reusable scratch memory. Or perhaps an accumulator for hysteresis over multiple calls.
P3384R1 __COUNTER__ J. Rifkin
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Jeremy Rifkin
Target Audience EWG
Tracking issue View on GitHub
Abstract The `__COUNTER__` predefined macro is a common language extension for C and C++ which expands to an integer literal that starts at `0` and increments by `1` every time it is expanded in a translation unit. This is useful for generating unique identifiers, generating unique indices, and other preprocessor metaprogramming uses.
P3598R0 CWG3158 - `const`-ification of Splice Expressions J. Berne
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Joshua Berne
Target Audience EWG
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
P3846R1 C++26 Contracts, reasserted T. Doumler, J. Berne
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience EWG
Tracking issue View on GitHub
Abstract [P3835R0], [US 25-052], [FI-071], and [RO 2-056] characterise P2900 as being ‘not safe’ and diminishing the overall ‘safety’ of C++. A central concern is that P2900 provides no method to guarantee *in* *code* that a particular assertion, or all assertions in a given ‘component of a program’, will always be checked. In addition, [RO 2-056] suggests that being able to alter the evaluation semantics
P3899R2 Clarify the behavior of floating-point overflow J. Schultke, M. Kretz
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience EWG
Revisions R3R1
Tracking issue View on GitHub
Abstract The current specification of floating-point overflow is unclear. Floating-point overflow occurs when finite operands are used as operands, and the result cannot be represented as a finite value. For [[ISO/IEC 60559:2020]](https://www%2eiso%2eorg/standard/80985%2ehtml) floating-point numbers, this results in infinity.
P3951R1 String Interpolation Objects B. Revzin
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Barry Revzin
Target Audience EWG
Revisions R0
Tracking issue View on GitHub
Abstract The `std::format` approach to formatting offers many significant benefits over the prior `<iostream>`s approach that need not be revisited here. However, `<iostream>` does still have one significant advantage: ordering. It is easy to see at a glance with a long `std::cout` statement which pieces are to be formatted in which order. With `std::format`, as the amount of replacement fields increases,
P4019R1 constant_assert J. Persson
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Jonas Persson
Target Audience EWG
Revisions R0
Tracking issue View on GitHub
P4021R2 compile_assert - an assert that evaluates at compile time J. Grant
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Jonathan Grant
Target Audience EWG
Revisions R1R0
Tracking issue View on GitHub
Abstract `compile_assert()` provides a way to specify constraint predicates that are validated at compile time and reported to the user via a diagnostic. This proposal specifies the syntax but not the method used to determine a constraint failure.
P4032R1 Strong ordering for meta::info L. Szolnoki
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Lénárd Szolnoki
Target Audience EWG
Revisions R0
Tracking issue View on GitHub
Abstract Being able to compare `meta::info` directly makes metaprogramming that needs to sort types, functions, etc... into some canonical order with standard algorithms more convenient.
P4043R0 Are C++ Contracts Ready to Ship in C++26? D. Neațu
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Darius Neațu
Target Audience DGEWGWG21
Tracking issue View on GitHub
Abstract The C++ Contracts facility introduced by P2900 represents a major addition to the C++ language, intended to support specification of program correctness through preconditions, postconditions, and assertions.
P4044R0 Just `pre!`. Mandatory precondition for contracts. L. Teodorescu
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience EWG
Tracking issue View on GitHub
Abstract C++26 contracts support a wide range of uses, but they currently cannot reliably enforce *UB-safety*. Because preconditions may be evaluated with *ignore* semantics, a library that relies on contract preconditions to prevent undefined behavior cannot guarantee that those checks will execute.
P4101R0 Consteval-only Values for C++26 B. Revzin, P. Dimov, D. Vandevoorde, D. Katz
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience EWGCWG
Revisions R1
Tracking issue View on GitHub
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.
P4135R0 Consteval-only Types W. Childers
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Wyatt Childers
Target Audience EWGCWG
Tracking issue View on GitHub
Abstract If we take a step back and talk about types, a fundamental tenet is that types have invariants. These invariants are ultimately what drive many of the semantics of a C++ program. C++ would not be where it is today without RAII and RAII could not exist without a notion of invariants.
P4136R0 #line is not in line with existing practices C. Jabot
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Corentin Jabot
Target Audience EWG
Revisions R2R1
Tracking issue View on GitHub
Abstract line-directive: # line pp-tokens new-line The string-literal of a #line directive, if present, shall be a character string literal. The line number of the current source line is the line number of the current physical source line, i.e., it is one greater than the number of new-line characters read or introduced in translation phase 1[lex.phases] while processing the source file to the current prep
P4138R2 CWG3103 “Corresponding members and by-value object parameters” V. Serebrennikov
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Vlad Serebrennikov
Target Audience EWGCWG
Revisions R1R0
Tracking issue View on GitHub
Abstract While looking at [CWG3103](https://cplusplus.github.io/CWG/issues/3103.html), I got interested how we arrived at status quo, specifically how [[basic.scope.scope]/3.1](https://wg21.link/basic.scope.scope#3.1) came to be, and this is what I found. One of the conclusions I arrived at is that it doesn’t make much sense to overload member functions with explicit object parameter of non-reference type
P4142R0 Consteval Only Types Slides W. Childers
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Wyatt Childers
Target Audience EWG
Tracking issue View on GitHub
P4149R1 Define "immediate context" A. Krzemieński, B. Bi
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience EWGCWG
Revisions R0
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
P4155R0 Responding to type erasure requirements for trivial relocation O. Hunt
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Oliver Hunt
Target Audience EWG
Tracking issue View on GitHub
Abstract P3937 presents a discussion of the type erasure requirements for any future trivial relocation feature in C++. This paper is a very short response to that paper addressing various issue in the presented requirements, and erroneous technical arguments.
P4158R0 Subsetting and restricting C++ for memory safety O. Hunt
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Oliver Hunt
Target Audience EWG
Tracking issue View on GitHub
P4175R0 Lift some arbitrary CTAD restrictions M. Izvekov
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Matheus Izvekov
Target Audience EWGCWG
Tracking issue View on GitHub
Abstract This paper proposes to relax some Class Template Argument deduction (CTAD) restrictions which were originally put in place for no well motivated reason other than simplicity and being conservative.
P4197R0 Design questions for trivial relocation in C++29 G. D'Angelo
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Giuseppe D'Angelo
Target Audience EWGLEWG
Tracking issue View on GitHub
Abstract Trivial relocation has been a long-standing goal for C++. Multiple proposals have been put forward over the years, most notably [P1144R12] and [P2786R13], each with a different design and different tradeoffs. In the C++26 cycle, [P2786R13] was adopted in Hagenberg, but was ultimately removed from the C++26 Working Draft in Kona due to a number of unresolved design concerns.
Showing 23 of 23 papers · source: open-std.org