WG21 PAPERS

Mailings Beta

Volunteer-driven · Not affiliated with WG21 or ISO

Filter and export papers from the C++ Committee’s monthly mailings by time frame and audience using the options below, or refine your export further with the Select button. Links point directly to the official WG21 papers on open-std.org.

Audience
General
Wording
Evolution
Study Groups
Mailings
1 · Year 1 · Month

Select the arrow to the right of the year to filter for specific months.

2026 Oct · 1 of 8

Pick months in 2026

2025 143 papers

Pick months in 2025

Add Year +

Select Years To Display

Current Years Selected

2026 2025
Filters Clear all
86 out of 86 papers selected for export
SelectPaper Title Authors Audience Doc Date Mailing Date
N5061 2026-11 Pre-Buzios WG21 admin telecon Guy Davidson G. Davidson 2026-10-01 2026-10
Doc Date 2026-10-01
Mailing Date 2026-10 Pre-Búzios
Author(s) Guy Davidson
Target Audience WG21
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
Doc Date 2026-10-13
Mailing Date 2026-10 Pre-Búzios
Target Audience CWGLWG
Revisions R3R2
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience LEWGLWG
Revisions R21R20R19R18
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Matthias Kretz
Target Audience EWG
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience EWG
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience EWGCWG
Revisions R9R8R7R6
Tracking issue View on GitHub
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
Doc Date 2026-10-13
Mailing Date 2026-10 Pre-Búzios
Target Audience LEWGSG1
Tracking issue View on GitHub
P2728R16 Unicode in the Library, Part 1: UTF Transcoding Eddie Nolan E. Nolan 2026-10-23 2026-10
Doc Date 2026-10-23
Mailing Date 2026-10 Pre-Búzios
Author(s) Eddie Nolan
Target Audience LEWG
Revisions R15R14R13R12R11
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience CWG
Revisions R3
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Corentin Jabot
Target Audience EWG
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience EWG
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience LEWG
Revisions R9R8R7R6
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience EWGLEWG
Revisions R8R7R6R3
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Joshua Berne
Target Audience EWG
Revisions R4R3
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience EWGSG16
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Daniel Towner
Target Audience LWG
Revisions R3R2R1
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience EWG
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Jan Schultke
Target Audience CWG
Revisions R2
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Jan Schultke
Target Audience LEWG
Revisions R4R3
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience LEWGLWG
Revisions R5R4R2
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Jan Schultke
Target Audience LEWGCWG
Revisions R4R3
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Bjarne Stroustrup
Target Audience EWGLEWGSG20SG23
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Thomas Mejstrik
Target Audience SG17
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience EWGSG7
Revisions R3R2
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience EWG
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Hana Dusíková
Target Audience LEWG
Revisions R3R2R1
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Corentin Jabot
Target Audience SG16
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Jan Schultke
Target Audience LEWG
Revisions R2R1
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Jan Schultke
Target Audience SG6
Revisions R1
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Ruslan Arutyunyan
Target Audience EWGCWG
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Jan Schultke
Target Audience LEWG
Revisions R2R1R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Mateusz Pusz
Target Audience SG6
Revisions R1R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience WG21
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Mateusz Pusz
Target Audience LEWG
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Bjarne Stroustrup
Target Audience EWGSG20SG23
Revisions R2R1R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Ian Petersen
Target Audience LEWGSG1SG14
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Matthias Wippich
Target Audience EWGSG16SG22
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Steve Downey
Target Audience SG9SG16SG18
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Victor Zverovich
Target Audience LEWGSG16
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Steve Downey
Target Audience LEWG
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
Doc Date 2026-10-23
Mailing Date 2026-10 Pre-Búzios
Author(s) Joshua Berne
Target Audience EWG
Revisions R0
Tracking issue View on GitHub
P4280R0 Expected over References Steve Downey S. Downey 2026-10-23 2026-10
Doc Date 2026-10-23
Mailing Date 2026-10 Pre-Búzios
Author(s) Steve Downey
Target Audience LEWG
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Robert Leahy
Target Audience LEWGSG1
Revisions R1R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Joshua Berne
Target Audience CWG
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Detlef Vollmann
Target Audience LEWGSG1
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience WG21
Revisions R2R1R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Steve Downey
Target Audience EWG
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience LEWGLWG
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Steve Downey
Target Audience EWGSG16
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Steve Downey
Target Audience LEWGLWG
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience SG6
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Theo Payne
Target Audience SG18
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience EWG
Revisions R0
Tracking issue View on GitHub
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
Mailing Date 2026-10 Pre-Búzios
Target Audience SG6
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
Doc Date 2026-09-23
Mailing Date 2026-10 Pre-Búzios
Author(s) Steve Downey
Target Audience SG16
P4387R0 Slides for SG16 - P4345R0 Steve Downey S. Downey 2026-09-23 2026-10
Doc Date 2026-09-23
Mailing Date 2026-10 Pre-Búzios
Author(s) Steve Downey
Target Audience SG16
P4388R0 Ship C++26 Joshua Berne J. Berne 2026-09-29 2026-10
Doc Date 2026-09-29
Mailing Date 2026-10 Pre-Búzios
Author(s) Joshua Berne
Target Audience WG21
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Robert Leahy
Target Audience LEWGSG1
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Jarrad J. Waterloo
Target Audience CWGSG23
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Jesús Martínez
Target Audience SG18
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Robert Leahy
Target Audience LEWGSG1
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
Mailing Date 2026-10 Pre-Búzios
Target Audience SG7
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
Mailing Date 2026-10 Pre-Búzios
Target Audience LEWG
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Anish Aggarwal
Target Audience SG9SG18
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Herb Sutter
Target Audience SG23
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Inbal Levi
Target Audience LEWG
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Inbal Levi
Target Audience LEWG
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Mateusz Pusz
Target Audience LEWGSG6
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Mateusz Pusz
Target Audience SG6
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Mateusz Pusz
Target Audience SG6
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Ville Voutilainen
Target Audience EWGLEWG
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
Mailing Date 2026-10 Pre-Búzios
Target Audience EWGLEWGSG23
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
Mailing Date 2026-10 Pre-Búzios
Target Audience CWGLWGSG23
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
Mailing Date 2026-10 Pre-Búzios
Target Audience CWGLWGSG23
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Bjarne Stroustrup
Target Audience EWGSG20SG23
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
Mailing Date 2026-10 Pre-Búzios
Target Audience LEWG
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Gabriel Dos Reis
Target Audience EWGSG15SG23
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Ville Voutilainen
Target Audience EWG
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Barry Revzin
Target Audience EWG
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Ville Voutilainen
Target Audience EWG
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Ville Voutilainen
Target Audience EWG
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Ville Voutilainen
Target Audience EWG
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
Mailing Date 2026-10 Pre-Búzios
Author(s) Ville Voutilainen
Target Audience EWG
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
Mailing Date 2026-10 Pre-Búzios
Author(s) David Sankel
Target Audience WG21
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
Mailing Date 2026-10 Pre-Búzios
Target Audience EWG
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
Mailing Date 2026-10 Pre-Búzios
Target Audience SG6
Revisions R0
Tracking issue View on GitHub
Abstract We propose an infinite-precision integer in the form of a class template, with elastic operations.
Showing 86 of 86 papers · source: open-std.org