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.

Disposition Updated

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 656 papers

Pick months in 2026

2025 Jul · 1 of 1

Pick months in 2025

Add Year +

Select Years To Display

Current Years Selected

2026 2025
Filters Clear all
127 out of 127 papers selected for export
SelectPaper Title Authors Audience Doc Date Mailing Date
N5012 WG21 2025-06 Sofia Admin telecon minutes Nina Ranns N. Ranns 2025-06-09 2025-07
Doc Date 2025-06-09
Mailing Date 2025-07 Post-Sofia
Author(s) Nina Ranns
Target Audience WG21
N5016 WG21 June 2025 Sofia Hybrid meeting Minutes of Meeting Nina Ranns N. Ranns 2025-07-08 2025-07
Doc Date 2025-07-08
Mailing Date 2025-07 Post-Sofia
Author(s) Nina Ranns
Target Audience WG21
P0085R3 Oo... adding a coherent character sequence to begin octal-literals Axel Naumann A. Naumann , Jolly Chen J. Chen , Michael Jonker M. Jonker 2025-07-01 2025-07
Doc Date 2025-07-01
Mailing Date 2025-07 Post-Sofia
Target Audience CWG
Revisions R2
Tracking issue View on GitHub
P0260R19 C++ Concurrent Queues Detlef Vollmann D. Vollmann , Lawrence Crowl L. Crowl , Chris Mysen C. Mysen , Gor Nishanov G. Nishanov 2025-06-18 2025-07
Doc Date 2025-06-18
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Revisions R21R20R18
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.
P0870R7 A proposal for a type trait to detect narrowing conversions Giuseppe D'Angelo G. D'Angelo 2025-06-17 2025-07
Doc Date 2025-06-17
Mailing Date 2025-07 Post-Sofia
Author(s) Giuseppe D'Angelo
Target Audience LEWGLWGSG6
Revisions R8R6
Tracking issue View on GitHub
P0876R21 fiber_context - fibers without scheduler Oliver Kowalke O. Kowalke , Nat Goodspeed N. Goodspeed 2025-07-13 2025-07
Doc Date 2025-07-13
Mailing Date 2025-07 Post-Sofia
Target Audience CWGLWG
Revisions R24R23R22
Tracking issue View on GitHub
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).
P1040R8 std::embed and #depend JeanHeyd Meneide J. Meneide 2025-06-23 2025-07
Doc Date 2025-06-23
Mailing Date 2025-07 Post-Sofia
Author(s) JeanHeyd Meneide
Target Audience EWG
Revisions R11R10R9
Tracking issue View on GitHub
Abstract A proposal for a function that allows pulling resources at compile-time into a program, and a preprocessor directive to make finding those resources feasible for compilers and build systems.
P1306R5 Expansion statements Dan Katz D. Katz , Barry Revzin B. Revzin , Andrew Sutton A. Sutton , Sam Goodrick S. Goodrick , Daveed Vandevoorde D. Vandevoorde 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Target Audience WG21
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract This paper proposes a new kind of statement that enables the compile-time repetition of a statement for each element of a tuple, array, class, range, or brace-delimited list of expressions. Existing methods for iterating over a heterogeneous container inevitably leverage recursively instantiated templates to allow some part of the repeated statement to vary (e.g., by type or constant) in each inst
P2079R10 Parallel Scheduler Lucian Radu Teodorescu L. Teodorescu , Ruslan Arutyunyan R. Arutyunyan , Lee Howes L. Howes , Michael Voss M. Voss 2025-06-25 2025-07
Doc Date 2025-06-25
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Revisions R9
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract A standard execution context based on the facilities in [P2300R10] that implements parallel-forward-progress to maximize portability. A set of parallel schedulers have an underlying shared thread pool implementation, and may provide an interface to an OS-provided system thread pool.
P2319R5 Prevent path presentation problems Victor Zverovich V. Zverovich 2025-06-17 2025-07
Doc Date 2025-06-17
Mailing Date 2025-07 Post-Sofia
Author(s) Victor Zverovich
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract [P2845] made it possible to format and print `std::filesystem::path` with correct handling of Unicode. Unfortunately, some common path accessors still exhibit broken behavior, which results in mojibake and data loss. This paper proposes deprecating these accessors, making the path API more reliable and eliminating a common source of bugs.
P2414R9 Pointer lifetime-end zap proposed solutions Paul E. McKenney P. McKenney , Maged Michael M. Michael , Jens Maurer J. Maurer , Peter Sewell P. Sewell , Martin Uecker M. Uecker , 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 2025-07-11 2025-07
Doc Date 2025-07-11
Mailing Date 2025-07 Post-Sofia
Target Audience EWGLEWG
Revisions R12R11R8
Tracking issue View on GitHub
Abstract **Introduction** **3** **Terminology** **4** **What We Are Asking For** **5** **Detailed Proposal** **5** Atomic Operations Forgive Pointer Invalidity 5 Volatile Accesses Forgive Pointer Invalidity 6 **Examples** **6** LIFO Push With Nondeterministic Pointer Provenance 7 Use Case 1: Invalid Pointer Use 7 Use Case 2: Zombie Pointer Dereference 7 Fixing LIFO Push Using This Proposal 8 **Wording** **
P2664R11 Proposal to extend std::simd with permutation API Daniel Towner D. Towner , Ruslan Arutyunyan R. Arutyunyan 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract Proposal to extend `std::simd` with features enabling permutation of data within and across SIMD values.
P2781R9 std::constexpr_wrapper Zach Laine Z. Laine , Matthias Kretz M. Kretz , Hana Dusíková H. Dusíková 2025-06-17 2025-07
Doc Date 2025-06-17
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
P2876R3 Proposal to extend std::simd with more constructors and accessors Daniel Towner D. Towner , Matthias Kretz M. Kretz , Ruslan Arutyunyan R. Arutyunyan 2025-06-17 2025-07
Doc Date 2025-06-17
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract Proposal to provide additional constructors and accessors for `std::simd_mask`
P2929R1 simd_invoke Daniel Towner D. Towner , Ruslan Arutyunyan R. Arutyunyan 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Target Audience LEWG
Revisions R4R3R2
Tracking issue View on GitHub
Abstract Proposal to extend `std::simd` with a method of allowing a lambda to be invoked on smaller pieces of a SIMD value in order to make interaction with intrinsics easier.
P2996R13 Reflection for C++26 Barry Revzin B. Revzin , Wyatt Childers W. Childers , Peter Dimov P. Dimov , Andrew Sutton A. Sutton , Faisal Vali F. Vali , Daveed Vandevoorde D. Vandevoorde , Dan Katz D. Katz 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Target Audience CWGLWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract This is a proposal for a reduced initial set of features to support static reflection in C++. Specifically, we are mostly proposing a subset of features suggested in [[P1240R2]](https://wg21.link/p1240r2):
P3008R6 Atomic floating-point min/max Gonzalo Brito Gadeschi G. Gadeschi , David Sankel D. Sankel 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract [P0493R4](https://wg21.link/P0493R4) *Atomic minimum/maximum* proposes the addition of `atomic<T>::fetch_min` and `atomic<T>::fetch_max` operations, which atomically perform `std::min` and `std::max` computations.
P3044R2 sub-string_view from string Michael Florian Hava M. Hava 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract This paper proposes a way to retrieve a sub-`string_view` from a `string` directly.
P3045R6 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 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Target Audience LEWGSG6SG16SG18
Revisions R9R8R7
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 [[
P3060R3 Add std::views::indices(n) Weile Wei W. Wei , Zhihao Yuan Z. Yuan 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Author(s) Weile Wei, Zhihao Yuan
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract We propose adding `std::views::indices(n)` to the C++ Standard Library as a range adaptor that generates a sequence of integers from `0` to `n-1`.
P3091R4 Better lookups for `map` , `unordered_map`, and `flat_map` Pablo Halpern P. Halpern 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Author(s) Pablo Halpern
Target Audience LEWGLWG
Revisions R6
Tracking issue View on GitHub
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 re
P3096R12 Function Parameter Reflection in Reflection for C++26 Adam Lach A. Lach , Walter Genovese W. Genovese 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Target Audience CWGLWG
Revisions R11R10
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract Based on a few demonstrative applications, we claim that parameter reflection is an important feature that should be included in the initial specification for Reflection in C++26.
P3100R3 Implicit contract assertions Timur Doumler T. Doumler , Joshua Berne J. Berne 2025-07-03 2025-07
Doc Date 2025-07-03
Mailing Date 2025-07 Post-Sofia
Target Audience EWG
Revisions R8R7R6
Tracking issue View on GitHub
Abstract In this paper, we enumerate all cases of core language undefined behaviour explicitly specified in C++, group them into eleven categories, classify them along a number of relevant criteria, and discuss appropriate mitigation strategies. The conditions under which such undefined behaviour will occur can, in many cases, be identified by a runtime check. We describe how such runtime checks can be sys
P3104R4 Bit permutations Jan Schultke J. Schultke 2025-06-28 2025-07
Doc Date 2025-06-28
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience LWGSG6
Revisions R6R5
Tracking issue View on GitHub
Abstract Add bit permutation functions to the bit manipulation library.
P3111R8 Atomic Reduction Operations Gonzalo Brito Gadeschi G. Gadeschi , Simon Cooksey S. Cooksey , Daniel Lustig D. Lustig 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Revisions R7
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract Concurrent algorithms performing atomic RMW operations that discard the old fetched value are very common in high-performance computing, e.g., finite-element matrix assembly, data analytics (e.g. building histograms), etc.
P3149R11 async_scope -- Creating scopes for non-sequential concurrency Ian Petersen I. Petersen , Jessica Wong; Dietmar Kühl; Ján Ondrušek; Kirk Shoop; Lee Howes; Lucian Radu Teodorescu; Ruslan Arutyunyan; J. Arutyunyan; 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract [P2300R10] lays the groundwork for writing structured concurrent programs in C++ but it leaves three important scenarios under- or unaddressed:
P3179R9 C++ parallel range algorithms Ruslan Arutyunyan R. Arutyunyan , Alexey Kukanov A. Kukanov , Bryce Adelstein Lelbach B. Lelbach 2025-05-29 2025-07
Doc Date 2025-05-29
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract This paper proposes adding parallel algorithms that work together with the C++ Ranges library.
P3211R1 views::flat_map Hewill Kang H. Kang 2025-07-04 2025-07
Doc Date 2025-07-04
Mailing Date 2025-07 Post-Sofia
Author(s) Hewill Kang
Target Audience LEWGLWGSG9
Revisions R3R2
Tracking issue View on GitHub
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.
P3216R1 views::slice Hewill Kang H. Kang 2025-06-29 2025-07
Doc Date 2025-06-29
Mailing Date 2025-07 Post-Sofia
Author(s) Hewill Kang
Target Audience LEWGLWGSG9
Revisions R4R3
Tracking issue View on GitHub
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.
P3220R1 views::take_before Hewill Kang H. Kang 2025-06-23 2025-07
Doc Date 2025-06-23
Mailing Date 2025-07 Post-Sofia
Author(s) Hewill Kang
Target Audience DGLEWGLWGSG9
Revisions R3
Tracking issue View on GitHub
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.
P3223R2 Making std::istream::ignore less surprising Jonathan Wakely J. Wakely 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Author(s) Jonathan Wakely
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract `std::istream::ignore(n, delim)` has surprising behaviour if `delim` is a `char` with a negative value. We can remove the surprise and make code more robust.
P3248R4 Require [u]intptr_t Gonzalo Brito Gadeschi G. Gadeschi 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Revisions R5
Tracking issue View on GitHub
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.
P3290R3 Integrating Existing Assertions With Contracts Joshua Berne J. Berne , Timur Doumler T. Doumler , John Lakos J. Lakos 2025-07-11 2025-07
Doc Date 2025-07-11
Mailing Date 2025-07 Post-Sofia
Target Audience LEWGSG22
Revisions R6R5R4
Tracking issue View on GitHub
Abstract WG21 has adopted a contract checking facility as specified in [P2900R14]. C++ now includes three forms of contract assertion: `pre`, `post`, and `contract_assert`. Taken as a unit, these three standard names allow users to express, in a consistent syntax, individual, independent contract checks in their software without changing the meaning (i.e., essential behavior) of that software. Pre-existing
P3293R3 Splicing a base class subobject Barry Revzin B. Revzin , Peter Dimov P. Dimov , Dan Katz D. Katz , Daveed Vandevoorde D. Vandevoorde 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Target Audience CWGLWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract There are many contexts in which it is useful to perform the same operation on each subobject of an object in sequence. These include serialization or [formatting](https://www.boost.org/doc/libs/1_85_0/libs/describe/doc/html/describe.html#example_print_function) or [hashing](https://www.boost.org/doc/libs/1_85_0/libs/describe/doc/html/describe.html#example_hash_value).
P3347R3 Invalid/Prospective Pointer Operations Paul E. McKenney P. McKenney , Maged Michael M. Michael , Jens Maurer J. Maurer , Peter Sewell P. Sewell , Martin Uecker M. Uecker , 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 2025-07-11 2025-07
Doc Date 2025-07-11
Mailing Date 2025-07 Post-Sofia
Target Audience CWG
Revisions R6
Tracking issue View on GitHub
Abstract **Background** **2** **What We Are Asking For** **2** **Detailed Proposal** **3** **Example: LIFO Push With Direct Pointer Access** **4** Use Case 1: Invalid Pointer Use 4 Use Case 2: Zombie Pointer Dereference 5 Fixing LIFO Push Using This Proposal 5 **Wording** **6** **History** **7** **Appendix: Relationship to WG14 N2676** **10** **Appendix: Relation to WG21 P2434R2** **10**
P3348R4 C++26 should refer to C23 not C17 Jonathan Wakely J. Wakely 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Author(s) Jonathan Wakely
Target Audience LWGSG6
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract There is a new version of the ISO C standard, so we should update our normative reference, and update the header synopses in the library clauses to match the content of the C standard library. A similar change to rebase C++17 on C11 was previously done via [P0063R3: C++17 should refer to C11 instead of C99](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0063r3.html) (see R0 for more det
P3383R3 mdspan.at() Stephan Lachnit S. Lachnit , Xavier Bonaventura X. Bonaventura 2025-06-17 2025-07
Doc Date 2025-06-17
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract This paper proposes element access with bounds checking to `std::mdspan` via `at()` member functions.
P3394R4 Annotations for Reflection Daveed Vandevoorde D. Vandevoorde , Wyatt Childers W. Childers , Dan Katz D. Katz , Barry Revzin B. Revzin 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Target Audience WG21
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract Ever since writing [[P1240R0] (Scalable Reflection in C++)](https://wg21.link/p1240r0), but more so since [[P2996R0] (Reflection for C++26)](https://wg21.link/p2996r0), we have been requested to add a capability to annotate declarations in a way that reflection can observe. For example, Jeremy Ong presented compelling arguments in a post to the [SG7 reflector](https://lists.isocpp.org/sg7/2023/10/
P3411R3 `any_view` Hui Xie H. Xie , S. Levent Yilmaz S. Yilmaz , Louis Dionne L. Dionne , Patrick Roberts P. Roberts 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Target Audience LEWGSG9
Revisions R6R5
Tracking issue View on GitHub
Abstract This paper proposes a new type-erased view: `std::ranges::any_view`. That type-erased view allows customizing the traversal category of the view, its value type and a few other properties. For example:
P3433R1 Allocator Support for Operation States Dietmar Kuehl D. Kuehl 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Author(s) Dietmar Kuehl
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract Senders like `std``::``execution``::``just`, `std``::``execution``::``then`, and `std``::``execution``::``let_value` take some arguments which can be chosen fairly freely. Some of these arguments may be allocator-aware to offer control over their respective allocation needs. Carefully using allocators can allow, e.g., using standard container types without using global `operator` `new``()`/`operat
P3439R3 Chained comparisons: Safe, correct, efficient Herb Sutter H. Sutter 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Author(s) Herb Sutter
Target Audience EWG
Tracking issue View on GitHub
Abstract This paper proposes that we adopt Barry Revzin’s [[P0893R1](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0893r1.html)] (based on my [[P0515R0](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0515r0.pdf)] section 3.3) with refined proposed rules that may address previous concerns, but for now only make the problematic chains deprecated or ill-formed to allow for a transition
P3440R1 Add n_elements named constructor to std::simd Daniel Towner D. Towner 2025-06-13 2025-07
Doc Date 2025-06-13
Mailing Date 2025-07 Post-Sofia
Author(s) Daniel Towner
Target Audience LEWG
Revisions R3R2
Tracking issue View on GitHub
Abstract Proposal to add `std::simd_mask::n_elements` named constructor to create a mask containing an exact number of set bits. Such a function is notably useful for handling loop remainders.
P3480R6 std::simd is a range Matthias Kretz M. Kretz 2025-06-18 2025-07
Doc Date 2025-06-18
Mailing Date 2025-07 Post-Sofia
Author(s) Matthias Kretz
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract P1928 “std::simd — merge data-parallel types from the Parallelism TS 2” promised a paper on making simd a range. This paper explores the addition of iterators to basic_simd and basic_simd_mask.
P3481R5 std::execution::bulk() issues Lucian Radu Teodorescu L. Teodorescu , Ruslan Arutyunyan R. Arutyunyan , Lewis Baker L. Baker , Mark Hoemmen M. Hoemmen 2025-06-18 2025-07
Doc Date 2025-06-18
Mailing Date 2025-07 Post-Sofia
Target Audience LEWGLWGSG1
Revisions R4
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract This paper explores the issues with `std::execution::bulk` algorithm and proposes a way to address them, making the API better for the users.
P3491R3 define_static_{string,object,array} Barry Revzin B. Revzin , Wyatt Childers W. Childers , Peter Dimov P. Dimov , Daveed Vandevoorde D. Vandevoorde 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Target Audience CWGLWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract These functions were originally proposed as part of [[P2996R7] (Reflection for C++26)](https://wg21.link/p2996r7), but are being split off into their own paper.
P3503R3 Make type-erased allocator use in promise and packaged_task consistent Nicolas Morales N. Morales , Jonathan Wakely J. Wakely 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract [[LWG2095](https://wg21.link/lwg2095)] points out inconsistencies in the API of `std::promise`; namely that `uses_allocator<promise<R>, A>::value` is specified to be true in 32.10.6 [[futures.promise]](https://wg21.link/futures.promise), yet is missing the appropriate constructor taking an rvalue of promise.
P3540R2 #embed Parameter offset JeanHeyd Meneide J. Meneide 2025-06-05 2025-07
Doc Date 2025-06-05
Mailing Date 2025-07 Post-Sofia
Author(s) JeanHeyd Meneide
Target Audience CWG
Revisions R3
Tracking issue View on GitHub
Abstract An additional, user-supported embed parameter implemented in Clang and GCC for providing an offset.
P3552R3 Add a Coroutine Task Type Dietmar Kühl D. Kühl , Maikel Nadolski M. Nadolski 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Target Audience WG21
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract C++20 added support for coroutines that can improve the experience writing asynchronous code. C++26 added the sender/receiver model for a general interface to asynchronous operations. The expectation is that users would use the framework using some coroutine type. To support that, a suitable class needs to be defined and this proposal is providing such a definition.
P3557R3 High-Quality Sender Diagnostics with Constexpr Exceptions Eric Niebler E. Niebler 2025-07-04 2025-07
Doc Date 2025-07-04
Mailing Date 2025-07 Post-Sofia
Author(s) Eric Niebler
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract The hardest part of writing a sender algorithm is often the computation of its completion signatures, an intricate meta-programming task. Using sender algorithms incorrectly leads to large, incomprehensible errors deep within the completion-signatures meta-program. What is needed is a way to propagate type errors automatically to the API boundary where they can be reported concisely, much the way
P3560R2 Error Handling in Reflection Barry Revzin B. Revzin , Peter Dimov P. Dimov 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract In [[P2996R12] (Reflection for C++26)](https://wg21.link/p2996r12), we had to answer the question of what the error handling mechanism should be. We considered four options:
P3566R2 You shall not pass `char*` - Safety concerns working with unbounded null-terminated strings Marco Foco M. Foco , Joshua Kriegshauser J. Kriegshauser , Alexey Shevlyakov A. Shevlyakov , Giuseppe D'Angelo G. D'Angelo 2025-06-16 2025-07
Doc Date 2025-06-16
Mailing Date 2025-07 Post-Sofia
Target Audience LEWGSG18SG23
Tracking issue View on GitHub
Abstract `string`s and `string_view`s are often used as a safer alternative to null-terminated strings. Unfortunately they suffer from an implicit assumption at creation/assignment time, and in some of their functions: the presence of a null-terminator in the input sequence. The absence of the null-terminator can currently lead to undefined behavior inside these functions. There are many cases when the len
P3570R2 optional variants in sender/receiver Fabio Fracassi F. Fracassi 2025-06-18 2025-07
Doc Date 2025-06-18
Mailing Date 2025-07 Post-Sofia
Author(s) Fabio Fracassi
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract Some async interfaces for concurrent queues would be well served by using `std::optional` when used in a coroutine context. However when using sender/receiver interfaces directly the variant style visitor based on overloading has several benefits. This paper explores if and how we can get the best interface for each use case.
P3601R0 Slides for P3407R1 Brian Bi B. Bi 2025-06-17 2025-07
Doc Date 2025-06-17
Mailing Date 2025-07 Post-Sofia
Author(s) Brian Bi
Target Audience EWG
Tracking issue View on GitHub
P3642R2 Carry-less product: std::clmul Jan Schultke J. Schultke 2025-07-02 2025-07
Doc Date 2025-07-02
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience LEWG
Revisions R7R6R5R4R1
Tracking issue View on GitHub
Abstract Add widening and non-widening carry-less multiplication functions.
P3647R0 Slides for P3642R1 Jan Schultke J. Schultke 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience SG6SG18
Revisions R1
Tracking issue View on GitHub
Abstract **Intuition**: "carry-less" means we use XOR instead of plus.
P3655R2 zstring_view Peter Bindels P. Bindels , Hana Dusikova H. Dusikova , Jeremy Rifkin J. Rifkin , Marco Foco M. Foco , Alexey Shevlyakov A. Shevlyakov 2025-06-15 2025-07
Doc Date 2025-06-15
Mailing Date 2025-07 Post-Sofia
Target Audience LEWG
Revisions R5R4
Tracking issue View on GitHub
Abstract We propose a standard string view type that guarantees null-termination.
P3663R2 Future-proof `submdspan-mapping` Mark Hoemmen M. Hoemmen 2025-07-13 2025-07
Doc Date 2025-07-13
Mailing Date 2025-07 Post-Sofia
Author(s) Mark Hoemmen
Target Audience LWG
Tracking issue View on GitHub
Abstract Currently, the `submdspan` function can call a `submdspan_mapping` customization with any valid slice type. This means that `submdspan_mapping` customizations may be ill-formed, possibly even without a diagnosic, if future C++ versions expand the set of valid slice types. This will happen if [P2769R3](https://wg21.link/p2769r3) is merged into the Working Draft for C++29, as that would generalize *
P3668R2 Defaulting Postfix Increment and Decrement Operations Matthew Taylor M. Taylor , Alex (Waffl3x) A. (Waffl3x) 2025-07-13 2025-07
Doc Date 2025-07-13
Mailing Date 2025-07 Post-Sofia
Target Audience CWG
Revisions R4R3
Tracking issue View on GitHub
Abstract Postfix increment and decrement operators have a near-universal canonical definition. We propose that this default should be codified into the language by being able to `= default` such operators.
P3669R2 Non-Blocking Support for `std::execution` Detlef Vollmann D. Vollmann 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Author(s) Detlef Vollmann
Target Audience LEWGSG1
Revisions R4
Tracking issue View on GitHub
Abstract `std::execution` as currently specified doesn’t provide support for non-blocking operations. This proposal tries to fix this.
P3687R1 Final Adjustments to C++26 Reflection Dan Katz D. Katz , Wyatt Childers W. Childers , Daveed Vandevoorde D. Vandevoorde , Ville Voutilainen V. Voutilainen 2025-06-18 2025-07
Doc Date 2025-06-18
Mailing Date 2025-07 Post-Sofia
Target Audience EWGLEWGCWGLWG
Tracking issue View on GitHub
Abstract We propose two minor design changes to [[P2996R12](https://wg21.link/p2996r12)] to ensure its readiness for C++26 and future-proof the evolution of the feature.
P3688R1 ASCII character utilities Jan Schultke J. Schultke , Corentin Jabot C. Jabot 2025-06-28 2025-07
Doc Date 2025-06-28
Mailing Date 2025-07 Post-Sofia
Target Audience SG16
Revisions R7R6
Tracking issue View on GitHub
Abstract The utilities in `<cctype>` or `<locale>` are locale-specific, not `constexpr`, and provide no support for Unicode character types. We propose lightweight, locale-independent alternatives.
P3690R1 Consistency fix: Make simd reductions SIMD-generic Olaf Krzikalla O. Krzikalla , Matthias Kretz M. Kretz 2025-06-17 2025-07
Doc Date 2025-06-17
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Tracking issue View on GitHub
Abstract One design goal of the `simd` interface is to enable SIMD-generic code. This is why all arithmetic operators and functions have corresponding overloads. However, arithmetic reductions are still missing overloads for non-`simd`, vectorizable types.
P3691R1 Reconsider naming of the namespace for "std::simd" Matthias Kretz M. Kretz , Abhilash Majumder A. Majumder , Bryce Adelstein Lelbach B. Lelbach , Daniel Towner D. Towner , Ilya Burylov I. Burylov , Mark Hoemmen M. Hoemmen , Ruslan Arutyunyan R. Arutyunyan 2025-06-17 2025-07
Doc Date 2025-06-17
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract There has been negative feedback on the names we chose for `std::datapar::basic_simd` and `std::datapar::basic_simd_mask`. The pushback is against the name of the namespace. This paper does *not reconsider the namespace* itself, it only reconsiders our naming options. Much of the discussion revolves around the question of whether it is acceptable to repeat a namespace name for an entity inside tha
P3692R1 How to Avoid OOTA Without Really Trying Paul E. McKenney P. McKenney , Alan Stern A. Stern , Michael Wong M. Wong , Maged Michael M. Michael 2025-07-10 2025-07
Doc Date 2025-07-10
Mailing Date 2025-07 Post-Sofia
Target Audience SG1
Revisions R4
Tracking issue View on GitHub
Abstract Attempts to create memory models that forbid out-of-thin-air (OOTA) behaviors of C++ `memory_order_relaxed` accesses have been either non-executable, complex, or unloved by implementers. At the same time, we know of no instances of OOTA behavior in real C++ implementations. We focus on shared-memory programs and C++ implementations based on traditional compilers and hardware, including CPUs and GP
P3697R1 Minor additions to C++26 standard library hardening Konstantin Varlamov K. Varlamov , Louis Dionne L. Dionne , Alisdair Meredith A. Meredith 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Target Audience LEWGLWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract This paper is a small follow-up to P3471R4 “Standard Library Hardening” that hardens the preconditions of a few more library functions. All these functions satisfy the same criteria as the ones in the original paper:
P3699R1 Rename `conqueue_errc` Detlef Vollmann D. Vollmann 2025-06-17 2025-07
Doc Date 2025-06-17
Mailing Date 2025-07 Post-Sofia
Author(s) Detlef Vollmann
Target Audience LEWG
Tracking issue View on GitHub
Abstract The proposal for concurrent queues [C++ Concurrent Queues (P0260)](https://wg21.link/P0260) uses an enumeration to specify possible return states of some queue operations. This enumeration is called `conqueue_errc` as it was originally meant for exceptions. However, the concurrent queue proposal doesn’t propose it’s own exception class anymore, so the name is misleading.
P3705R2 A Sentinel for Null-Terminated Strings Eddie Nolan E. Nolan 2025-06-19 2025-07
Doc Date 2025-06-19
Mailing Date 2025-07 Post-Sofia
Author(s) Eddie Nolan
Target Audience LEWGSG9
Revisions R1
Tracking issue View on GitHub
Abstract Consider using `std::views::take` to get the first five characters from a string. If we pass a string literal with five or more characters, it looks okay:
P3709R2 Reconsider parallel ranges::rotate_copy and ranges::reverse_copy Ruslan Arutyunyan R. Arutyunyan , Alexey Kukanov A. Kukanov 2025-06-17 2025-07
Doc Date 2025-06-17
Mailing Date 2025-07 Post-Sofia
Target Audience LEWGSG9
Revisions R1
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract This paper proposes changing the return value type for parallel `ranges::rotate_copy` and `ranges::reverse_copy` in [[P3179R9]](https://isocpp.org/files/papers/P3179R9.html).
P3711R1 Safer StringViewLike Functions for Replacing char* strings Marco Foco M. Foco , Alexey Shevlyakov A. Shevlyakov , Joshua Kriegshauser J. Kriegshauser 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Target Audience LEWGSG23
Tracking issue View on GitHub
Abstract This document introduces a set of string utility functions that we used in NVIDIA Omniverse Foundation Library, and were key components to remove `char*` (or more generally `CharT*`) strings usage from our codebase replacing them with the implementation proposed in P3566. All the usages that will still need to use the old-fashioned `char*`s will be marked accordingly to P3566, using the proposed `
P3713R0 2025-05 Library Evolution Poll Outcomes Inbal Levi I. Levi , Fabio Fracassi F. Fracassi , Andreas Weis A. Weis , Nevin Liber N. Liber , Billy Baker B. Baker , Corentin Jabot C. Jabot 2025-07-15 2025-07
Doc Date 2025-07-15
Mailing Date 2025-07 Post-Sofia
Target Audience WG21
Tracking issue View on GitHub
Abstract In 2025-05, the C++ Library Evolution group conducted a series of electronic decision polls [[P3712R0]](https://wg21.link/P3712r0). This paper provides the results of those polls and summarizes the results.
P3718R0 Fixing Lazy Sender Algorithm Customization, Again Eric Niebler E. Niebler 2025-06-28 2025-07
Doc Date 2025-06-28
Mailing Date 2025-07 Post-Sofia
Author(s) Eric Niebler
Target Audience LEWGLWG
Tracking issue View on GitHub
Abstract 1. Add a non-forwarding `get_domain_override` query with no default implementation. 2. Give meaning to the `get_scheduler` query by requiring that an operation be started on an execution agent associated with the scheduler from the environment of the receiver used to create the operation. 3. Tweak the definitions of *`SCHED-ATTRS`* and *`SCHED-ENV`* to avoid forwaring the `get_domain` query. 4. Si
P3719R0 std::is_vector_bool_reference Yuxuan Chen Y. Chen 2025-05-20 2025-07
Doc Date 2025-05-20
Mailing Date 2025-07 Post-Sofia
Author(s) Yuxuan Chen
Target Audience LEWGSG18
Tracking issue View on GitHub
P3721R0 Slides for P3639R0 Jan Schultke J. Schultke 2025-06-04 2025-07
Doc Date 2025-06-04
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience SG22
Tracking issue View on GitHub
Abstract C23 now has `_BitInt` type for N-bit integers (WG14 [[N2763]](https://open-std%2eorg/JTC1/SC22/WG14/www/docs/n2763%2epdf), [[N2775]](https://open-std%2eorg/JTC1/SC22/WG14/www/docs/n2775%2epdf)):
P3722R0 Slides for P3568R1 Jan Schultke J. Schultke 2025-05-27 2025-07
Doc Date 2025-05-27
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience SG22
Tracking issue View on GitHub
Abstract C2y now supports `break` and `continue` with a label (N3355):
P3724R0 Integer division Jan Schultke J. Schultke 2025-06-06 2025-07
Doc Date 2025-06-06
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience LEWGSG6
Revisions R4R3
Tracking issue View on GitHub
Abstract C++ currently only offers truncating integer division in the form of the `/` operator. I propose standard library functions for computing quotients and remainders with other rounding modes.
P3725R1 Filter View Extensions for Input Ranges Nicolai Josuttis N. Josuttis 2025-06-23 2025-07
Doc Date 2025-06-23
Mailing Date 2025-07 Post-Sofia
Author(s) Nicolai Josuttis
Target Audience LEWGLWGSG9
Revisions R3R2R0
Tracking issue View on GitHub
Abstract Using filter views is both risky and non-intuitive. Let us look at some typical use cases.
P3726R0 Adjustments to Union Lifetime Rules Barry Revzin B. Revzin , Tomasz Kamiński T. Kamiński 2025-07-13 2025-07
Doc Date 2025-07-13
Mailing Date 2025-07 Post-Sofia
Target Audience EWGCWG
Revisions R2
Tracking issue View on GitHub
Abstract [[P3074R7] (trivial `union`s (was `std::uninitialized<T>`))](https://wg21.link/p3074r7) was adopted in Hagenberg. One of the goals of that paper was to make an example like this work:
P3727R0 Update Annex E based on Unicode 15.1 UAX #31 Steve Downey S. Downey 2025-06-11 2025-07
Doc Date 2025-06-11
Mailing Date 2025-07 Post-Sofia
Author(s) Steve Downey
Target Audience CWGSG16
Tracking issue View on GitHub
Abstract Update the non-normative Annex E to reflect Unicode 15.1 in order to close Core Issue [CWG2843].
P3729R0 Aligning span and string_view Michael Florian Hava M. Hava 2025-06-23 2025-07
Doc Date 2025-06-23
Mailing Date 2025-07 Post-Sofia
Target Audience LEWG
Revisions R1
Tracking issue View on GitHub
Abstract This paper proposes extensions to `span` and `string_view`, unifying their syntax for common subsetting and shrinking operations. Additionally it proposes a subset of the aforementioned features for `string` as well in order to enable generic handling of it and `string_view`.
P3730R0 Slides for P3104R3 Jan Schultke J. Schultke 2025-06-04 2025-07
Doc Date 2025-06-04
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience LEWG
Tracking issue View on GitHub
P3731R0 #embed Preprocessor Parameter Order JeanHeyd Meneide J. Meneide 2025-06-05 2025-07
Doc Date 2025-06-05
Mailing Date 2025-07 Post-Sofia
Author(s) JeanHeyd Meneide
Target Audience EWGSG22
Tracking issue View on GitHub
Abstract Preprocessor embed has a fixed behavior no matter which parameter ordering is chosen. This paper attempts to enforce or encourage the ordering of preprocessor parameters to prevent mental mistakes from users.
P3732R0 Numeric Range Algorithms Ruslan Arutyunyan R. Arutyunyan , Mark Hoemmen M. Hoemmen , Alexey Kukanov A. Kukanov , Bryce Adelstein Lelbach B. Lelbach , Abhilash Majumder A. Majumder 2025-06-27 2025-07
Doc Date 2025-06-27
Mailing Date 2025-07 Post-Sofia
Target Audience SG1SG9
Revisions R2
Tracking issue View on GitHub
Abstract We propose `ranges` algorithm overloads (both parallel and non-parallel) for the `<numeric>` header.
P3733R0 More named universal character escapes Jan Schultke J. Schultke 2025-06-28 2025-07
Doc Date 2025-06-28
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience SG16
Tracking issue View on GitHub
Abstract C++23 permits the use of "correction", "control", and "alternate" aliases for character names, but not "figment" or "abbreviation". Following P2736R2, this restriction is no longer necessary because "figment" and "abbreviation" are normatively specified in the Unicode standard.
P3734R0 Not all predicates must be regular Jan Schultke J. Schultke 2025-06-14 2025-07
Doc Date 2025-06-14
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience SG9
Tracking issue View on GitHub
Abstract Some algorithms, such as `std::remove_if` and `std::copy_if` are over-constrained by requiring the predicate to be regular, despite the predicate visiting elements exactly once, making the requirement meaningless. These constraints should be relaxed.
P3735R0 partial_sort_n, nth_element_n Jan Schultke J. Schultke 2025-06-28 2025-07
Doc Date 2025-06-28
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience SG9
Tracking issue View on GitHub
Abstract The `partial_sort`, and `nth_element` algorithms require the user to "manually offset" iterators, which is neither ergonomic nor safe. I propose `_n` variants of these algorithms in the style of `shift_left`.
P3736R0 Slides against P2971R3 - No implication for C++ Jan Schultke J. Schultke 2025-06-27 2025-07
Doc Date 2025-06-27
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience EWG
Tracking issue View on GitHub
P3737R0 std::array is a wrapper for an array! Jan Schultke J. Schultke 2025-06-11 2025-07
Doc Date 2025-06-11
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience LEWG
Revisions R4R3
Tracking issue View on GitHub
Abstract The `std::array` class template is implemented as a simple wrapper type for a "C-style array". However, its specification in the standard is considerably more permissive and should be simplified.
P3738R0 Make std::make_from_tuple SFINAE friendly Yihan Wang Y. Wang 2025-06-10 2025-07
Doc Date 2025-06-10
Mailing Date 2025-07 Post-Sofia
Author(s) Yihan Wang
Target Audience LEWG
Revisions R1
Tracking issue View on GitHub
Abstract This paper introduce constraints for `std``::``make_from_tuple` to make it SFINAE friendly.
P3739R1 Standard Library Hardening - using std::optional Jarrad J Waterloo J. Waterloo 2025-06-10 2025-07
Doc Date 2025-06-10
Mailing Date 2025-07 Post-Sofia
Author(s) Jarrad J Waterloo
Target Audience LWG
Revisions R0
Tracking issue View on GitHub
Abstract Utilize `std::optional<T&>` <sup>[1]</sup> in `inplace_vector` <sup>[2]</sup> in order to harden it against null pointer dereference errors for similar memory safety reasons as `Standard Library Hardening` <sup>[3]</sup> and `Minor additions to C++26 standard library hardening` <sup>[4]</sup>.
P3740R1 Last chance to fix std::nontype Jan Schultke J. Schultke , Bronek Kozicki B. Kozicki 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Target Audience LEWG
Revisions R0
Tracking issue View on GitHub
Abstract P2472R3 introduced overloads for the `std::function_ref` constructor which utilize a helper type `std::nontype`. This helper type may be obsoleted by other active proposals, and its name has become a bad choice now that C++26 no longer replaced the term "non-type template parameter", with "constant template parameter".
P3741R0 views::set_operations Hewill Kang H. Kang 2025-06-22 2025-07
Doc Date 2025-06-22
Mailing Date 2025-07 Post-Sofia
Author(s) Hewill Kang
Target Audience SG9
Revisions R1
Tracking issue View on GitHub
Abstract This paper proposes four range adaptors for set operations rated as Tier 3 in [P2760](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2760r1.html), namely `views::set_difference`, `views::set_intersection`, `views::set_union`, and `views::set_symmetric_difference`, to extend the breadth of Ranges.
P3742R0 C++ Standard Library Ready Issues to be moved in Sofia, Jun. 2025 Jonathan Wakely J. Wakely 2025-06-13 2025-07
Doc Date 2025-06-13
Mailing Date 2025-07 Post-Sofia
Author(s) Jonathan Wakely
Target Audience WG21
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract - Ready Issues - 4198. `schedule_from` isn't starting the schedule sender if decay-copying results throws - 4202. *`enable-sender`* should be a variable template - 4203. Constraints on *`get-state`* functions are incorrect - 4204. specification of `*as-sndr2*(Sig)` in [exec.let] is incomplete - 4205. `let_[*].transform_env` is specified in terms of the `let_*` sender itself instead of its child -
P3745R0 Rebuttal to P1144R13 Pablo Halpern P. Halpern 2025-07-03 2025-07
Doc Date 2025-07-03
Mailing Date 2025-07 Post-Sofia
Author(s) Pablo Halpern
Target Audience EWGLEWG
Tracking issue View on GitHub
P3746R0 LEWG Slides for P3637R0 Inherit std::meta::exception from std::exception Nevin Liber N. Liber , Victor Zverovich V. Zverovich , Michael Hava M. Hava 2025-06-16 2025-07
Doc Date 2025-06-16
Mailing Date 2025-07 Post-Sofia
Target Audience LEWG
Tracking issue View on GitHub
P3747R0 Call side return type deduction Thomas Mejstrik T. Mejstrik 2025-06-17 2025-07
Doc Date 2025-06-17
Mailing Date 2025-07 Post-Sofia
Author(s) Thomas Mejstrik
Target Audience SG17
Tracking issue View on GitHub
Abstract For some functions it would be nice, if there were an easy way to have access to the expected return type. In Section 2 we list some use cases where this may be handy. Deducing the return type is already partly possible for class types, by adding a user-defined conversion function
P3748R0 Inspecting exception_ptr works should be constexpr. Hana Dusíková H. Dusíková 2025-06-18 2025-07
Doc Date 2025-06-18
Mailing Date 2025-07 Post-Sofia
Author(s) Hana Dusíková
Target Audience LEWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
Abstract Since [P3068r6](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p3068r6.html) C++ exceptions and most of `exception_ptr` support functions to get `current_exception`, `make_exception_ptr`, and `rethrow_exception` are `constexpr` enabled. But newly added function `exception_ptr_cast` from paper [P2927r3](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2025/p2927r3.html) adopted in Sofi
P3749R0 Slides in response to P3655R2 - Concerns regarding std::zstring_view Jan Schultke J. Schultke 2025-06-27 2025-07
Doc Date 2025-06-27
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience LEWG
Tracking issue View on GitHub
P3752R0 Core Language Working Group "ready" Issues for the June, 2025 meeting Jens Maurer J. Maurer 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Author(s) Jens Maurer
Target Audience CWG
Tracking issue View on GitHub
Disposition Date 2025-06Adopted
P3753R1 Slides for P3740R1 - Last chance to fix std::nontype Jan Schultke J. Schultke 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience LEWG
Revisions R0
Tracking issue View on GitHub
Abstract - P2472R3 added `std::nontype` constructors for `std::function_ref` - merged into P0792R14, plenary-approved Varna 2023 for C++26 - `std::nontype` possibly obsoleted by `std::constant_wrapper` (P2781R9) - Wording review completed by LWG - "non-type template parameter" term was removed by P2841R1 (C++26)
P3754R0 Slides for P3100R2 presentation to EWG Timur Doumler T. Doumler 2025-06-20 2025-07
Doc Date 2025-06-20
Mailing Date 2025-07 Post-Sofia
Author(s) Timur Doumler
Target Audience EWG
Tracking issue View on GitHub
P3757R0 Remove value-type invocability requirement from indirect unary callable concepts Hewill Kang H. Kang 2025-06-22 2025-07
Doc Date 2025-06-22
Mailing Date 2025-07 Post-Sofia
Author(s) Hewill Kang
Target Audience LEWGLWGSG9
Tracking issue View on GitHub
Abstract This is the follow up of [P2997](https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2024/p2997r1.html).
P3760R0 Presentation: constexpr 'Parallel' Algorithms Oliver Rosten O. Rosten 2025-06-21 2025-07
Doc Date 2025-06-21
Mailing Date 2025-07 Post-Sofia
Author(s) Oliver Rosten
Target Audience LEWG
Tracking issue View on GitHub
P3763R0 Remove redundant reserve_hint members from view classes Hewill Kang H. Kang 2025-06-21 2025-07
Doc Date 2025-06-21
Mailing Date 2025-07 Post-Sofia
Author(s) Hewill Kang
Target Audience LEWGLWGSG9
Tracking issue View on GitHub
Abstract This paper removes the `reserve_hint` members of view classes when their `size` members are already provided.
P3764R0 A utility function for propagating the most significant bit Jan Schultke J. Schultke 2025-07-15 2025-07
Doc Date 2025-07-15
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience SG6
Tracking issue View on GitHub
Abstract Add a function to the `<bit>` header which converts the most significant bit to a bit mask.
P3765R0 Deprecate implicit conversion from bool to character types Jan Schultke J. Schultke , Hana Dusíková H. Dusíková 2025-07-12 2025-07
Doc Date 2025-07-12
Mailing Date 2025-07 Post-Sofia
Target Audience EWG
Tracking issue View on GitHub
Abstract Implicit conversion from `bool` to character types serve little purpose in the language, and invite bugs. We propose to deprecate them.
P3769R0 Clarification of placement new deallocation Lauri Vasama L. Vasama 2025-06-22 2025-07
Doc Date 2025-06-22
Mailing Date 2025-07 Post-Sofia
Author(s) Lauri Vasama
Target Audience EWGCWG
Revisions R1
Tracking issue View on GitHub
Abstract Clarifies wording for selection of deallocation functions in placement new expressions.
P3771R0 constexpr mutex, locks, and condition variable Hana Dusíková H. Dusíková 2025-06-30 2025-07
Doc Date 2025-06-30
Mailing Date 2025-07 Post-Sofia
Author(s) Hana Dusíková
Target Audience EWGLEWGSG1
Revisions R1
Tracking issue View on GitHub
Abstract It's really hard to conditionally avoid non-`constexpr` types in a code which is supposed to be `constexpr` compatible. This paper fixes it by making these types (and algorithms) `constexpr` compatible. There is no semantical change for updated types and algorithms.
P3772R0 std::simd overloads for bit permutations Jan Schultke J. Schultke 2025-06-28 2025-07
Doc Date 2025-06-28
Mailing Date 2025-07 Post-Sofia
Author(s) Jan Schultke
Target Audience SG6
Revisions R2
Tracking issue View on GitHub
Abstract [[P3104R3]](https://wg21%2elink/p3104r3) has been been design-approved by LEWG for C++29. This proposal adds `std::simd` overloads to add consistency with [[P2933R4]](https://wg21%2elink/p2933r4).
P3774R0 Rename std::nontype, and make it broadly useful Jan Schultke J. Schultke , Bronek Kozicki B. Kozicki , Tomasz Kamiński T. Kamiński 2025-07-15 2025-07
Doc Date 2025-07-15
Mailing Date 2025-07 Post-Sofia
Target Audience LEWG
Tracking issue View on GitHub
Abstract [[P3740R1]](https://isocpp%2eorg/files/papers/P3740R1%2ehtml) proposed to rename `std::nontype` to `std::constant_arg`, now that the term "non-type template parameter" no longer exists in the C++26 standard. This solution found weak consensus in LEWG, but there was no time in LWG to review the change, so it did not make it into C++26.
P3778R0 Fixing `type_order` template definition Gašper Ažman G. Ažman 2025-07-03 2025-07
Doc Date 2025-07-03
Mailing Date 2025-07 Post-Sofia
Author(s) Gašper Ažman
Target Audience LEWGLWG
Tracking issue View on GitHub
Disposition Date 2025-11Adopted
Abstract The `type_order` template is unimplementable as specified by [[P2830R10]](https://wg21.link/p2830r10), due to values of type `strong_ordering` not being usable as template parameters because `strong_ordering` is not a structural type (it has a private member).
P3780R0 Detecting bitwise trivially relocatable types Giuseppe D'Angelo G. D'Angelo 2025-07-10 2025-07
Doc Date 2025-07-10
Mailing Date 2025-07 Post-Sofia
Author(s) Giuseppe D'Angelo
Target Audience EWGLEWG
Tracking issue View on GitHub
Abstract We propose a new type trait that detects whether a type can be trivially relocated, and such trivial relocation does not alter any part of the object representation. This trait has direct use cases when creating types that use byte buffers to manage objects, such as certain implementations of `optional`, `inplace_vector`, `any`, `function` and similar.
P3781R0 is_*_type should imply is_type Xavier Bonaventura X. Bonaventura 2025-07-05 2025-07
Doc Date 2025-07-05
Mailing Date 2025-07 Post-Sofia
Author(s) Xavier Bonaventura
Target Audience EWGSG20
Tracking issue View on GitHub
Abstract This paper is to raise awareness of a potential user confusion by the fact that a user needs to check for `is_type` before calling `is_*_type`. As a solution, it proposes to make the call to `is_type` implicit when calling any of the `is_*_type` functions.
P3784R0 range-if Michael Florian Hava M. Hava 2025-07-10 2025-07
Doc Date 2025-07-10
Mailing Date 2025-07 Post-Sofia
Target Audience SG17
Tracking issue View on GitHub
Abstract This paper proposes adding a ranged `if`-statement, branching based on the emptiness of the supplied range. If the range is non-empty it is equivalent to `range-for`, otherwise an optional `else` part is executed.
P3785R0 Library Wording Changes for Defaulted Postfix Increment and Decrement Operators Matthew Taylor M. Taylor , Alex (Waffl3x) A. (Waffl3x) 2025-07-13 2025-07
Doc Date 2025-07-13
Mailing Date 2025-07 Post-Sofia
Target Audience LWG
Revisions R1
Tracking issue View on GitHub
Abstract Following design-approval of P3668 Defaulting Postfix Increment and Decrement Operations, it would be possible to significantly shrink the standard library wording by defaulting those operations where appropriate. This paper proposes this as an editorial change for LWG review.
P3787R0 Adjoints to "Enabling list-initialization for algorithms": uninitialized_fill Giuseppe D'Angelo G. D'Angelo 2025-07-10 2025-07
Doc Date 2025-07-10
Mailing Date 2025-07 Post-Sofia
Author(s) Giuseppe D'Angelo
Target Audience LEWGLWG
Revisions R2R1
Tracking issue View on GitHub
Abstract We extend the same changes that [P2248R8] applied to the rest of the find algorithms to `std(::ranges)::uninitialized_fill`.
P3788R0 Fixing `std::complex` binary operators Mateusz Pusz M. Pusz 2025-07-11 2025-07
Doc Date 2025-07-11
Mailing Date 2025-07 Post-Sofia
Author(s) Mateusz Pusz
Target Audience LEWGSG6
Tracking issue View on GitHub
Abstract This paper proposes a backward-compatible solution to fix the inconsistent behavior of `std::complex` binary operators with implicit conversions. The proposed changes:
P3790R0 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. 2025-07-14 2025-07
Doc Date 2025-07-14
Mailing Date 2025-07 Post-Sofia
Target Audience LEWG
Revisions R2
Tracking issue View on GitHub
Abstract **Introduction** **3** **Terminology** **4** **What We Are Asking For** **5** **Detailed Proposal** **5** A launder_bag_of_bits_ptr() Function 5 A bag_of_bits_ptr<T> Template Class 6 **Example** **6** User Tracking of Pointers and realloc() 6 **Wording** **8** Add bag_of_bits_ptr<T>, comparisons, launder_bag_of_bits_ptr(), and hash specialization 8 **History** **11** **Appendix: Name-Selection Gui
P3791R0 constexpr deterministic random Hana Dusíková H. Dusíková 2025-07-15 2025-07
Doc Date 2025-07-15
Mailing Date 2025-07 Post-Sofia
Author(s) Hana Dusíková
Target Audience LEWG
Revisions R1
Tracking issue View on GitHub
Abstract Algorithms `shuffle`, `sample` are useful even in compile time, same applies to random distribution types which are fully deterministic.
P3792R0 Why `constant_wrapper` is not a usable replacement for `nontype` Bronek Kozicki B. Kozicki 2025-07-13 2025-07
Doc Date 2025-07-13
Mailing Date 2025-07 Post-Sofia
Author(s) Bronek Kozicki
Target Audience LEWGLWG
Tracking issue View on GitHub
Abstract The lack of LEWG consensus during the Sofia meeting to replace `nontype` with `constant_wrapper` as a `function_ref` construction parameter has reportedly surprised some members of LWG. Plausibly, it might have also surprised the wider C++ community. This paper is an attempt to explain the process and the rationale behind the (lack of) decision for such a change.
P3793R0 Better shifting Brian Bi B. Bi , Jan Schultke J. Schultke 2025-07-15 2025-07
Doc Date 2025-07-15
Mailing Date 2025-07 Post-Sofia
Author(s) Brian Bi, Jan Schultke
Target Audience SG6
Revisions R2
Tracking issue View on GitHub
Abstract We propose the addition of functions to the `<bit>` header to perform bit shifts on integer operands. The `std::shl` and `std::shr` functions provide the following advantages over the built-in shift operators:
P3794R0 An idea or two on renaming the nontype tag Zhihao Yuan Z. Yuan 2025-07-13 2025-07
Doc Date 2025-07-13
Mailing Date 2025-07 Post-Sofia
Author(s) Zhihao Yuan
Target Audience LEWG
Tracking issue View on GitHub
P3795R0 Miscellaneous Reflection Cleanup Barry Revzin B. Revzin 2025-07-15 2025-07
Doc Date 2025-07-15
Mailing Date 2025-07 Post-Sofia
Author(s) Barry Revzin
Target Audience EWG
Revisions R2R1
Tracking issue View on GitHub
Abstract At the Sofia meeting, [[P2996R13] (Reflection for C++26)](https://wg21.link/p2996r13), [[P3394R4] (Annotations for Reflection)](https://wg21.link/p3394r4), [[P3293R3] (Splicing a base class subobject)](https://wg21.link/p3293r3), [[P3491R3] (`define_static_{string,object,array}`)](https://wg21.link/p349143), [[P3096R12] (Function Parameter Reflection in Reflection for C++26)](https://wg21.link/p30
P3796R0 Coroutine Task Issues Dietmar Kühl D. Kühl 2025-07-15 2025-07
Doc Date 2025-07-15
Mailing Date 2025-07 Post-Sofia
Author(s) Dietmar Kühl
Target Audience LEWGLWGSG1
Tracking issue View on GitHub
Abstract After the [task proposal](https://wg21.link/p3552) was voted to be forwarded to plenary for inclusion into C++26 a number of issues were brought up. The issues were reported using various means. This paper describes the issues and proposes potential changes to address them.
P3798R0 The unexpected in std::expected Alex Kremer A. Kremer , Ayaz Salikhov A. Salikhov 2025-07-14 2025-07
Doc Date 2025-07-14
Mailing Date 2025-07 Post-Sofia
Target Audience LEWGLWGSG18
Tracking issue View on GitHub
Abstract We propose adding a `has_error()` member function to `std::expected` to complement the existing `has_value()` functionality.
P3799R0 2025-07 Library Evolution Polls Inbal Levi I. Levi , Fabio Fracassi F. Fracassi , Andreas Weis A. Weis , Billy Baker B. Baker , Nevin Liber N. Liber , Corentin Jabot C. Jabot 2025-07-15 2025-07
Doc Date 2025-07-15
Mailing Date 2025-07 Post-Sofia
Target Audience LEWG
Tracking issue View on GitHub
Abstract This paper contains the decision polls that the C++ Library Evolution group will take in July 2025.
P3801R0 Concerns about the design of std::execution::task Jonathan Müller J. Müller 2025-07-15 2025-07
Doc Date 2025-07-15
Mailing Date 2025-07 Post-Sofia
Author(s) Jonathan Müller
Target Audience LEWG
Tracking issue View on GitHub
Abstract [P3552R3], proposing the coroutine task type `std::execution::task`, was approved in Sofia for inclusion in C++26. I have strong concerns about its design and urge the committee to reconsider.
P3802R0 Poor Functions Daveed Vandevoorde D. Vandevoorde 2025-07-15 2025-07
Doc Date 2025-07-15
Mailing Date 2025-07 Post-Sofia
Author(s) Daveed Vandevoorde
Target Audience EWGLEWG
Tracking issue View on GitHub
Showing 127 of 127 papers · source: open-std.org