| Paper | Title | Authors | Audience | Document Date | Mailing Date | Previous Version | Disposition |
|---|---|---|---|---|---|---|---|
| N5034 | WG21 Agenda 23-28 March 2026, Croydon, UKWG21 Agenda 23-28 March 2026, Croydon, UK | WG21 | 2025-11-01 | 2026-01 | |||
|
Intent
Informational
Author(s)
Audience
WG21
Abstract
| Doc. No.: | N5022 | | --- | --- | | Date: | 2025-11-01 | | Reply to: | [Nina Dinka Ranns](mailto:dinka.ranns@gmail.com) |
|
|||||||
| P1000R7 | C++ IS Schedule (proposed)C++ IS Schedule (proposed) | WG21 | 2026-01-13 | 2026-01 | |||
| P2953R3 | Forbid defaulting operator=(X&&) &&Forbid defaulting operator=(X&&) && | EWGI | 2026-01-14 | 2026-01 | |||
|
Intent
Proposal
Author(s)
,
Audience
EWGI
Tracking issue
View on GitHub
Abstract
Currently, [[dcl.fct.def.default]/2.5](https://eel.is/c++draft/dcl.fct.def.default#2.5) permits an explicitly defaulted special member function to differ from the implicit one by adding *ref-qualifiers*, but not *cv-qualifiers*.
|
|||||||
| P3039R1 | Automatically Generate `operator->`Automatically Generate `operator->` | EWGLEWG | 2026-01-12 | 2026-01 | |||
| P3373R2 | Of Operation States and Their LifetimesOf Operation States and Their Lifetimes | LEWG | 2025-12-26 | 2026-01 | |||
|
Intent
Proposal
Author(s)
Audience
LEWG
Tracking issue
View on GitHub
Abstract
In broad terms a regular (i.e. synchronous) function call has access to two forms of storage throughout its lifetime (note that the “lifetime” of a regular function call is the time between the call thereto and the return therefrom):
|
|||||||
| P3795R1 | Miscellaneous Reflection CleanupMiscellaneous Reflection Cleanup | CWGLWG | 2026-01-09 | 2026-01 | |||
|
Intent
Proposal
Author(s)
Audience
CWG, LWG
Tracking issue
View on GitHub
Abstract
At the Sofia meeting, [[P2996R13] (Reflection for C++26)](https://wg21.link/p2996r13), [[P3394R4] (Annotations for Reflection)](https://wg21.link/p3394r4), [[P3293R3] (Splicing a base class subobject)](https://wg21.link/p3293r3), [[P3491R3] (`define_static_{string,object,array}`)](https://wg21.link/p349143), [[P3096R12] (Function Parameter Reflection in Reflection for C++26)](https://wg21.link/p30
|
|||||||
| P3826R3 | Fix Sender Algorithm CustomizationFix Sender Algorithm Customization | LEWGLWG +1 SG1 | 2026-01-05 | 2026-01 | |||
| P3865R1 | Class template argum…e template parametersClass template argument deduction (CTAD) for type template template parametersClass template argument deduction (CTAD) for type template template parameters | EWG | 2026-01-13 | 2026-01 | |||
|
Intent
Proposal
Author(s)
Audience
EWG
Tracking issue
View on GitHub
Abstract
[CWG 3003](https://cplusplus.github.io/CWG/issues/3003.html) "Naming a deducible template for class template argument deduction" has been raised to clarify that with the current core language wording, class template argument deduction does not work for type template template parameters.
|
|||||||
| P3873R0 | 2025-10 Library Evolution Poll Outcomes2025-10 Library Evolution Poll Outcomes | +4 | LEWG | 2026-01-16 | 2026-01 | ||
|
Intent
Proposal
Author(s)
, , , , ,
Audience
LEWG
Tracking issue
View on GitHub
Abstract
In 2025-10, the C++ Library Evolution group conducted a series of electronic decision polls [[P3872R0]](https://wg21.link/P3872r0). This paper provides the results of those polls and summarizes the results.
|
|||||||
| P3911R2 | RO 2-056 6.11.2 [bas…eliably Non-IgnorableRO 2-056 6.11.2 [basic.contract.eval] Make Contracts Reliably Non-IgnorableRO 2-056 6.11.2 [basic.contract.eval] Make Contracts Reliably Non-Ignorable | +3 | EWG +1 SG21 | 2026-01-14 | 2026-01 | ||
|
Intent
Proposal
Author(s)
, , , ,
Audience
SG21, EWG
Revisions
R1
Tracking issue
View on GitHub
Abstract
Building on motivation from EWG Kona 2025, this paper proposes a minimal pure extension to the C++26 Contracts facility. This extension addresses the Romanian National Body's (NB) concern by enabling the writing of an individual contract assertion that guarantees the program execution will not continue past the contract assertion if it is violated, regardless of the semantics of other contract ass
|
|||||||
| P3927R0 | task_scheduler Suppo…rallel Bulk Executiontask_scheduler Support for Parallel Bulk Executiontask_scheduler Support for Parallel Bulk Execution | LEWGLWG +1 SG1 | 2026-01-14 | 2026-01 | |||
| P3941R1 | Scheduler AffinityScheduler Affinity | LEWGLWG +1 SG1 | 2026-01-14 | 2026-01 | |||
|
Intent
Proposal
Author(s)
Audience
SG1, LEWG, LWG
Tracking issue
View on GitHub
Abstract
There are a few NB comments raised about the way `affine_on` works:
|
|||||||
| P3950R0 | return_value & retur…ot Mutually Exclusivereturn_value & return_void Are Not Mutually Exclusivereturn_value & return_void Are Not Mutually Exclusive | EWGEWGI +1 SG1 | 2025-12-21 | 2026-01 | |||
|
Intent
Proposal
Author(s)
Audience
SG1, EWGI, EWG
Tracking issue
View on GitHub
Abstract
The standard specifies the effect of `co_return` statements in terms of equivalent statements within the context of a *replacement body* (§9.6.4 [dcl.fct.def.coroutine]). Like a regular `return` statement `co_return` statements have two distinct forms: Those that return `void` and those that return some value. These are specified as follows (§8.8.5 [stmt.return.coroutine]):
|
|||||||
| P3951R0 | String Interpolation ObjectsString Interpolation Objects | EWG | 2026-01-01 | 2026-01 | |||
|
Intent
Proposal
Author(s)
Audience
EWG
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,
|
|||||||
| P3952R0 | is_pointer_in_rangeis_pointer_in_range | EWGLEWG | 2026-01-08 | 2026-01 | |||
|
Intent
Proposal
Author(s)
,
Audience
EWG, LEWG
Tracking issue
View on GitHub
Abstract
WG21 is often asked for a way to reliably answer the question, “does this raw pointer point inside this buffer?” See [Core 2025] for some use cases. Such an `is_pointer_in_range` function is appropriate to standardize because:
|
|||||||
| P3953R0 | Rename std::runtime_formatRename std::runtime_format | LEWG | 2025-12-28 | 2026-01 | |||
|
Intent
Proposal
Author(s)
Audience
LEWG
Tracking issue
View on GitHub
Abstract
[P2918] introduced `std::runtime_format` to allow opting out of compile-time format string checks in `std::format`. Subsequently, [P3391] made `std::format` usable in constant evaluation. As a result, `std::runtime_format` can now be evaluated at compile time, making its name misleading. This paper proposes renaming `std::runtime_format` to `std::dynamic_format` to better reflect its semantics and
|
|||||||
| P3955R0 | It's Scopes All the Way DownIt's Scopes All the Way Down | LEWG +1 SG1 | 2026-01-14 | 2026-01 | |||
|
Intent
Proposal
Author(s)
Audience
SG1, LEWG
Tracking issue
View on GitHub
Abstract
The fundamental scope algorithm is `within`. It establishes a scope by running an enter scope sender. Thereafter it allows a child operation to run (in that scope since the exit scope sender has not yet run), and then before completing the overall operation runs the exit scope sender yielded by the enter scope sender.
|
|||||||
| P3959R0 | Let layout_stride::m…) accept zero stridesLet layout_stride::mapping with zero extent(s) accept zero stridesLet layout_stride::mapping with zero extent(s) accept zero strides | +1 | LEWG | 2026-01-08 | 2026-01 | ||
|
Intent
Proposal
Author(s)
, ,
Audience
LEWG
Tracking issue
View on GitHub
Abstract
We propose to change `layout_stride::mapping`’s constructors to permit strides to be zero if one or more extents are zero. For example, for extents (3, 5, 0, 11), this change would permit any nonnegative strides. Currently, users would need to set the stride(s) corresponding to zero extents to an arbitrary positive value, such as 1. That would make the strides (1, 3, 1, 105) in this example.
|
|||||||
| P3960R0 | Define copy-constructibility-from-bytesDefine copy-constructibility-from-bytes | EWGLEWG +2 EWGISG1 | 2026-01-15 | 2026-01 | |||
|
Intent
Proposal
Author(s)
,
Audience
SG1, EWGI, EWG, LEWG
Tracking issue
View on GitHub
Abstract
Given an object `src` of trivially-copyable type `T`, we can copy the object’s value representation to an array of bytes, and implicitly create a new `T` object (e.g., with `start_lifetime_as`) in the array of bytes. The result will hold the same value as `src`.
|
|||||||
| P3961R0 | Less double indirect…function_ref (RU-220)Less double indirection in function_ref (RU-220)Less double indirection in function_ref (RU-220) | LEWG | 2026-01-16 | 2026-01 | |||
|
Intent
Proposal
Author(s)
Audience
LEWG
Tracking issue
View on GitHub
Abstract
RU-220 calls for allowing skipping indirections when constructing `function_ref` to improve codegen. The proposed change in LWG 4264<sup>[1]</sup> is not strictly an optimization because certain behaviors with and without the change are visible, therefore, need to be made unspecified. This paper (P3961) suggests that, in addition to the change, a subset of the "optimized" cases should be mandated.
|
|||||||
| P3962R0 | Implementation reali… WG21 standardizationImplementation reality of WG21 standardizationImplementation reality of WG21 standardization | WG21 | 2026-01-13 | 2026-01 | |||
|
Intent
Proposal
Author(s)
Audience
WG21
Tracking issue
View on GitHub
Abstract
As a committee, we have a shared goal: maintaining a standard that delivers real value to users while remaining implementable, performant, and portable. Our intention is to start a series of conversations about constructive steps we can take as a group toward narrowing the gap between standardization and implementation. We would like to see discussion about improving early communication, making co
|
|||||||
| P3963R0 | Assignable lambdas with captureAssignable lambdas with capture | EWGEWGI | 2026-01-15 | 2026-01 | |||
|
Intent
Proposal
Author(s)
Audience
EWGI, EWG
Tracking issue
View on GitHub
Abstract
This paper proposes making lambdas with captures copy assignable and move assignable when all captured entities are themselves assignable.
|
|||||||
| P3965R0 | 2026-01 Library Evolution Polls2026-01 Library Evolution Polls | +4 | WG21 | 2026-01-16 | 2026-01 | ||
|
Intent
Proposal
Author(s)
, , , , ,
Audience
WG21
Tracking issue
View on GitHub
Abstract
This paper contains the decision polls that the C++ Library Evolution group will take in January 2026.
|
|||||||
| P3967R0 | Dual compiles of functions with contractsDual compiles of functions with contracts | EWGI +1 SG21 | 2026-01-16 | 2026-01 | |||
| P3968R0 | A Framework For ContractsA Framework For Contracts | EWGI +1 SG21 | 2026-01-16 | 2026-01 | |||