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 LEWG Clear all
46 out of 46 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
P2583R2 Symmetric Transfer and Sender Composition M. Gill, V. Falco
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWG
Revisions R4R3R1R0
Tracking issue View on GitHub
Abstract C++20 provides symmetric transfer ([P0913R1](https://wg21.link/p0913r1)[1]) - a mechanism where `await_suspend` returns a `coroutine_handle<>` and the compiler resumes the designated coroutine as a tail call. Coroutine chains execute in constant stack space. `std::execution` ([P2300R10](https://wg21.link/p2300r10)[5]) composes asynchronous operations through sender algorithms. These algorithms cre
P2929R3 simd_invoke D. Towner, R. Arutyunyan
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWG
Revisions R4R2
Tracking issue View on GitHub
Abstract ISO/IEC 19570:2018 introduced data-parallel types to the C++ Extensions for Parallelism TS [P1928R15]. That paper, and several ancillary papers, do an excellent job of setting out the main features of an extension to C++ which allows generic data parallel programming on arbitrary targets. However, it is inevitable that the programmer will want to make some use of target-specific intrinsics in orde
P2964R3 Allowing user-defined types in std::simd D. Towner, R. Arutyunyan
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWGSG6
Revisions R5R4R2
Tracking issue View on GitHub
Abstract The C++ standard library includes data-parallel types in the `<simd>` header, currently restricting element types to a closed list: arithmetic types and `std::complex` specializations. This paper proposes a minimal change to the specification in which the closed list is replaced with trait-based constraints that handle all existing types while naturally extend support to enumerations, `std::byte`
P3059R2 Making user-defined constructors of view iterators/sentinels private H. Kang
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Hewill Kang
Target Audience LEWGSG9
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
Abstract The exposure of user-defined constructors for iterators/sentinels in `<ranges>` currently does not follow consistent rules, which is reflected in the fact that some of them are public and some are private. This paper disables their visibility to comply with best practices.
P3427R3 Hazard Pointer Synchronous Reclamation M. Michael, M. Wong, P. McKenney, M. Wever
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWG
Revisions R8R7R6R5R4
Tracking issue View on GitHub
Abstract This paper proposes extending the working draft (N5008) C++26 hazard pointer interface to support synchronous reclamation. The R1 revision of this paper was reviewed by SG1 in Wroclaw 2024 and forwarded to LEWG with feedback "The word 'asynchronous' doesn't belong in the name of the free function". This revision, P3427R2, revises R1 by following SG1 feedback.
P3440R3 Add n_elements named constructor to std::simd D. Towner
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Daniel Towner
Target Audience LEWG
Revisions R2
Tracking issue View on GitHub
Abstract When iterating over large dynamic data sets using `std::simd` there will inevitably be situations where the very last block of data doesn’t fill the entire `std::simd` object. This remainder needs to be processed using a partially filled `std::simd` object. For example:
P3450R1 Extending is_within_lifetime B. Revzin
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Barry Revzin
Target Audience LEWG
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
Abstract In [[P2641R4]](https://wg21.link/p2641r4), I proposed adding the metafunction
P3605R1 isqrt: A function to calculate integer square root of the nonnegative integer N. Sakharin
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Nikita Sakharin
Target Audience LEWGLWG
Tracking issue View on GitHub
Abstract This paper proposes to add an `isqrt` function (template) to calculate the integer square root of a nonnegative integer. Mathematically defined as:
P3647R1 Slides for P3642R4 - Carry-less product: std::clmul J. Schultke
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Jan Schultke
Target Audience LEWG
Tracking issue View on GitHub
Abstract **Intuition**: "carry-less" means we use XOR instead of plus.
P3655R4 cstring_view P. Bindels, H. Dusikova, J. Rifkin, M. Foco, A. Shevlyakov
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWGLWG
Revisions R5
Tracking issue View on GitHub
Abstract We propose a standard string view type that guarantees null-termination.
P3725R3 Filter View Extensions for Safer Use, Rev 3 N. Josuttis
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Nicolai Josuttis
Target Audience LEWGLWG
Revisions R2
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
Abstract Using filter views is both risky and non-intuitive. Let us look at some typical use cases.
P3786R2 Tuple protocol for fixed-size spans M. Hava
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWG
Tracking issue View on GitHub
P3787R2 Adjoints to "Enabling list-initialization for algorithms": uninitialized_fill G. D'Angelo, R. Arutyunyan
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWGLWG
Revisions R1
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
Abstract In the Tokyo 2024 meeting [P2248R8] (Enabling list-initialization for algorithms) was adopted.
P3826R5 Fix Sender Algorithm Customization E. Niebler
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Eric Niebler
Target Audience LEWGLWGSG1
Revisions R4R3
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
P3839R0 Slides from the Evening Session on P3045 (Quantities and Units Library) M. Pusz
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Mateusz Pusz
Target Audience LEWGSG6SG20SG23
Tracking issue View on GitHub
P3842R2 A conservative fix for constexpr uncaught_exceptions() and current_exception() V. Voutilainen
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Ville Voutilainen
Target Audience LEWGLWG
Revisions R1
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
Abstract The papers [P3818](https://open-std.org/JTC1/SC22/WG21/docs/papers/2025/p3818r1.html) and [P3820](https://open-std.org/JTC1/SC22/WG21/docs/papers/2025/p3820r1.html) explain the background of the problem we have making uncaught_exceptions() and current_exception(). In short, having those function constexpr is a breaking change in some cases.
P3856R7 New reflection metafunction - is_structural_type (US NB comment 49) J. Dave, A. Meredith
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWGLWG
Revisions R8R6R5R4
Tracking issue View on GitHub
P3895R1 Slides for P3724R3 - Integer division J. Schultke
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Jan Schultke
Target Audience LEWG
Tracking issue View on GitHub
Abstract - C++ supports integer division with rounding towards zero - many other rounding modes are useful:
P3927R2 task_scheduler Support for Parallel Bulk Execution E. Niebler
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Eric Niebler
Target Audience LEWGLWGSG1
Revisions R1R0
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
P3941R3 Scheduler Affinity D. Kühl
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Dietmar Kühl
Target Audience LEWGLWGSG1
Revisions R4R2R1
Tracking issue View on GitHub
Abstract There are a few NB comments raised about the way `affine_on` works:
P3981R2 Better return types in std::inplace_vector and std::exception_ptr_cast B. Revzin, J. Wakely, T. Kamiński
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWG
Revisions R1R0
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
P3982R1 Split strided_slice into extent_slice and range_slice for C++26 T. Kamiński, M. Hoemmen
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWG
Revisions R2R0
Tracking issue View on GitHub
Abstract **Addresses [PL007: Define the extent member of the `strided_slice`](https://github.com/cplusplus/nbballot/issues/816)**
P3983R1 simd object representation D. Towner, R. Arutyunyan
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWGLWGSG1
Revisions R2R0
Tracking issue View on GitHub
Abstract The Working Draft makes `simd` types *trivially copyable types*, which allows `std::bit_cast` operations. However, the object representation is unspecified, making the results implementation-defined.
P3986R0 A Wording Strategy for Inlinable Receivers R. Leahy
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Robert Leahy
Target Audience LEWG
Revisions R1
Tracking issue View on GitHub
Abstract When a sender and receiver are connected the result is an operation state. That operation state, once started, is the locus of an asynchronous operation which, upon completion, must notify its consumer of said completion (§33.3 [exec.async.ops]). The way this notification is accomplished is by sending a completion signal to the receiver provided when connecting the sender and receiver.
P4003R2 Ask: A Minimal Coroutine Execution Model V. Falco, M. Gill, S. Gerbino
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWG
Revisions R3R1R0
Tracking issue View on GitHub
Abstract This paper asks the committee to advance the *IoAwaitable* protocol as a standard coroutine execution model.
P4010R1 Add funnel shift operations to bit header D. Towner
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Daniel Towner
Target Audience LEWGSG6
Revisions R0
Tracking issue View on GitHub
Abstract This paper proposes adding funnel shift operations to the C++ standard library. Funnel shifts concatenate two integer values, shift the concatenated result, and extract bits. This is a fundamental primitive bit operation with widespread use across many domains including cryptography, hashing, compression, and pseudo-random number generation.
P4031R1 Rename system_context_replaceability namespace R. Arutyunyan
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Ruslan Arutyunyan
Target Audience LEWG
Revisions R0
Tracking issue View on GitHub
Abstract This paper proposes to rename `system_context_replaceability` namespace.
P4037R0 Supporting signed char and unsigned char in random number generation J. Schultke
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Jan Schultke
Target Audience LEWG
Revisions R1
Tracking issue View on GitHub
Abstract Support for `unsigned char` and `signed char` in distributions would be useful. The ability to generate random bytes or octets is extremely valuable for [fuzz testing](https://en.wikipedia.org/wiki/Fuzzing). For example, when testing an implementation of an [LZ77 or LZ78](https://en.wikipedia.org/wiki/LZ77_and_LZ78) compression algorithm, a user would typically
P4038R0 Slides for P3969R0 - Fixing std::bit_cast of types with padding bits J. Schultke
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Jan Schultke
Target Audience LEWG
Tracking issue View on GitHub
P4049R0 Relaxing and extending std::copy G. D'Angelo
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Giuseppe D'Angelo
Target Audience LEWGSG1SG9SG18SG23
Revisions R1
Tracking issue View on GitHub
Abstract In this table we’re summarizing the status quo and the changes brought by the options and extensions illustrated above. The table refers to `std::copy`, but similar changes are expected for the other algorithms of the family.
P4052R0 Renaming saturation arithmetic functions J. Schultke, C. Jabot
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWG
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
Abstract Saturation arithmetic functions should be renamed. This paper resolves NB comment [[FR-026-265]](https://github%2ecom/cplusplus/nbballot/issues/840).
P4102R0 Container insertion and erasure should be allowed to relocate G. D'Angelo
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Giuseppe D'Angelo
Target Audience LEWGSG9
Tracking issue View on GitHub
Abstract The sequence containers `vector`, `inplace_vector` and `deque` store their elements in contiguous storage (or, in the case of `deque`, in blocks of contiguous storage). When an element is erased from the middle of such a container, the elements after the erased position must be shifted to fill the gap. Similarly, when an element is inserted in the middle, the existing elements must be shifted to m
P4139R1 Better better lookups N. Myers, P. Halpern
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWG
Revisions R3R2R0
Tracking issue View on GitHub
Abstract ``` Document #: P4139R1 Date: 2026-03-23 Project: ISO SC22/WG21 Programming Language C++ Title: Better better lookup Reply-to: ncm@cantrip.org Authors: Nathan Myers, Pablo Halpern Target: C++29 Audience: LEWG ```
P4140R0 Proposed resolution for US70-126: allow incomplete types in type_order G. Ažman
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Gašper Ažman
Target Audience LEWGLWG
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
P4144R0 Breaking change in std::span's new initializer_list constructor M. Hoemmen
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Mark Hoemmen
Target Audience LEWG
Revisions R1
Tracking issue View on GitHub
Abstract This paper expresses [LWG4520](https://cplusplus.github.io/LWG/issue4520) and proposes a fix.
P4150R0 Multidimensional Index-based For Each N. Morales, M. Hoemmen, B. Lelbach, D. Lebrun-Grandie
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWG
Tracking issue View on GitHub
Abstract | **Before** | **After** | | --- | --- | | `std::ranges::for_each( std::execution::par_unseq, std::views::cartesian_product( std::views::indices(A.extent(0)), std::views::indices(A.extent(1))), [=] (auto idx) { auto [i, j] = idx; B[j, i] = A[i, j]; });` | `std::for_each_index( std::execution::par_unseq, A.mapping(), [=] (auto i, auto j) { B[j, i] = A[i, j]; });` |
P4151R1 Rename affine_on R. Leahy
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Robert Leahy
Target Audience LEWG
Revisions R0
Tracking issue View on GitHub
Disposition Date 2026-03Adopted
Abstract When `std::execution::affine_on` was added [1] it was a binary-invocable object accepting two parameters, respectively:
P4157R0 LEWG Slides for P3666R3 J. Schultke
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Jan Schultke
Target Audience LEWG
Revisions R1
Tracking issue View on GitHub
Abstract C23 now has `_BitInt` type for N-bit integers (WG14 N2763, N2775):
P4161R0 std::fewer J. Snyder, J. Coe, N. Banglawala
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWGLWG
Tracking issue View on GitHub
P4173R0 A range facility for mdspan H. Kang
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Hewill Kang
Target Audience LEWGLWG
Tracking issue View on GitHub
Abstract Standard `mdspan` accessors, such as `default_accessor`, are specialized for use with raw pointers. While `mdspan`'s design allows for custom accessors, providing a standardized iterator-based accessor simplifies integration with ranges such as views and containers.
P4179R0 view_interface::[c]rbegin() H. Kang
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Hewill Kang
Target Audience LEWGLWGSG9
Tracking issue View on GitHub
Abstract This paper provides `rbegin()`/`rend()`/`crbegin()`/`crend()` methods to `ranges::view_interface`, making its interface more symmetric with the existing `cbegin()`/`cend()` members and enhancing convenience for views. Revision history R0 Initial revision. Discussion In C++23, `view_interface` added `cbegin()`/`cend()` members to improve const-correctness and interface consistency. However, it stil
P4188R0 Extensible Math Functions for C++ S. Gros-Lemesre
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWGLWGSG6SG18
Revisions R1
Tracking issue View on GitHub
P4190R0 Restore span's initializer_list constructor for C++29 M. Hoemmen, H. Dusíková, R. Parolin
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Target Audience LEWG
Tracking issue View on GitHub
Abstract [P4144R1](https://isocpp.org/files/papers/P4144R1.html) reverted [P2447R6](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2447r6.html) by removing `span`’s `initializer_list` constructor. We propose to add it back in C++29, but with constraints this time, in order to avoid the unfortunate conversions that led to its removal.
P4191R0 is_nothrow_connectable_in R. Leahy
Intent Proposal
Mailing Date 2026-04 Post-Croydon
Author(s) Robert Leahy
Target Audience LEWGSG1
Tracking issue View on GitHub
Abstract Under the original design of `std::execution` [1] one could check whether or not `std::execution::connect` threw an exception via:
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 46 of 46 papers · source: open-std.org