› P1040R9
std::embed and #depend
J. Meneide
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
M. Gill , V. Falco
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
D. Towner , R. Arutyunyan
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
D. Towner , R. Arutyunyan
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
H. Kang
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
M. Michael , M. Wong , P. McKenney , M. Wever
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
D. Towner
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
B. Revzin
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
N. Sakharin
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
J. Schultke
Intent
Proposal
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
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
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
› P3787R2
Adjoints to "Enabling list-initialization for algorithms": uninitialized_fill
G. D'Angelo , R. Arutyunyan
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
E. Niebler
Intent
Proposal
Disposition Date
2026-03Adopted
› P3839R0
Slides from the Evening Session on P3045 (Quantities and Units Library)
M. Pusz
› P3842R2
A conservative fix for constexpr uncaught_exceptions() and current_exception()
V. Voutilainen
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)
J. Dave , A. Meredith
› P3895R1
Slides for P3724R3 - Integer division
J. Schultke
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
E. Niebler
Intent
Proposal
Disposition Date
2026-03Adopted
› P3941R3
Scheduler Affinity
D. Kühl
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
B. Revzin , J. Wakely , T. Kamiński
Intent
Proposal
Disposition Date
2026-03Adopted
› P3982R1
Split strided_slice into extent_slice and range_slice for C++26
T. Kamiński , M. Hoemmen
Intent
Proposal
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
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
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
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
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
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
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
› P4049R0
Relaxing and extending std::copy
G. D'Angelo
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
J. Schultke , C. Jabot
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
G. D'Angelo
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
N. Myers , P. Halpern
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
G. Ažman
Intent
Proposal
Disposition Date
2026-03Adopted
› P4144R0
Breaking change in std::span's new initializer_list constructor
M. Hoemmen
Intent
Proposal
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
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
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
Abstract
C23 now has `_BitInt` type for N-bit integers (WG14 N2763, N2775):
› P4161R0
std::fewer
J. Snyder , J. Coe , N. Banglawala
› P4173R0
A range facility for mdspan
H. Kang
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()
H. Kang
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++
S. Gros-Lemesre
› P4190R0
Restore span's initializer_list constructor for C++29
M. Hoemmen , H. Dusíková , R. Parolin
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
R. Leahy
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
G. D'Angelo
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.