› N5061
2026-11 Pre-Buzios WG21 admin telecon
Guy Davidson
G. Davidson
2026-10-01
2026-10
› P0085R4
Oo... adding a coherent character sequence to begin octal-literals
Jolly Chen
J. Chen
,
Axel Naumann
A. Naumann
,
Michael Jonker
M. Jonker
2026-10-13
2026-10
› 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.
› P0917R4
Making operator?: overloadable
Matthias Kretz
M. Kretz
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This paper proposes user-defined overloads of `operator?:`. In addition to normal function calls, `operator?:` can also be defaulted, in which case it simply defines a common type to use for the built-in conditional operator. To avoid a breaking change, user-defined overloads of `operator?:` are only considered when no built-in candidate is viable.
› P1219R3
Homogeneous variadic function parameters
Ian Pike
I. Pike
,
Eczbek
Eczbek
,
Jan Schultke
J. Schultke
,
James Touton
J. Touton
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
We propose homogeneous function parameter packs for C++29: a variable number of parameters of one declared type. One declaration replaces fixed-arity overload families, retaining ordinary parameter initialization, conversion ranking, and a compile-time count.
› P2034R10
Partially Mutable Lambda Captures
Ryan McDougall
R. McDougall
,
Lakshay Garg
L. Garg
2026-10-08
2026-10
Doc Date
2026-10-08
Abstract
`const` and `mutable` extend cleanly to lambda captures. The design is easy to implement, follows the language’s direction, and matches the common model of a lambda as shorthand for an object of a callable struct:
› 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
› P2952R4
Deduced return types for defaulted operator functions
Arthur O'Dwyer
A. O'Dwyer
,
Matthew Taylor
M. Taylor
2026-10-09
2026-10
Doc Date
2026-10-09
Abstract
Current C++ forbids explicitly defaulted functions to have placeholder return types such as `auto&`, except for C++20’s `operator<=>`. We remove this syntactic restriction in cases where the deduced return type would be the same as the expected one. This allows more consistency and less repetition when declaring defaulted functions.
› P2970R1
Partial application of concepts in template arguments
Corentin Jabot
C. Jabot
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
Concept template parameters were introduced in C++26 by [P2841R7](https://wg21.link/P2841R7) [3]. We propose to extend this feature with partially applied concepts. This feature was introduced in [P2841R0](https://wg21.link/P2841R0) [1] and removed in R1 to reduce the scope of the initial paper, and because [EWG initially found](https://github.com/cplusplus/papers/issues/1546#issuecomment-15874016
› P2989R3
A Simple Approach to Universal Template Parameters
Corentin Jabot
C. Jabot
,
Gašper Ažman
G. Ažman
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
In [P1985R3](https://wg21.link/P1985R3) [3], we explore universal template parameters (a template parameter that can be a type, non-type, or template name). We proposed allowing the use of universal template parameters in all contexts, which would have added a large amount of complexity to both the specification and implementations for limited benefits. In this paper, we propose a much simpler sub
› 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.
› P3400R5
Controlling Contract-Assertion Properties
Joshua Berne
J. Berne
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
C++26 Contracts, adopted with [P2900R14], provides a framework for specifying and checking contract assertions whose behavior is controlled through implementation-defined build configurations. This paper introduces *assertion-control* *objects* — compile-time objects, composed from `constexpr` *labels*, that let developers customize contract-assertion behavior directly in C++ source code. Labels p
› P3412R4
String Interpolation
Bengt Gustafsson
B. Gustafsson
,
Victor Zverovich
V. Zverovich
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
In contrast with P3951 this proposal includes a way that f-literals are converted to some kind of string by calling a `__format__` function under certain conditions. The motivation for this is mainly that it is what users expect and that it is convenient.
› P3440R4
Add mask_from_count function to std::simd
Daniel Towner
D. Towner
2026-10-14
2026-10
Doc Date
2026-10-14
Abstract
Proposal to add `std::simd::mask_from_count` function to create a mask containing an exact number of set bits. Such a function is notably useful for handling loop remainders.
› P3549R1
Diverging expressions
Barry Revzin
B. Revzin
,
Michael Park
M. Park
,
Zach Laine
Z. Laine
,
Bruno Cardoso Lopes
B. Lopes
2026-10-18
2026-10
Doc Date
2026-10-18
Abstract
One pattern that will occur with some regularity with pattern matching [[P2688R6] (Pattern Matching with `match` and `case`)](https://wg21.link/p2688r6) (and [[P2806R5] (do expressions)](https://wg21.link/p2806r5)) is the desire to produce values for some patterns but not for all. Consider the following simplified example:
› P3568R3
break label; and continue label;
Jan Schultke
J. Schultke
2026-10-11
2026-10
Doc Date
2026-10-11
Abstract
Introduce `break label` and `continue label` to `break` and `continue` out of nested loops and `switch`es as accepted into C2y, and relax label restrictions.
› 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.
› P3747R1
Deducing target types for function templates
Thomas Mejstrik
T. Mejstrik
2026-09-23
2026-10
Doc Date
2026-09-23
Abstract
<style> table, th, td { border: 1px solid #999; border-collapse: collapse; padding: 6px 10px; } th { background: #f5f5f5; } </style>
› P3816R4
Hashing meta::info
Matt Cummins
M. Cummins
,
Valentyn Yukhymenko
V. Yukhymenko
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This paper proposes a new standard library template, `consteval_hash<T>`, with a single specialization for `meta::info`. The purpose of this facility is to provide a standard interface for compile-time hashing, thereby allowing unordered containers such as `unordered_map` and `unordered_set` to be used with `meta::info` keys, and potentially with other types in the future.
› P3817R1
Structured Binding Assignments
Yehonatan Simian yonisimian@gmail.com
Y. yonisimian@gmail.com
,
Ran Regev regev.ran@gmail.com
R. regev.ran@gmail.com
2026-10-18
2026-10
Doc Date
2026-10-18
Abstract
This proposal introduces an extension to C++ structured bindings, allowing assignment to existing variables.
› 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; ```
› P3867R1
define_static_string as a STATICALLY_WIDEN replacement
Corentin Jabot
C. Jabot
2026-10-01
2026-10
Doc Date
2026-10-01
Abstract
We propose a reflection-inspired facility to replace the `STATICALLY-WIDEN` utility macro.
› 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++.
› P3938R2
Values of floating-point types
Jan Schultke
J. Schultke
2026-10-11
2026-10
Doc Date
2026-10-11
Abstract
It is not specified what values a floating-point type may represent in C++, leading to an unclear model for floating-point types. This paper introduces the necessary wording to specify what may be found between the lines of the standard.
› P3963R1
Assignable lambdas with capture
Ruslan Arutyunyan
R. Arutyunyan
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This paper proposes making lambdas with captures copy assignable and move assignable when all captured entities are themselves copy/move assignable respectively.
› 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.
› P4185R2
Absolute Quantities
Mateusz Pusz
M. Pusz
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
[[P3045R10]](https://wg21.link/p3045r10) models quantities with two abstractions, a delta and a point, both spelled with the `quantity` class template: `quantity<R>` is a delta and `quantity<point<R, PO>>` a point. Neither fits the most common value in a physics equation, an amount measured from a true zero, such as a mass of 5 kg or a thermodynamic temperature of 300 K. A delta has no zero anchor
› P4195R1
WG21 Game Theory: The Culture That Emerges From SD-4
Vinnie Falco
V. Falco
,
Mungo Gill
M. Gill
2026-10-22
2026-10
Intent
Inform
Doc Date
2026-10-22
Abstract
The record SD-4 requires of a poll cannot show whether an objection was answered or outvoted.
› 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
› P4222R3
An initialization profile
Bjarne Stroustrup
B. Stroustrup
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This note emphasizes the rationale of the initialization profile, considers a few alternatives, and suggests simplifications. Implementations exist and are tested nightly [Impl1, Impl2].
› 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.
› P4235R1
Removing Digraphs
Matthias Wippich
M. Wippich
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
Digraphs are a complicated solution to a very old problem, which cause more problems than they solve in a modern environment. Digraphs also severely limit the design space of C++, although as we have seen with [[P2996]](https://www%2eopen-std%2eorg/jtc1/sc22/wg21/docs/papers/2025/p2996r13%2ehtml) we are already fine with special-casing our way out of this pickle.
› P4246R0
Transcoding Text Views and Ranges for WhatWG and iconv
Steve Downey
S. Downey
2026-09-23
2026-10
Doc Date
2026-09-23
Abstract
> “It seems like a really messy situation and you’re proposing to inherit that mess into the C++ standard.” — Jan Schultke [Schultke]
› 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
› P4277R1
Overview and Implementation Report for P3100
Joshua Berne
J. Berne
2026-10-23
2026-10
› 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].
› P4284R1
Addenda to the Undefined Behavior and IFNDR Annexes
Joshua Berne
J. Berne
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
[P3596R3] introduced a pair of new annexes to the C++ Standard containing full catalogues of undefined behavior and ill-formed, no-diagnostic required constructs. That paper was current and complete when it was approved to be merged into the draft Standard in Brno, but it was also instantly out of date due to other papers that landed concurrently at the same meeting. In addition, new eyes on the c
› 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.
› P4302R3
Any Delegate May Object to a Poll on an Unmailed Revision
Vinnie Falco
V. Falco
,
Mungo Gill
M. Gill
2026-10-22
2026-10
Intent
Ask
Doc Date
2026-10-22
Abstract
WG21 sometimes records polls on paper revisions that did not appear in a pre-meeting mailing. When an in-meeting revision changes the design, recording the poll can shift the burden of achieving consensus from the author to the stakeholders before national body experts have seen the change. This paper proposes that, before such a poll is recorded, the chair ask whether anyone objects. An objection
› P4307R1
An Infix Operator and a Keyword Escape for C++
Steve Downey
S. Downey
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
C++ reserves non-strict evaluation to a fixed set of built-ins: ‘&&‘, ‘||‘ and ‘?:‘. The comma operator is the near neighbor, and is not one of them: it evaluates both of its operands, and what it fixes is the **sequencing**. Overloading does not get non-strict evaluation back: an overloaded ‘operator&&‘ evaluates both operands, which is the trap everyone has been bitten by, and the reason the sta
› 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.
› P4345R1
Extending C++ with Unicode Mathematical Operators
Steve Downey
S. Downey
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
I propose adding the ability to declare user defined operators, such as operator⊞, allowing users to write `a` `⊞` `b`. The list of allowed operators is drawn from the mathematical operators described in Unicode Technical Report #25, *Unicode* *Support* *for* *Mathematics* (Beeton, Freytag, and Sargent III 2017), with confusables removed. [The operators are otherwise normal functions, found by ord
› 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
› P4355R1
Floating-point std::saturating_cast
Jan Schultke
J. Schultke
,
Matt Borland
M. Borland
2026-10-08
2026-10
Doc Date
2026-10-08
Abstract
`std::saturating_cast` should accept floating-point operands.
› P4374R1
Non-Intrusive Interfaces for C++
Theo Payne
T. Payne
2026-10-22
2026-10
Doc Date
2026-10-22
Abstract
This paper proposes a library facility that makes non-intrusive polymorphism, today built on hand-written vtables, nearly as easy to write as virtual functions.
› P4380R1
Token Sequence Injection
Barry Revzin
B. Revzin
,
Daveed Vandevoorde
D. Vandevoorde
,
Andrei Alexandrescu
A. Alexandrescu
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This is a follow-up to [[P3294R2] (Code Injection with Token Sequences)](https://wg21.link/p3294r2). In that paper, we argued that the right model for code generation in C++ is through token sequences by comparing to other potential models. In short, we believe that code generation in C++ must be C++-shaped, must be able to generate all of C++, and must allow for the full use of C++ in that genera
› P4382R0
Decomposing floating-point numbers
Jan Schultke
J. Schultke
,
Matt Borland
M. Borland
2026-10-10
2026-10
Doc Date
2026-10-10
Abstract
There should be a standard-library function for decomposing floating-point numbers into a sign bit, exponent, and integer significand.
› P4386R0
Slides for SG16 - P4345R0
Steve Downey
S. Downey
2026-09-23
2026-10
› P4387R0
Slides for SG16 - P4345R0
Steve Downey
S. Downey
2026-09-23
2026-10
› P4388R0
Ship C++26
Joshua Berne
J. Berne
2026-09-29
2026-10
Doc Date
2026-09-29
Abstract
WG21 expended great energy producing a high-quality Draft International Standard (DIS) for approval by national bodies to be published as C++26. No new technical concerns with that draft have been raised, hence we propose submitting that draft for publication and allowing the community to reliably benefit from the results of everything the committee has worked hard to produce.
› 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.
› P4392R0
C++ Tourniquet - Stricter Contracts
Jarrad J. Waterloo
J. Waterloo
2026-10-14
2026-10
Doc Date
2026-10-14
Abstract
The, mostly likely, biggest impediment to any safety proposal that impacts the language is its being backwards compatible with existing code. However, for new code blocks that should not be an impediment. Consequently, new language features can and should be made as safe as possible. It would be beneficial to the C++ community if the standard put a moratorium on adding new language features where
› P4393R0
Native handles and standard streams
Jesús Martínez
J. Martínez
2026-10-15
2026-10
Doc Date
2026-10-15
Abstract
Obtaining the native handle associated with an object, which the operating system uses internally, is a very useful tool for interacting with parts of the system’s own API, especially those that would be difficult to standardize as part of the C++ standard library. Recently, in order to expose the native handle associated with files, the inclusion of paper P1759R6 in the standard was approved for
› 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.
› P4395R0
Reflecting Function Bodies: Expression and Statement Introspection
Siqi Yuan
S. Yuan
,
Alex Yesmanchyk
A. Yesmanchyk
,
Polina Vyshnevska
P. Vyshnevska
,
Lucas Rey
L. Rey
,
Thomas Prideaux-Ghee
T. Prideaux-Ghee
,
Philip Craig
P. Craig
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
There are existing automatic differentiation tools today, but in C++ they live only outside the language, and where AD has been built into a language (Swift), it is implemented as a compiler transformation rather than as a library:
› 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.
› P4398R0
views::trim and views::trim_while
Anish Aggarwal
A. Aggarwal
2026-10-19
2026-10
Doc Date
2026-10-19
Abstract
Removing padding from both ends of a sequence is common: whitespace around a token, zero samples around a signal, sentinel values around a payload, empty slots around the live part of a buffer. C++ has `views``::``drop_while` for the front, but nothing for both ends.
› P4401R0
UB and profile-defined behavior
Herb Sutter
H. Sutter
2026-10-19
2026-10
Doc Date
2026-10-19
Abstract
Stroustrup gives the canonical example of how profiles might define signed overflow in [[P3984R0](https://wg21.link/p3984r0)] page 3:
› 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:
› P4411R0
Non-Negative Quantity Specifications
Mateusz Pusz
M. Pusz
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
Many quantities can’t be negative. No amount of mass, duration, or volume is below zero, and ISO 80000-3 defines *speed* as the magnitude of *velocity*. [[P3045R10]](https://wg21.link/p3045r10) has no way to express this. This is why every function that relies on it repeats a precondition, and every reviewer has to guess which parameters carry the guarantee.
› P4412R0
Range-Validated Quantity Points
Mateusz Pusz
M. Pusz
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
A *latitude* lies in [−90°,90°][-90°, 90°], a *longitude* wraps around at ±180°±180°, a drone may fly up to 120m120\ \mathrm{m} above the ground, and a clinical thermometer that reports 51°C51\ \mathrm{°C} is broken and its reading must not reach the code that doses a drug.
› 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
› P4416R0
Proposed wording for the initialization profile
Michael Wong
M. Wong
,
Bjarne Stroustrup
B. Stroustrup
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This paper supplies proposed working-draft wording for the initialization profile described in the design paper "An initialization profile", P4222R3 [BS'26b]. The design paper states what the profile guarantees and why; this paper states the rules in the form the working draft needs, so that the two can be reviewed together and the wording can be handed to CWG and LWG once the design is approved.
› P4417R0
Proposed wording for the invalidation profile
Michael Wong
M. Wong
,
Bjarne Stroustrup
B. Stroustrup
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This paper supplies proposed working-draft wording for the invalidation profile described in the design paper "An invalidation profile", P4418R0 [BS'26c]. The design paper states what the profile guarantees and why; this paper states the rules in the form the working draft needs, so that the two can be reviewed together and the wording can be handed to CWG and LWG once the design is approved. The
› P4418R0
An invalidation Profile
Bjarne Stroustrup
B. Stroustrup
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
Memory safety has been a popular topic over the last few years. It is a subset of type-and-resource safety which has been my ideal for C++ since its inception and for which the general solution for C++ was outlined in [BS’15, HS’15, BS’21]. This paper describes the enforcement part of the solution that relates to prevention of dangling pointers and its rationale.
› 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
› P4422R0
Function Summaries for Scaling Code Analysis of C++
Gabriel Dos Reis
G. Reis
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
Profiles [P3589R3] are to be enforced by local static analysis [P3274R0]: one translation unit at a time, and within it one function at a time. At a call to a function defined elsewhere, such an analysis has only the callee's declaration. The declaration says little about what the callee writes, and nothing about what it retains, releases or invalidates. The analysis gives the same verdict for eve
› P4423R0
Strict contracts: conveyor functions and conveyor predicates
Ville Voutilainen
V. Voutilainen
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This paper presents the design and an implementation of strict contracts: contract predicates that are guaranteed by the compiler to be free of side effects and of undefined behavior. It builds on the conveyor functions of [P2680](https://wg21.link/p2680) and [P3285](https://wg21.link/p3285), and expresses strictness through the control objects of [P4324](https://wg21.link/p4324), of which this pa
› P4424R0
[[indeterminate]] for non-static data members
Barry Revzin
B. Revzin
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
[[P2795R5] (Erroneous behaviour for uninitialized reads)](https://wg21.link/p2795r5) was adopted for C++26 and implemented in gcc 16. In practice, it ensures that automatic storage duration variables are initialized unless they are marked `[[indeterminate]]` — both [gcc](https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-ftrivial-auto-var-init) and [clang](https://clang.llvm.org/docs/C
› P4425R0
Symbolic contracts
Ville Voutilainen
V. Voutilainen
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This paper describes the design and an implementation exploration for *symbolic contracts*: contract assertions whose predicate has, by default, no run-time representation at all, and whose truth is instead established and consumed purely by the compiler's own static reasoning about the program. We explain what a symbolic function is, the escape hatch for predicates that are known to be unprovable
› P4426R0
Contracts for (member) function pointers
Ville Voutilainen
V. Voutilainen
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This paper supplies a design and implementation exploration for contracts on function pointers and member function pointers.
› P4427R0
Configurable contracts for virtual functions
Ville Voutilainen
V. Voutilainen
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
This paper supplies a design and implementation exploration for configurable contracts on virtual functions.
› P4428R0
Contract concerns and where they are addressed
Ville Voutilainen
V. Voutilainen
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
Several concerns have been raised about the C++26 contracts facility, [P2900](https://wg21.link/p2900), most compactly in [P3173R0](https://wg21.link/p3173r0), "P2900R6 May Be Minimal, but It Is Not Viable": that it doesn't prioritize safety, that the evaluation of a contract assertion can have undefined behavior, that it doesn't support virtual functions and function pointers, and that it isn't a
› P4430R0
The Importance of the Third Team
David Sankel
D. Sankel
2026-10-23
2026-10
Doc Date
2026-10-23
Abstract
and the drawbacks of their opponents’, decision-makers have a hard time forming a coherent picture from those arguments. Creating models, usually in the form of pre sentations or tables that neutrally present tradeoffs, is a powerful third-team play.
› P4433R0
Do not remove Contracts from C++26
Timur Doumler
T. Doumler
,
Joshua Berne
J. Berne
,
Gašper Ažman
G. Ažman
,
Peter Bindels
P. Bindels
,
Peter Dimov
P. Dimov
,
Eric Fiselier
E. Fiselier
,
Fabio Fracassi
F. Fracassi
,
Pablo Halpern
P. Halpern
,
Tom Honermann
T. Honermann
,
John Lakos
J. Lakos
,
Nevin Liber
N. Liber
,
Lisa Lippincott
L. Lippincott
,
René Ferdinand Rivera Morell
R. Morell
,
Oliver Rosten
O. Rosten
,
Jan Schultke
J. Schultke
,
Hui Xie
H. Xie
2026-10-23
2026-10
Doc Date
2026-10-23
Author(s)
Timur Doumler , Joshua Berne , Gašper Ažman , Peter Bindels , Peter Dimov , Eric Fiselier , Fabio Fracassi , Pablo Halpern , Tom Honermann , John Lakos , Nevin Liber , Lisa Lippincott , René Ferdinand Rivera Morell , Oliver Rosten , Jan Schultke , Hui Xie
Abstract
In addition, the description of C++26 contract assertions given in [[P4334R0](http://wg21.link/p4334r0)] contains a number of inaccuracies. It misrepresents the specification itself,3 the amount of wording it consists of,4 its design intent,5 how it relates to hardening6 and static analysis,7 its existing implementations,8 existing practice,9 teachability,10 and proposed extensions.11 None of the
› P4444R1
std::big_int
Jan Schultke
J. Schultke
,
Matt Borland
M. Borland
,
Christopher Kormanyos
C. Kormanyos
2026-10-10
2026-10
Doc Date
2026-10-10
Abstract
We propose an infinite-precision integer in the form of a class template, with elastic operations.