› P0870R8
A proposal for a type trait to detect narrowing conversions
Giuseppe D'Angelo
G. D'Angelo
2026-07
› P0876R24
fiber_context - fibers without scheduler
Oliver Kowalke
O. Kowalke
,
Nat Goodspeed
N. Goodspeed
2026-07
Abstract
This paper proposes a minimal API that enables stackful context switching **without** the need for a scheduler. The API is suitable to act as building-block for high-level constructs such as stackful coroutines as well as cooperative multitasking (aka user-land/green threads that incorporate a **scheduling** facility).
› P2019R9
Thread attributes
Corentin Jabot
C. Jabot
2026-07
Disposition Date
2026-06Adopted
Abstract
Most operating systems, including real-time operating systems for embedded platforms, provide a way to name threads.
› P2434R5
Nondeterministic pointer provenance
S. Davis Herring
S. Herring
2026-07
Disposition Date
2026-06Adopted
Abstract
[P2318R1](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2318r1.pdf) describes a variety of plausible models of pointer provenance that differ principally in how they handle conversions between pointers and integers (including the integer values of the storage bytes for a pointer). (See its §A.4 for discussion of the variants in terms of examples.) It proposes the variant called PNVI-ae-
› P2956R3
Add saturating library support to std::simd
Daniel Towner
D. Towner
,
Ruslan Arutyunyan
R. Arutyunyan
2026-07
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
› P3049R2
node-handles for lists
Michael Florian Hava
M. Hava
2026-07
Abstract
Node handles are an over-specified solution to the relatively simple problem of moving nodes between associative containers, which can be done with a more conservative interface similar to std::list::splice. There is a lack of consistency with std::list, where splicing and merging can be done but there is no node handle-based interface, yet lists are indeed node based, too. P00832 acknowledges the
› P3091R6
Better lookups for `map` , `unordered_map`, and `flat_map`
Pablo Halpern
P. Halpern
2026-07
Disposition Date
2026-06Adopted
Abstract
The most convenient way to look up an element of a `map` -like container is to use the index operator, i.e., `theMap[key]` . This operator cannot be used, however, when 1) the container is `const` , 2) the mapped type is not default constructible, 3) the default-constructed value is inappropriate for the context, or 4) the container should not be modified. These limitations often force the user to
› P3104R6
Bit permutations
Jan Schultke
J. Schultke
2026-07
Disposition Date
2026-06Adopted
Abstract
The C++ bit manipulation library in `<bit>` is an invaluable abstraction from hardware operations. Functions like `countl_zero` help the programmer avoid use of intrinsic functions or inline assembly.
› P3125R6
constexpr pointer tagging
Hana Dusíková
H. Dusíková
2026-07
Disposition Date
2026-06Adopted
Abstract
Pointer tagging is widely known and used technique ([Glasgow Haskell Compiler](https://takenobu-hs.github.io/downloads/haskell_ghc_illustrated.pdf), LLVM's `[PointerIntPair](https://github.com/llvm/llvm-project/blob/8e5aa538caccef167e8096b2173fdaf2be9cc129/llvm/include/llvm/ADT/PointerIntPair.h#L80)`, `[PointerUnion](https://github.com/llvm/llvm-project/blob/8e5aa538caccef167e8096b2173fdaf2be9cc12
› P3154R3
Deprecating signed character types in iostreams
Elias Kosunen
E. Kosunen
2026-07
Disposition Date
2026-06Adopted
› P3211R2
views::flat_map
Hewill Kang
H. Kang
2026-07
Abstract
We propose `views::flat_map`, a range adaptor that applies a function returning a range for each element, then flattens the result. This pattern, commonly known as *flat mapping*, is widespread in functional programming and data processing. Providing it as a dedicated view improves readability and expressiveness, and also opens opportunities for optimization in lazy evaluation contexts.
› P3216R3
views::slice
Hewill Kang
H. Kang
2026-07
Abstract
This paper proposes the Tier 1 adaptor `views::slice` (as described in [P2760](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2760r1.html)) to enhance the C++29 ranges library. Notably, this is the first standard range adaptor that accepts two arguments — `start` and `end` — to specify the interval [`start`, `end`) for slicing a range.
› P3220R3
views::take_before
Hewill Kang
H. Kang
2026-07
Abstract
This paper proposes the Tier 1 adaptor in [P2760](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2760r1.html): `views::delimit`, which is renamed into `views::take_before` along with its corresponding view class to improve the C++29 ranges facilities.
› P3230R3
views::unchecked_(take|drop)
Hewill Kang
H. Kang
2026-07
Abstract
This paper proposes two Tier 1 adaptors in [P2760](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2760r1.html): `views::unchecked_drop` and `views::unchecked_take`, cousins of `drop` and `take`, to improve the C++26 ranges facilities, which were renamed to `views::unchecked_take` and `views::unchecked_drop` after Tokyo WG21, as "unchecked" better describes the utility's nature than "exa
› P3242R4
Copy and fill for mdspan
Nicolas Morales
N. Morales
,
Christian Trott
C. Trott
,
Mark Hoemmen
M. Hoemmen
,
Damien Lebrun-Grandie
D. Lebrun-Grandie
2026-07
Disposition Date
2026-06Adopted
Abstract
C++23 introduced `mdspan` ([P0009R18]), a non-owning multidimensional array abstraction that has a customizable layout. Layout customization was originally motivated in [P0009R18] with considerations for interoperability and performance, particularly on different architectures. Moreover, [P2630R4] introduced `submdspan`, a slicing function that can yield arbitrarily strided layouts. However, witho
› P3248R5
Require [u]intptr_t
Gonzalo Brito Gadeschi
G. Gadeschi
2026-07
Disposition Date
2026-06Adopted
Abstract
Proposals like [P2835](https://wg21.link/p2835) and [P3125](https://wg21.link/P3125) use `[u]intptr_t` as an integer type capable of holding a pointer value in their APIs<sup>[1]</sup>. However, `[u]intptr_t` being *optional* forces sub-optimal design choices such as making APIs optional or introducing workarounds.
› P3296R6
let_async_scope
Anthony Williams
A. Williams
2026-07
› P3319R6
Add an iota object for simd (and more)
Matthias Kretz
M. Kretz
2026-07
Disposition Date
2026-06Adopted
Abstract
There is one important constant in SIMD programming: `0,` `1,` `2,` `3,` `...`. In the standard library we have an algorithm called `iota` that can initialize a range with such values. For `simd` we want to have simple to spell constants that scale with the SIMD width. This paper proposes a simple facility that can be generalized.
› P3367R5
constexpr coroutines
Hana Dusíková
H. Dusíková
2026-07
Abstract
Currently C++'s [doesn't allow coroutines to be `constexpr`](https://eel.is/c++draft/dcl.constexpr#3.1). This limitation forces users to choose between having `constexpr` compatible library or (maybe) simpler coroutine interface. As a library author I do prefer `constexpr` but I do not want to make this decision.
› P3395R6
Fix encoding issues and add a formatter for std::error_code
Victor Zverovich
V. Zverovich
2026-07
Disposition Date
2026-06Adopted
Abstract
This paper proposes making `std::error_code` formattable using the formatting facility introduced in C++20 (`std::format`) and fixes encoding issues in the underlying API ([LWG4156]).
› P3427R6
Hazard Pointer Synchronous Reclamation
Maged Michael
M. Michael
,
Michael Wong
M. Wong
,
Paul McKenney
P. McKenney
,
Mark de Wever
M. Wever
2026-07
Abstract
Hazard pointer interface from P2530R3 merged into the working draft (N5008):
› P3505R4
Fix the default floating-point representation in std::format
Victor Zverovich
V. Zverovich
,
Junekey Jeon
J. Jeon
2026-07
Disposition Date
2026-06Adopted
Abstract
When `std::format` was proposed for standardization, floating-point formatting was defined in terms of `std::to_chars` to simplify specification. While being a positive change overall, this introduced a small but undesirable change compared to the design and reference implementation in [FMT], resulting in surprising behavior to users, performance regression and an inconsistency with other mainstre
› P3642R6
Carry-less product: std::clmul
Jan Schultke
J. Schultke
2026-07
Abstract
[Carry-less multiplication](https://en.wikipedia.org/wiki/Carry-less_product) is a simple numerical operation on unsigned integers. It can be a seen as a regular multiplication where `xor` is being used as a reduction instead of `+`.
› P3655R5
cstring_view
Peter Bindels
P. Bindels
,
Hana Dusikova
H. Dusikova
,
Jeremy Rifkin
J. Rifkin
,
Marco Foco
M. Foco
,
Alexey Shevlyakov
A. Shevlyakov
2026-07
Abstract
We propose a standard string view type that guarantees null-termination.
› P3669R4
Non-Blocking Support for `std::execution`
Detlef Vollmann
D. Vollmann
2026-07
Abstract
Some execution environments want to make sure that specific operations are non-blocking. These can not signal an event using the facilities of `std::execution` as currently specified as it doesn’t provide operations that are guaranteed to be non-blocking.
› P3772R2
std::simd overloads for bit permutations
Jan Schultke
J. Schultke
2026-07
Disposition Date
2026-06Adopted
Abstract
[[P3104R4]](https://wg21%2elink/p3104r4) has been been design-approved by LEWG for C++29. During the discussion of the paper, it was *not* mentioned that [[P2933R4]](https://wg21%2elink/p2933r4) adds `std::simd` overloads for almost all functions in the `<bit>` header.
› P3785R1
Library Wording Changes for Defaulted Postfix Increment and Decrement Operators
Matthew Taylor
M. Taylor
,
Alex (Waffl3x)
A. (Waffl3x)
2026-07
Disposition Date
2026-06Adopted
› P3790R2
Pointer lifetime-end zap proposed solutions: Bag-of-bits pointer class
Paul E. McKenney
P. McKenney
,
Maged Michael
M. Michael
,
Jens Maurer
J. Maurer
,
Peter Sewell
P. Sewell
,
Hans Boehm
H. Boehm
,
Hubert Tong
H. Tong
,
Niall Douglas
N. Douglas
,
Thomas Rodgers
T. Rodgers
,
Will Deacon
W. Deacon
,
Michael Wong
M. Wong
,
David Goldblatt
D. Goldblatt
,
Kostya Serebryany
K. Serebryany
,
Anthony Williams
A. Williams
,
Tom Scogland
T. Scogland
,
JF Bastien
J. Bastien
,
Daniel Krügler
D. Krügler
,
David Tenty
D. Tenty
2026-07
Author(s)
Paul E. McKenney , Maged Michael , Jens Maurer , Peter Sewell , Hans Boehm , Hubert Tong , Niall Douglas , Thomas Rodgers , Will Deacon , Michael Wong , David Goldblatt , Kostya Serebryany , Anthony Williams , Tom Scogland , JF Bastien , Daniel Krügler , David Tenty
Abstract
The C++ standard currently specifies that all pointers to an object become invalid at the end of its lifetime [basic.life]. Although this permits additional diagnostics and optimizations which might be of some value, it is not consistent with long-standing usage, especially for a range of concurrent and sequential algorithms that rely on loads, stores, equality comparisons, and even dereferencing
› P3791R1
constexpr deterministic random
Hana Dusíková
H. Dusíková
2026-07
Abstract
Algorithms `shuffle`, `sample` are useful even in compile time, same applies to random distribution types which are fully deterministic.
› P3793R2
Better shifting
Brian Bi
B. Bi
,
Jan Schultke
J. Schultke
2026-07
Disposition Date
2026-06Adopted
Abstract
C++ has built-in shift operators, `<<` and `>>`, inherited from C with semantics essentially unchanged, including the following two inconvenient properties:
› P3806R1
views::cycle
Hewill Kang
H. Kang
2026-07
Abstract
This paper proposes adding `views::cycle`, a Tier 1 range adaptor as described in [P2760](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2760r1.html), to enhance the C++29 Ranges library by enabling infinite repetition of a range's elements.
› P3928R1
static_sized_range
Hewill Kang
H. Kang
2026-07
Abstract
This paper introduces `static_sized_range`, a refinement of `sized_range` for ranges whose sizes are known at compile time.
› P4188R1
Extensible Math Functions for C++
Stephane Gros-Lemesre
S. Gros-Lemesre
2026-07
› P4291R0
views::unique
Hewill Kang
H. Kang
2026-07
Abstract
This paper proposes a range adaptor `views::unique` that filters out consecutive equivalent elements from a range, leaving only one element from each group of consecutive equivalent elements. This adaptor complements the existing `std::unique` algorithm by providing a composable, lazy, and allocation-free view for a common filtering operation.
› P4294R0
views::take_last and views::drop_last
Hewill Kang
H. Kang
2026-07
Abstract
This paper proposes two new range adaptors, `views::take_last` and `views::drop_last`, that respectively produce the last *N* elements of a range and all-but-the-last *N* elements of a range. They mirror the shape of the existing `views::take` / `views::drop` adaptors and fill an obvious gap in the standard range adaptor set.