› P2956R2
Add saturating library support to std::simd
Daniel Towner
D. Towner
,
Ruslan Arutyunyan
R. Arutyunyan
2026-04
Intent
Proposal
Abstract
The Working Draft of C++26 includes data parallel types. It mostly provides operators which work on or with `std::simd` types, but it also includes overloads of useful functions from other parts of C++ (e.g., sin, cos, abs). In [P0543R3] a proposal was made to provide saturating operation support for some basic arithmetic operations and casts. In particular, `saturating_add`, `saturating_sub`, `sa
› P3154R2
Deprecating signed character types in iostreams
Elias Kosunen
E. Kosunen
2026-04
› P3242R2
Copy and fill for mdspan
Nicolas Morales
N. Morales
,
Christian Trott
C. Trott
,
Mark Hoemmen
M. Hoemmen
,
Damien Lebrun-Grandie
D. Lebrun-Grandie
2026-04
Intent
Proposal
Abstract
C++23 introduced `mdspan` ([[P0009R18]](https://wg21.link/p0009r18)), a non-owning multidimensional array abstraction that has a customizable layout. Layout customization was originally motivated in [[P0009R18]](https://wg21.link/p0009r18) with considerations for interoperability and performance, particularly on different architectures. Moreover, [[P2630R4]](https://wg21.link/p2630r4) introduced `
› 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:
› P3625R1
either neither
Michael Florian Hava
M. Hava
2026-04
› 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.
› P3692R4
How to Avoid OOTA Without Really Trying
Paul E. McKenney
P. McKenney
,
Alan Stern
A. Stern
,
Michael Wong
M. Wong
,
Maged Michael
M. Michael
,
Gonzalo Brito
G. Brito
2026-04
Intent
Proposal
Abstract
* P3692R4 updates the C++ working draft to N5032 and applies feedback from CWG. It also adds a citation to the NVIDIA PTX prohibition against OOTA.
› 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.
› P3726R2
Adjustments to Union Lifetime Rules
Barry Revzin
B. Revzin
,
Tomasz Kamiński
T. Kamiński
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
[[P3074R7] (trivial `union`s (was `std::uninitialized<T>`))](https://wg21.link/p3074r7) was adopted in Hagenberg. One of the goals of that paper was to make an example like this work:
› 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.
› P3795R2
Miscellaneous Reflection Cleanup
Barry Revzin
B. Revzin
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
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
› P3804R2
Iterating on parallel_scheduler
Lucian Radu Teodorescu
L. Teodorescu
,
Ruslan Arutyunyan
R. Arutyunyan
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
`parallel_scheduler` [[P2079R10](https://wg21.link/p2079r10)] was a long time in the making and was it adopted in Sofia 2025; still more design concerns were raised after that. This paper proposes to iterate on some of these aspects, aiming to achieve the best possible outcome from `parallel_scheduler`.
› P3826R5
Fix Sender Algorithm Customization
Eric Niebler
E. Niebler
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
› P3828R1
Rename the to_input view to as_input
Nicolai Josuttis
N. Josuttis
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
Nicolai Josuttis: P3828R1: Rename the to_input view to as_input
› 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.
› P3856R8
New reflection metafunction - is_structural_type (US NB comment 49)
Jagrut Dave
J. Dave
,
Alisdair Meredith
A. Meredith
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
Several parts of the standard and library refer to structural types, including library mandates that types be structural, yet there is no way to query whether a type is structural. Library mandates clauses mean that library implementers must somehow have this functionality, but it is simply not exposed to users. We propose a new reflection metafunction - *is_structural_type(info)* as a solution, w
› P3927R2
task_scheduler Support for Parallel Bulk Execution
Eric Niebler
E. Niebler
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
› P3941R4
Scheduler Affinity
Dietmar Kühl
D. Kühl
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
There are a few NB comments raised about the way `affine_on` works:
› P3948R1
constant_wrapper is the only tool needed for passing constant expressions
Matthias Kretz
M. Kretz
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
```cpp "int std:: __polyfunc :: _Base_invoker <false , int >:: _S_call_storage < …" jmp [QWORD PTR [rdi]] "int std:: __polyfunc :: _Base_invoker <false , int >:: _S_call_storage < …" mov eax , 2 ret ```
› P3953R3
Rename std::runtime_format
Victor Zverovich
V. Zverovich
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
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
› P3961R1
Less double indirection in function_ref (RU-220)
Zhihao Yuan
Z. Yuan
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
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.
› P3978R3
constant_wrapper should unwrap on call and subscript
Matthias Kretz
M. Kretz
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
As discussed in [P3948R0], because of language inconsistencies, `std::constant_wrapper` is inconsistently not unwrapping for call and subscript operators whereas all other operators can be found via ADL and the conversion operator implemented in `constant_wrapper`. Looking at `std::`
› P3980R1
Task's Allocator Use
Dietmar Kühl
D. Kühl
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
There are a few NB comments about `task`’s use of allocators:
› P3982R2
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
Disposition Date
2026-03Adopted
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.
› P3986R1
A Wording Strategy for Inlinable Receivers
Robert Leahy
R. Leahy
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
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.
› P4012R1
value-preserving consteval broadcast to simd::vec
Matthias Kretz
M. Kretz
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
1. Novel (no other type in the standard library does this2).
› P4037R1
Supporting signed char and unsigned char in random number generation
Jan Schultke
J. Schultke
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
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
› P4042R0
Fix LWG4543: incorrect cast between simd::vec and simd::mask [...]
Matthias Kretz
M. Kretz
2026-04
Intent
Proposal
Abstract
| Document Number: | P4042R0 | | --- | --- | | Date: | 2026-03-18 | | Reply-to: | Matthias Kretz <m.kretz@gsi.de> | | Audience: | LWG | | Target: | C++26 |
› 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
› P4144R1
Remove span's initializer_list constructor for C++26
Mark Hoemmen
M. Hoemmen
,
Tomasz Kamiński
T. Kamiński
,
Tim Song
T. Song
,
Jonathan Wakely
J. Wakely
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
This paper expresses [LWG4520](https://cplusplus.github.io/LWG/issue4520) and proposes fixing it by reverting adoption of [P2447R6](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2447r6.html).
› P4154R0
Renaming various execution things
Tim Song
T. Song
,
Ruslan Arutyunyan
R. Arutyunyan
,
Arthur O’Dwyer
A. O’Dwyer
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
This paper provides replacement wording for the following papers:
› P4156R0
Rename meta::has_ellipsis_parameter to meta::is_vararg_function
Ville Voutilainen
V. Voutilainen
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
This paper proposes wording to resolve the NB comment [FR-017-155](https://github.com/cplusplus/nbballot/issues/734).
› P4159R0
Make sender_to and receiver_of exposition-only
Tim Song
T. Song
2026-04
Intent
Proposal
Disposition Date
2026-03Adopted
Abstract
In response to LEWG direction on [LWG4361], this paper provides wording to make the `receiver_of` and `sender_to` concepts exposition-only for C++26.
› 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