› P1040R9
std::embed and #depend
JeanHeyd Meneide
J. Meneide
2026-04
Intent
Proposal
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
Mungo Gill
M. Gill
,
Vinnie Falco
V. Falco
2026-04
Intent
Proposal
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
Daniel Towner
D. Towner
,
Ruslan Arutyunyan
R. Arutyunyan
2026-04
Intent
Proposal
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
Daniel Towner
D. Towner
,
Ruslan Arutyunyan
R. Arutyunyan
2026-04
Intent
Proposal
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
Hewill Kang
H. Kang
2026-04
Intent
Proposal
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
Maged Michael
M. Michael
,
Michael Wong
M. Wong
,
Paul McKenney
P. McKenney
,
Mark de Wever
M. Wever
2026-04
Intent
Proposal
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
Daniel Towner
D. Towner
2026-04
Intent
Proposal
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
Barry Revzin
B. Revzin
2026-04
Intent
Proposal
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
Nikita Sakharin
N. Sakharin
2026-04
Intent
Proposal
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
Jan Schultke
J. Schultke
2026-04
Intent
Proposal
Abstract
**Intuition**: "carry-less" means we use XOR instead of plus.
› P3655R4
cstring_view
Peter Bindels
P. Bindels
,
Hana Dusikova
H. Dusikova
,
Jeremy Rifkin
J. Rifkin
,
Marco Foco
M. Foco
,
Alexey Shevlyakov
A. Shevlyakov
2026-04
Intent
Proposal
Abstract
We propose a standard string view type that guarantees null-termination.
› P3725R3
Filter View Extensions for Safer Use, Rev 3
Nicolai Josuttis
N. Josuttis
2026-04
Intent
Proposal
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
Michael Florian Hava
M. Hava
2026-04
› P3787R2
Adjoints to "Enabling list-initialization for algorithms": uninitialized_fill
Giuseppe D'Angelo
G. D'Angelo
,
Ruslan Arutyunyan
R. Arutyunyan
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
In the Tokyo 2024 meeting [P2248R8] (Enabling list-initialization for algorithms) was adopted.
› P3826R5
Fix Sender Algorithm Customization
Eric Niebler
E. Niebler
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
› P3839R0
Slides from the Evening Session on P3045 (Quantities and Units Library)
Mateusz Pusz
M. Pusz
2026-04
› P3842R2
A conservative fix for constexpr uncaught_exceptions() and current_exception()
Ville Voutilainen
V. Voutilainen
2026-04
Intent
Proposal
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)
Jagrut Dave
J. Dave
,
Alisdair Meredith
A. Meredith
2026-04
› P3895R1
Slides for P3724R3 - Integer division
Jan Schultke
J. Schultke
2026-04
Intent
Proposal
Abstract
- C++ supports integer division with rounding towards zero - many other rounding modes are useful:
› P3927R2
task_scheduler Support for Parallel Bulk Execution
Eric Niebler
E. Niebler
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
› P3941R3
Scheduler Affinity
Dietmar Kühl
D. Kühl
2026-04
Intent
Proposal
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
Barry Revzin
B. Revzin
,
Jonathan Wakely
J. Wakely
,
Tomasz Kamiński
T. Kamiński
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
› P3982R1
Split strided_slice into extent_slice and range_slice for C++26
Tomasz Kamiński
T. Kamiński
,
Mark Hoemmen
M. Hoemmen
2026-04
Intent
Proposal
Abstract
**Addresses [PL007: Define the extent member of the `strided_slice`](https://github.com/cplusplus/nbballot/issues/816)**
› P3983R1
simd object representation
Daniel Towner
D. Towner
,
Ruslan Arutyunyan
R. Arutyunyan
2026-04
Intent
Proposal
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
Robert Leahy
R. Leahy
2026-04
Intent
Proposal
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
Vinnie Falco
V. Falco
,
Mungo Gill
M. Gill
,
Steve Gerbino
S. Gerbino
2026-04
Intent
Proposal
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
Daniel Towner
D. Towner
2026-04
Intent
Proposal
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
Ruslan Arutyunyan
R. Arutyunyan
2026-04
Intent
Proposal
Abstract
This paper proposes to rename `system_context_replaceability` namespace.
› P4037R0
Supporting signed char and unsigned char in random number generation
Jan Schultke
J. Schultke
2026-04
Intent
Proposal
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
Jan Schultke
J. Schultke
2026-04
› P4049R0
Relaxing and extending std::copy
Giuseppe D'Angelo
G. D'Angelo
2026-04
Intent
Proposal
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
Jan Schultke
J. Schultke
,
Corentin Jabot
C. Jabot
2026-04
Intent
Proposal
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
Giuseppe D'Angelo
G. D'Angelo
2026-04
Intent
Proposal
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
Nathan Myers
N. Myers
,
Pablo Halpern
P. Halpern
2026-04
Intent
Proposal
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
Gašper Ažman
G. Ažman
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
› P4144R0
Breaking change in std::span's new initializer_list constructor
Mark Hoemmen
M. Hoemmen
2026-04
Intent
Proposal
Abstract
This paper expresses [LWG4520](https://cplusplus.github.io/LWG/issue4520) and proposes a fix.
› P4150R0
Multidimensional Index-based For Each
Nicolas Morales
N. Morales
,
Mark Hoemmen
M. Hoemmen
,
Bryce Adelstein Lelbach
B. Lelbach
,
Damien Lebrun-Grandie
D. Lebrun-Grandie
2026-04
Intent
Proposal
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
Robert Leahy
R. Leahy
2026-04
Intent
Proposal
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
Jan Schultke
J. Schultke
2026-04
Intent
Proposal
Abstract
C23 now has `_BitInt` type for N-bit integers (WG14 N2763, N2775):
› P4161R0
std::fewer
Jeff Snyder
J. Snyder
,
Jonathan B. Coe
J. Coe
,
Neelofer Banglawala
N. Banglawala
2026-04
› P4173R0
A range facility for mdspan
Hewill Kang
H. Kang
2026-04
Intent
Proposal
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()
Hewill Kang
H. Kang
2026-04
Intent
Proposal
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++
Stephane Gros-Lemesre
S. Gros-Lemesre
2026-04
› P4190R0
Restore span's initializer_list constructor for C++29
Mark Hoemmen
M. Hoemmen
,
Hana Dusíková
H. Dusíková
,
Rob Parolin
R. Parolin
2026-04
Intent
Proposal
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
Robert Leahy
R. Leahy
2026-04
Intent
Proposal
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
Giuseppe D'Angelo
G. D'Angelo
2026-04
Intent
Proposal
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.