› P0260R22
C++ Concurrent Queues
Detlef Vollmann
D. Vollmann
,
Lawrence Crowl
L. Crowl
,
Chris Mysen
C. Mysen
,
Gor Nishanov
G. Nishanov
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
Concurrent queues are a fundamental structuring tool for concurrent programs. We propose concurrent queue concepts and a concrete implementation.
› P2689R4
Atomic Refs Bound to Memory Orderings & Atomic Accessors
Christian Trott
C. Trott
,
Mark Hoemmen
M. Hoemmen
,
Damien Lebrun-Grandie
D. Lebrun-Grandie
,
Dan Sunderland
D. Sunderland
,
Nevin Liber
N. Liber
2026-10-13
2026-10
› P2728R16
Unicode in the Library, Part 1: UTF Transcoding
Eddie Nolan
E. Nolan
2026-10-23
2026-10
› P3045R10
Quantities and units library
Mateusz Pusz
M. Pusz
,
Dominik Berner
D. Berner
,
Johel Ernesto Guerrero Peña
J. Peña
,
Charles Hogg
C. Hogg
,
Nicolas Holthaus
N. Holthaus
,
Roth Michaels
R. Michaels
,
Vincent Reverdy
V. Reverdy
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
Several groups in the ISO C++ Committee reviewed the “P1935: A C++ Approach to Physical Units” [[P1935R2]](https://wg21.link/p1935r2) proposal in Belfast 2019 and Prague 2020. All those groups expressed interest in the potential standardization of such a library and encouraged further work. The authors also got valuable initial feedback that highly influenced the design of the V2 version of the [[
› P3100R9
A framework for systematically addressing undefined behaviour in the C++ Standard
Timur Doumler
T. Doumler
,
Joshua Berne
J. Berne
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
In this paper, we enumerate all cases of core language undefined behaviour explicitly specified in the C++ Standard, group them into ten categories, and classify them along a number of relevant criteria.
› P3643R5
std::to_signed and std::to_unsigned
Jan Schultke
J. Schultke
2026-10-14
2026-10
Doc Date
2026-10-14
Abstract
Add `std::to_signed` and `std::to_unsigned` function templates in the style of `std::to_underlying`.
› P3655R6
cstring_view
Peter Bindels
P. Bindels
,
Hana Dusikova
H. Dusikova
,
Jeremy Rifkin
J. Rifkin
,
Marco Foco
M. Foco
,
Alexey Shevlyakov
A. Shevlyakov
,
Thomas Köppe
T. Köppe
,
Xavier Bonaventura
X. Bonaventura
2026-10-18
2026-10
Doc Date
2026-10-18
Abstract
We propose a standard string view type that guarantees null-termination.
› P3666R5
Bit-precise integers
Jan Schultke
J. Schultke
2026-10-18
2026-10
Doc Date
2026-10-18
Abstract
C23 has introduced so-called "bit-precise integers" into the language, which should be brought to C++ for compatibility, among other reasons. Following an exploration of possible designs in [[P3639R0]](https://wg21%2elink/p3639r0) "The `_BitInt` Debate", this proposal introduces a new set of fundamental types to C++.
› P3704R1
What are profiles?
Bjarne Stroustrup
B. Stroustrup
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
The aim of this note is to give a brief explanation of what Profiles are and what problems they aim to address. It also tries to dispel some myths about the scope of Profiles and give an idea of the current state of implementation.
› P3852R4
constexpr `is_pointer_within` memory area
Hana Dusíková
H. Dusíková
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
```cpp // [span.obs], observers constexpr size_type size() const noexcept; constexpr size_type size_bytes() const noexcept; constexpr bool empty() const noexcept; template <typename U> constexpr bool SPANS_OVER(const U & obj) const noexcept; ```
› P3935R3
Rebasing <cmath> on C23
Jan Schultke
J. Schultke
2026-10-10
2026-10
Doc Date
2026-10-10
Abstract
Most of C++26 is based on C23, but the header `<cmath>` is still based on C17. There are many useful C23 `<math.h>` features that should be provided in C++.
› P3969R3
Fixing std::bit_cast of types with padding bits
Jan Schultke
J. Schultke
2026-10-04
2026-10
Doc Date
2026-10-04
Abstract
When bit-casting a type containing padding bits to a type with no padding bits, `std::bit_cast` degenerates into an alternative spelling for `std::unreachable` (some exceptions apply). To prevent this inadvertent footgun, this proposal makes that degenerate form of `std::bit_cast` ill-formed.
› P4213R1
Minimal SI: Defining the International System of Units for the C++ Standard Library
Mateusz Pusz
M. Pusz
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
[[P3045R10]](https://wg21.link/p3045r10) supplies the type system. It does not supply the SI. A user who includes the framework gets `quantity`, `unit`, `quantity_spec`, `prefix` — but no `metre`, no `kilogram`, no `second`. The framework is deliberately content-agnostic: it supports arbitrary systems of quantities and units. Shipping the framework without SI content would be like shipping `<algor
› P4223R1
Towards senders in interfaces
Ian Petersen
I. Petersen
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
The standard library offers two ways to declare an asynchronous function in one place and define it in another, and each falls short. Returning a sender whose type is specific to the function’s implementation puts the structure of that implementation in its declaration, so the implementation can’t change without changing the interface, and overrides of a virtual function can’t differ in structure.
› P4267R1
Formatting Enums, Upon Reflection
Victor Zverovich
V. Zverovich
2026-09-27
2026-10
Doc Date
2026-09-27
Abstract
Formatting an enumeration as its underlying type currently requires either a formatter specialization or an explicit conversion at every call site. [P3070] proposed `format_as`, an ADL-based customization point that makes this more convenient and allows the conversion to be performed before type erasure.
› P4270R0
Free Value Or Else
Steve Downey
S. Downey
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This paper proposes the member functions `value_or_construct` and `value_or_else` of [P3413R0] on `std::optional` and `std::expected`, which build the alternative only when it is needed, and the free functions `value_or`, `reference_or`, `or_invoke`, and `or_construct` over any type modeling a `nullable` concept, with the result type computed as the `common_type` or `common_reference` of the conta
› P4280R0
Expected over References
Steve Downey
S. Downey
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
A function that can fail and otherwise returns a reference has no good return type today. `expected<T*,` `E>` lets a null pointer through as a success, and `expected<reference_wrapper<T>,` `E>` exposes the wrapper at every use. An error that is owned elsewhere, by a diagnostics engine or an error registry, has the same problem in the error position. We propose that `std::expected` hold an lvalue r
› P4282R2
Away From co_yield For std::execution::task
Robert Leahy
R. Leahy
2026-10-17
2026-10
Doc Date
2026-10-17
Abstract
This paper updates the design and wording of `std::execution::task` given the adoption of P3950 [1].
› P4295R1
Single Ends for C++ Concurrent Queues
Detlef Vollmann
D. Vollmann
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
Bounded concurrent queues are an important communication mechanism. But in most cases a specific part in a program only needs acces to one end of the queue. This paper proposes two templates that works with any `concurrent_queue` [P0260](https://wg21.link/P0260) that provide only one part of the queue interface.
› P4336R0
2026-09 Library Evolution Poll Outcomes
Inbal Levi
I. Levi
,
Fabio Fracassi
F. Fracassi
,
Andreas Weis
A. Weis
,
Corentin Jabot
C. Jabot
2026-10-17
2026-10
Doc Date
2026-10-17
Abstract
In 2026-09, the C++ Library Evolution group conducted an electronic poll [[P4335R0]](https://wg21.link/P4335R0). This paper provides the results of this poll and summarizes the responses.
› P4346R1
std::movable_box: Give Users the Ranges Movable Wrapper
Steve Downey
S. Downey
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
The exposition-only class template *movable-box* is the workhorse of the range adaptors. It is how the standard library stores a predicate, a projection, or a value inside a view type and still satisfies the assignability the `view` concept demands. Every implementation ships one. Every ranges-adjacent library reimplements one. Anyone writing a conforming view outside the standard library must wri
› P4390R0
stopped_by
Robert Leahy
R. Leahy
2026-10-18
2026-10
Doc Date
2026-10-18
Abstract
This paper proposes `std::execution::stopped_by` which allows asynchronous operations to be stopped, in response to a stop request, by a second asynchronous operation.
› P4394R0
started_by
Robert Leahy
R. Leahy
2026-10-19
2026-10
Doc Date
2026-10-19
Abstract
This paper proposes `std::execution::started_by` which allows asynchronous operations to be specified from only their completion signatures and an initiating function.
› P4396R0
2026-10 Library Evolution Polls
Inbal Levi
I. Levi
,
Fabio Fracassi
F. Fracassi
,
Andreas Weis
A. Weis
,
Corentin Jabot
C. Jabot
2026-10-22
2026-10
Doc Date
2026-10-22
Abstract
This paper contains the decision polls that the C++ Library Evolution group will take in October 2026.
› P4403R0
Survey of noexcept Policy Papers
Inbal Levi
I. Levi
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
The paper "P2267R1: Library Evolution Policies" was created to define a framework for collecting and documenting widely agreed principles in the C++ standard library, defined as "policies" for the SD-9 document.
› P4404R0
Standard Library Versioning
Inbal Levi
I. Levi
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
The discussion on progress of the standard library has been going on for many years, with different approaches suggested and considered, each with their own tradeoffs. However, none of the approaches have had a consensus among the committee.
› P4408R0
Implicit Conversions Between Integer Representation Types
Mateusz Pusz
M. Pusz
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
Consider a distance stored in a 16-bit integer to save memory:
› P4414R0
Structural classes: a bugfix for reflection
Ville Voutilainen
V. Voutilainen
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This proposal allows encapsulated types, including `string_view` and `span`, to be used with `define_static_array`, and to be conveyed from compile-time code to run-time code.
› P4415R0
Profiles: implementation status and experience
Michael Wong
M. Wong
,
Krystian Stasiowski ; Ville Voutilainen
K. Voutilainen
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
Profiles now have two independent implementations. Krystian Stasiowski's Clang implements the P3589R2 framework, except <ins>[[profiles::exempt]]</ins>, and most of the P4222R2 initialization profile <ins>std::init</ins>. Ville Voutilainen's GCC implements the framework, <ins>std::init, and the first working invalidation profile, std::invalidation</ins>, on the design of P3446R0 with the default-d
› P4421R0
Numeric Traits for C++29
Damien Lebrun-Grandie
D. Lebrun-Grandie
,
Mark Hoemmen
M. Hoemmen
,
Jonathan Wakely
J. Wakely
,
Matthias Kretz
M. Kretz
,
Tim Song
T. Song
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This paper revives [[P1841R3]](https://wg21.link/p1841r3) (“Wording for Individually Specializable Numeric Traits”) for C++29, folding in the resolutions from [[P2551R2]](https://wg21.link/p2551r2) (“Clarify intent of P1841 numeric traits”) that were polled favorably by Library Evolution in 2022 but never turned into a new revision of P1841. It proposes no new design: it updates the wording to ref