Standardization

2025-03 Mailing Available

The 2025-03 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N5004 2025 Sofia Meeting Invitation and Information Vassil Vassilev 2025-01-14 2025-03   All of WG21
N5005 WG21 2025-01 Hagenberg Admin telecon minutes Nina Ranns 2025-01-31 2025-03   All of WG21
N5006 2025 WG21 admin telecon meetings (revised 2025-02-20) Herb Sutter 2025-03-03 2025-03   All of WG21
N5007 WG21 02/2025 Hagenberg Minutes of Meeting Nina Ranns 2025-03-03 2025-03   All of WG21
N5008 Working Draft, Programming Languages -- C++ Thomas Köppe 2025-03-15 2025-03   All of WG21
N5009 Editors' Report, Programming Languages -- C++ Thomas Köppe 2025-03-15 2025-03   All of WG21
P0260R15 C++ Concurrent Queues Detlef Vollmann 2025-02-13 2025-03 P0260R14 SG1 Concurrency and Parallelism,LEWG Library Evolution
P0260R16 C++ Concurrent Queues Detlef Vollmann 2025-02-15 2025-03 P0260R15 SG1 Concurrency and Parallelism,LEWG Library Evolution
P0876R20 fiber_context - fibers without scheduler Oliver Kowalke 2025-02-27 2025-03 P0876R19 EWG Evolution,CWG Core,LWG Library
P1494R5 Partial program correctness S. Davis Herring 2025-03-04 2025-03 P1494R4 CWG Core,LWG Library
P1967R14 #embed - a simple, scannable preprocessor-based resource acquisition method JeanHeyd Meneide 2025-02-17 2025-03 P1967R13 CWG Core
P2079R7 System execution context Lucian Radu Teodorescu 2025-02-12 2025-03 P2079R6 LEWG Library Evolution
P2287R4 Designated-initializers for base classes Barry Revzin 2025-03-10 2025-03 P2287R3 EWG Evolution
P2414R6 Pointer lifetime-end zap proposed solutions Paul E. McKenney 2025-02-13 2025-03 P2414R5 SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library
P2663R7 Proposal to support interleaved complex values in std::simd Daniel Towner 2025-02-17 2025-03 P2663R6 LWG Library
P2719R4 Type-aware allocation and deallocation functions Louis Dionne 2025-02-10 2025-03 P2719R3 CWG Core
P2758R5 Emitting messages at compile time Barry Revzin 2025-03-16 2025-03 P2758R4 CWG Core,LWG Library
P2781R6 std::constexpr_wrapper Zach Laine 2025-02-16 2025-03 P2781R5 LEWG Library Evolution,LWG Library
P2781R7 std::constexpr_wrapper Zach Laine 2025-03-09 2025-03 P2781R6 LEWG Library Evolution,LWG Library
P2781R8 std::constexpr_wrapper Zach Laine 2025-03-15 2025-03 P2781R7 LEWG Library Evolution,LWG Library
P2786R12 Trivial Relocatability For C++26 Pablo Halpern 2025-02-10 2025-03 P2786R11 CWG Core,LWG Library
P2786R13 Trivial Relocatability For C++26 Pablo Halpern 2025-02-14 2025-03 P2786R12 All of WG21
P2825R5 Overload resolution hook: declcall( unevaluated-call-expression ) Gašper Ažman 2025-03-16 2025-03 P2825R4 EWG Evolution,CWG Core
P2830R10 Standardized Constexpr Type Ordering Gašper Ažman 2025-03-15 2025-03 P2830R9 EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library
P2841R7 Concept and variable-template template-parameters Corentin Jabot 2025-02-15 2025-03 P2841R6 CWG Core
P2843R2 Preprocessing is never undefined Alisdair Meredith 2025-03-17 2025-03 P2843R1 CWG Core
P2846R6 reserve_hint: Eagerly reserving memory for not-quite-sized lazy ranges Corentin Jabot 2025-02-15 2025-03 P2846R5 LWG Library
P2863R9 Review Annex D for C++26 Alisdair Meredith 2025-03-11 2025-03 P2863R8 EWG Evolution,CWG Core,LWG Library
P2873R3 Remove Deprecated locale category facets for Unicode from C++26 Alisdair Meredith 2025-03-17 2025-03 P2873R2 LWG Library
P2876R2 Proposal to extend std::simd with more constructors and accessors Daniel Towner 2025-02-14 2025-03 P2876R1 LWG Library
P2899R1 Contracts for C++ - Rationale Timur Doumler 2025-03-14 2025-03 P2899R0 SG21 Contracts,EWG Evolution,LEWG Library Evolution
P2900R14 Contracts for C++ Joshua Berne 2025-02-14 2025-03 P2900R13 CWG Core,LWG Library
P2933R4 std::simd overloads for <bit> header Daniel Towner 2025-02-17 2025-03 P2933R3 LWG Library
P2988R10 std::optional<T&> Steve Downey 2025-02-18 2025-03 P2988R9 LWG Library
P2988R11 std::optional<T&> Steve Downey 2025-03-17 2025-03 P2988R10 LWG Library
P2996R10 Reflection for C++26 Barry Revzin 2025-02-26 2025-03 P2996R9 EWG Evolution
P3008R4 Atomic floating-point min/max Gonzalo Brito Gadeschi 2025-02-20 2025-03 P3008R3 LWG Library
P3016R6 Resolve inconsistencies in begin/end for valarray and braced initializer lists Arthur O'Dwyer 2025-02-11 2025-03 P3016R5 LWG Library
P3019R13 Vocabulary Types for Composite Class Design Jonathan Coe 2025-02-09 2025-03 P3019R12 LEWG Library Evolution,LWG Library
P3019R14 Vocabulary Types for Composite Class Design Jonathan Coe 2025-02-11 2025-03 P3019R13 LEWG Library Evolution,LWG Library
P3060R2 Add std::views::indices(n) Weile Wei 2025-02-20 2025-03 P3060R1 LWG Library
P3070R3 Formatting enums Victor Zverovich 2025-02-16 2025-03 P3070R2 LWG Library
P3074R6 trivial unions (was std::uninitialized<T>) Barry Revzin 2025-02-11 2025-03 P3074R5 EWG Evolution
P3074R7 trivial unions (was std::uninitialized<T>) Barry Revzin 2025-02-14 2025-03 P3074R6 EWG Evolution
P3081R2 Core safety profiles for C++26 Herb Sutter 2025-02-03 2025-03 P3081R1 EWG Evolution,LEWG Library Evolution
P3096R6 Function Parameter Reflection in Reflection for C++26 Adam Lach 2025-02-07 2025-03 P3096R5 CWG Core,LWG Library
P3096R7 Function Parameter Reflection in Reflection for C++26 Adam Lach 2025-03-15 2025-03 P3096R6 CWG Core,LWG Library
P3104R3 Bit permutations Jan Schultke 2025-02-11 2025-03 P3104R2 LEWG Library Evolution
P3111R4 Atomic Reduction Operations Gonzalo Brito Gadeschi 2025-02-14 2025-03 P3111R3 LEWG Library Evolution
P3111R5 Atomic Reduction Operations Gonzalo Brito Gadeschi 2025-02-20 2025-03 P3111R4 CWG Core,LWG Library
P3137R3 views::to_input Tim Song 2025-02-10 2025-03 P3137R2 LWG Library
P3149R9 async_scope -- Creating scopes for non-sequential concurrency Ian Petersen 2025-02-18 2025-03 P3149R8 LWG Library
P3161R3 Unified integer overflow arithmetic Tiago Freire 2025-01-16 2025-03 P3161R2 SG6 Numerics
P3179R6 C++ parallel range algorithms Ruslan Arutyunyan 2025-02-07 2025-03 P3179R5 LEWG Library Evolution
P3179R7 C++ parallel range algorithms Ruslan Arutyunyan 2025-02-28 2025-03 P3179R6 LWG Library
P3229R1 Making erroneous behaviour compatible with Contracts Timur Doumler 2025-02-10 2025-03 P3229R0 EWG Evolution,LEWG Library Evolution
P3230R2 views::unchecked_(take|drop) Hewill Kang 2025-02-27 2025-03 P3230R1 SG9 Ranges,LEWG Library Evolution,LWG Library
P3242R1 Copy and fill for mdspan Nicolas Morales 2025-03-13 2025-03 P3242R0 LEWG Library Evolution
P3248R3 Require [u]intptr_t Gonzalo Brito Gadeschi 2025-02-10 2025-03 P3248R2 EWG Evolution,LEWG Library Evolution
P3284R3 `write_env` and `unstoppable` Sender Adaptors Eric Niebler 2025-02-13 2025-03 P3284R2 LWG Library
P3287R3 Exploration of namespaces for std::simd Matthias Kretz 2025-02-13 2025-03 P3287R2 LWG Library
P3296R4 let_async_scope Anthony Williams 2025-03-17 2025-03 P3296R3 LWG Library
P3319R3 Add an iota object for simd (and more) Matthias Kretz 2025-02-03 2025-03 P3319R2 LEWG Library Evolution
P3319R4 Add an iota object for simd (and more) Matthias Kretz 2025-02-14 2025-03 P3319R3 LEWG Library Evolution
P3319R5 Add an iota object for simd (and more) Matthias Kretz 2025-02-14 2025-03 P3319R4 LWG Library
P3331R1 Accessing The First and Last Elements in Associative Containers Nikita Sakharin 2025-02-05 2025-03 P3331R0 LEWG Library Evolution,LWG Library
P3349R1 Converting contiguous iterators to pointers Jonathan Wakely 2025-02-10 2025-03 P3349R0 LWG Library
P3365R1 Remove the Deprecated iterator Class Template from C++26 Alisdair Meredith 2025-03-11 2025-03 P3365R0 LWG Library
P3366R1 Remove Deprecated Atomic Initialization API from C++26 Alisdair Meredith 2025-03-16 2025-03 P3366R0 LWG Library
P3367R4 constexpr coroutines Hana Dusíková 2025-02-17 2025-03 P3367R3 CWG Core,LWG Library
P3372R3 constexpr containers and adapters Hana Dusíková 2025-02-11 2025-03 P3372R2 LWG Library
P3378R2 constexpr exception types Hana Dusíková 2025-02-11 2025-03 P3378R1 LWG Library
P3383R2 mdspan.at() Stephan Lachnit 2025-02-17 2025-03 P3383R1 LWG Library
P3385R4 Attributes reflection Aurelien Cassagnes 2025-03-10 2025-03 P3385R3 SG7 Reflection,EWG Evolution,LEWG Library Evolution
P3394R2 Annotations for Reflection Daveed Vandevoorde 2025-03-14 2025-03 P3394R1 CWG Core,LWG Library
P3395R1 Fix encoding issues and add a formatter for std::error_code Victor Zverovich 2025-03-12 2025-03 P3395R0 LEWG Library Evolution
P3395R2 Fix encoding issues and add a formatter for std::error_code Victor Zverovich 2025-03-17 2025-03 P3395R1 LEWG Library Evolution
P3400R1 Specifying Contract Assertion Properties with Labels Joshua Berne 2025-02-28 2025-03 P3400R0 SG21 Contracts,All of WG21
P3417R1 Handling exceptions thrown from contract predicates Gašper Ažman 2025-03-05 2025-03 P3417R0 SG21 Contracts,EWG Evolution
P3430R3 simd issues: explicit, unsequenced, identity-element position, and members of disabled simd Matthias Kretz 2025-02-13 2025-03 P3430R2 LWG Library
P3441R1 Rename simd_split to simd_chunk Daniel Towner 2025-01-29 2025-03 P3441R0 LEWG Library Evolution
P3441R2 Rename simd_split to simd_chunk Daniel Towner 2025-01-30 2025-03 P3441R1 LEWG Library Evolution
P3442R1 [[invalidate_dereferencing]] attribute Patrice Roy 2025-02-11 2025-03 P3442R0 SG14 Low Latency,LEWG Library Evolution
P3471R3 Standard Library Hardening Konstantin Varlamov 2025-02-13 2025-03 P3471R2 SG23 Safety and Security,LEWG Library Evolution
P3471R4 Standard Library Hardening Konstantin Varlamov 2025-02-14 2025-03 P3471R3 CWG Core,LWG Library
P3472R1 Make fiber_context::can_resume() const Andrzej Krzemieński 2025-01-28 2025-03 P3472R0 LEWG Library Evolution
P3475R2 Defang and deprecate memory_order::consume Hans Boehm 2025-02-25 2025-03 P3475R1 SG1 Concurrency and Parallelism,EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library
P3477R3 There are exactly 8 bits in a byte JF Bastien 2025-02-10 2025-03 P3477R2 LEWG Library Evolution,CWG Core,LWG Library
P3477R4 There are exactly 8 bits in a byte JF Bastien 2025-02-13 2025-03 P3477R3 CWG Core
P3477R5 There are exactly 8 bits in a byte JF Bastien 2025-03-15 2025-03 P3477R4 EWG Evolution,LEWG Library Evolution
P3480R4 std::simd is a range Matthias Kretz 2025-02-14 2025-03 P3480R3 LEWG Library Evolution
P3481R2 std::execution::bulk() issues Lucian Radu Teodorescu 2025-02-11 2025-03 P3481R1 LEWG Library Evolution
P3482R1 Design for C++ networking based on IETF TAPS Thomas Rodgers, Woven By Toyota, [email protected] 2025-01-13 2025-03 P3482R0 SG4 Networking
P3491R2 define_static_{string,object,array} Barry Revzin 2025-03-14 2025-03 P3491R1 EWG Evolution,LEWG Library Evolution
P3492R1 Sized deallocation for placement new Lauri Vasama 2025-02-10 2025-03 P3492R0 EWG Evolution
P3492R2 Sized deallocation for placement new Lauri Vasama 2025-02-17 2025-03 P3492R1 EWG Evolution,CWG Core
P3499R1 Exploring strict contract predicates Timur Doumler 2025-02-09 2025-03 P3499R0 EWG Evolution
P3500R1 Are Contracts "safe"? Timur Doumler 2025-02-09 2025-03 P3500R0 EWG Evolution
P3503R1 Make type-erased allocator use in promise and packaged_task consistent Nicolas Morales 2025-03-16 2025-03 P3503R0 LWG Library
P3503R2 Make type-erased allocator use in promise and packaged_task consistent Nicolas Morales 2025-03-17 2025-03 P3503R1 LWG Library
P3505R0 Fix the default floating-point representation in std::format Victor Zverovich 2025-03-16 2025-03   LEWG Library Evolution
P3516R1 Uninitialized algorithms for relocation Louis Dionne 2025-02-11 2025-03 P3516R0 LEWG Library Evolution
P3526R0 Container truncation Peter Bindels 2025-03-17 2025-03   LEWG Library Evolution
P3533R2 constexpr virtual inheritance Hana Dusíková 2025-02-17 2025-03 P3533R1 CWG Core
P3537R1 Presentation on Concurrent Queue API Detlef Vollmann 2025-02-11 2025-03 P3537R0 All of WG21
P3540R1 #embed Parameter offset JeanHeyd Meneide 2025-02-17 2025-03 P3540R0 CWG Core
P3544R0 ranges::to view Hewill Kang 2025-02-11 2025-03   SG9 Ranges
P3547R1 Modeling Access Control With Reflection Dan Katz 2025-02-09 2025-03 P3547R0 SG7 Reflection,EWG Evolution,LEWG Library Evolution,LWG Library
P3552R1 Add a Coroutine Task Type Dietmar Kühl 2025-03-16 2025-03 P3552R0 SG1 Concurrency and Parallelism,LEWG Library Evolution
P3556R0 Input files are source files Alisdair Meredith 2025-03-17 2025-03   CWG Core
P3557R1 High-Quality Sender Diagnostics with Constexpr Exceptions Eric Niebler 2025-02-13 2025-03 P3557R0 LEWG Library Evolution
P3558R1 Core Language Contracts By Default Joshua Berne 2025-02-02 2025-03 P3558R0 SG21 Contracts,SG23 Safety and Security
P3561R1 Index based coproduct operations on variant, and library wording Esa Pulkkinen 2025-01-16 2025-03 P3561R0 LEWGI SG18: LEWG Incubator
P3568R1 break label; and continue label; Jan Schultke 2025-03-13 2025-03 P3568R0 SG22 Compatibility,EWG Evolution
P3570R0 optional variants in sender/receiver Fabio Fracassi 2025-02-10 2025-03   LEWG Library Evolution
P3579R1 Fix matching of non-type template parameters when matching template template parameters Matheus Izvekov 2025-02-10 2025-03 P3579R0 CWG Core
P3589R1 C++ Profiles: The Framework Gabriel Dos Reis 2025-02-03 2025-03 P3589R0 EWG Evolution
P3591R0 Contextualizing Contracts Concerns Joshua Berne 2025-02-03 2025-03   SG21 Contracts,EWG Evolution,LEWG Library Evolution
P3592R0 Resolving Concerns with const-ification Joshua Berne 2025-02-10 2025-03   SG21 Contracts,EWG Evolution
P3599R0 Initial Implicit Contract Assertions Joshua Berne 2025-02-03 2025-03   SG21 Contracts,SG23 Safety and Security,EWG Evolution
P3603R0 Consteval-only Values and Consteval Variables Barry Revzin 2025-03-13 2025-03   EWG Evolution
P3605R0 isqrt: A function to calculate integer square root of the nonnegative integer Nikita Sakharin 2025-02-05 2025-03   LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library
P3606R0 On Overload Resolution, Exact Matches and Clever Implementations Corentin Jabot 2025-01-27 2025-03   EWG Evolution
P3608R0 Contracts and profiles: what can we reasonably ship in C++26 Ville Voutilainen 2025-02-01 2025-03   EWG Evolution,LEWG Library Evolution
P3611R0 Dealing with pointer errors: Separating static and dynamic checking Bjarne Stroustrup 2025-02-04 2025-03   SG23 Safety and Security,EWG Evolution,LEWG Library Evolution
P3613R0 On the beating of horses, and other matters Tim Song 2025-03-17 2025-03   SG9 Ranges
P3614R0 Do not remove nor postpone access_context::unchecked Ville Voutilainen 2025-02-06 2025-03   EWG Evolution
P3615R0 C++ Standard Library Ready Issues to be moved in Hagenberg, Feb. 2025 Jonathan Wakely 2025-02-07 2025-03   All of WG21
P3616R0 Remove contracts on virtual functions for now Ville Voutilainen 2025-02-08 2025-03   EWG Evolution
P3618R0 Allow attaching main to the global module Michael Spencer 2025-02-11 2025-03   EWG Evolution
P3619R0 Counter-examples for P2688R5 Vlad Serebrennikov 2025-02-10 2025-03   EWG Evolution
P3619R1 Counter-examples for P2688R5 Vlad Serebrennikov 2025-02-12 2025-03 P3619R0 EWG Evolution
P3620R0 Concerns with the proposed addition of fibers to C++ 26 David Chisnall 2025-02-10 2025-03   EWG Evolution,CWG Core,LWG Library
P3623R0 Add noexcept to [iterator.range] (LWG 3537) Arthur O'Dwyer 2025-02-11 2025-03   LWG Library
P3625R0 either neither Michael Florian Hava 2025-02-11 2025-03   LEWG Library Evolution
P3626R0 Make predicate exceptions propagate by default Timur Doumler 2025-02-11 2025-03   EWG Evolution
P3627R0 Easy-to-adopt security profiles for preventing RCE (remote code execution) in existing C++ code Ulfar Erlingsson 2025-02-11 2025-03   SG23 Safety and Security
P3628R0 break label; and continue label;, tl; dr Jan Schultke 2025-02-12 2025-03   EWGI SG17: EWG Incubator
P3630R0 Slides for P3568R0 Jan Schultke 2025-02-12 2025-03   EWG Evolution
P3632R0 P3564R0: Make the concurrent forward progress guarantee usable in bulk Mark Hoemmen 2025-02-13 2025-03   SG1 Concurrency and Parallelism
P3632R1 P3564R0: Make the concurrent forward progress guarantee usable in bulk Mark Hoemmen 2025-02-13 2025-03 P3632R0 SG1 Concurrency and Parallelism
P3633R0 A Byte is a Byte Murat Can Cagri 2025-02-13 2025-03   EWG Evolution,LEWG Library Evolution
P3635R0 We shouldn't rush to require either CHAR_BIT==8 or (u)intNN_t Nevin Liber 2025-02-13 2025-03   EWG Evolution,LEWG Library Evolution
P3636R0 LEWG Hagenberg presentation for P3581 No, inplace_vector shouldn't have an Allocator Nevin Liber 2025-02-13 2025-03   LEWG Library Evolution
P3637R0 Inherit std::meta::exception from std::exception Victor Zverovich 2025-03-08 2025-03   LEWG Library Evolution
P3638R0 Core Language Working Group "ready" Issues for the February, 2025 meeting Jens Maurer 2025-02-14 2025-03   CWG Core
P3639R0 The _BitInt Debate Jan Schultke 2025-02-20 2025-03   SG6 Numerics,EWG Evolution,LEWG Library Evolution
P3640R0 Make contracts reliable by default Jonas Persson 2025-03-17 2025-03   SG21 Contracts,SG23 Safety and Security,EWG Evolution
P3641R0 Rename std::observable to std::observable_checkpoint, and add a feature-test macro Jan Schultke 2025-03-13 2025-03   LEWG Library Evolution
P3642R0 Carry-less product: std::clmul Jan Schultke 2025-03-13 2025-03   SG6 Numerics,LEWGI SG18: LEWG Incubator
P3643R0 std::to_signed and std::to_unsigned Jan Schultke 2025-03-13 2025-03   LEWG Library Evolution
P3650R0 21st Century C++ Bjarne Stroustrup 2025-03-05 2025-03   All of WG21
P3651R0 Note to the C++ standards committee members Bjarne Stroustrup 2025-03-06 2025-03   All of WG21
P3652R0 Constexpr floating-point <charconv> functions Lénárd Szolnoki 2025-03-15 2025-03   LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P3654R0 Slides for P3516 Giuseppe D'Angelo 2025-03-09 2025-03   LEWG Library Evolution
P3655R0 zstring_view Peter Bindels 2025-03-17 2025-03   LEWG Library Evolution
P3656R0 Initial draft proposal for core language UB white paper: Process and major work items Herb Sutter 2025-03-11 2025-03   EWG Evolution
P3657R0 A Grammar for Whitespace Characters Alisdair Meredith 2025-03-17 2025-03   CWG Core
P3658R0 Adjust identifier following new Unicode recommendations Robin Leroy 2025-03-13 2025-03   SG16 Unicode
P3660R0 Improve `reference_wrapper` Ergonomics Jeremy Rifkin 2025-03-17 2025-03   LEWGI SG18: LEWG Incubator

21st Century C++ -- Bjarne Stroustrup

It is now 45+ years since C++ was first conceived. As planned, it evolved to meet challenges, but many developers use C++ as if it was still the previous millennium. This is suboptimal from the perspective of ease of expressing ideas, performance, reliability, and maintainability.

21st Century C++

by Bjarne Stroustrup

About the article:

Here, I present the key concepts on which performant, type safe, and flexible C++ software can be built: resource management, life-time management, error-handling, modularity, and generic programming. At the end, I present ways to ensure that code is contemporary, rather than relying on outdated, unsafe, and hard-to-maintain techniques: guidelines and profiles.

Contracts for C++ explained in 5 minutes -- Timur Doumler

In this article, we briefly explain everything you need to know to get started with Contracts as proposed for C++26 in P2900.

Contracts for C++ explained in 5 minutes

by Timur Doumler

From the article:

With P2900, we propose to add contract assertions to the C++ language. This proposal is in the final stages of wording review before being included in the draft Standard for C++26.

It has been suggested by some members of the C++ standard committee that this feature is too large, too complicated, and hard to teach. As it turns out, the opposite is true: contract assertions are actually very simple and can be explained in just five minutes. In this blog post, we will do exactly this!

2025-01 Mailing Available

The 2025-01 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
P0149R1 Generalised member pointers Jeff Snyder 2025-01-13 2025-01 P0149R0 EWG Evolution
P0260R14 C++ Concurrent Queues Detlef Vollmann 2025-01-12 2025-01 P0260R13 SG1 Concurrency and Parallelism,LEWG Library Evolution
P0876R19 fiber_context - fibers without scheduler Oliver Kowalke 2025-01-13 2025-01 P0876R18 EWG Evolution,CWG Core,LWG Library
P1030R8 std::filesystem::path_view Niall Douglas 2024-12-21 2025-01 P1030R7 LEWG Library Evolution
P1839R7 Accessing object representations Brian Bi 2025-01-11 2025-01 P1839R6 CWG Core
P2079R6 System execution context Lucian Radu Teodorescu 2025-01-13 2025-01 P2079R5 SG1 Concurrency and Parallelism,LEWG Library Evolution
P2414R5 Pointer lifetime-end zap proposed solutions Paul E. McKenney 2025-01-11 2025-01 P2414R4 SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library
P2434R3 Nondeterministic pointer provenance S. Davis Herring 2025-01-13 2025-01 P2434R2 SG22 Compatibility,EWG Evolution,CWG Core
P2654R1 Modules and Macros Alisdair Meredith 2025-01-13 2025-01 P2654R0 EWG Evolution,LEWG Library Evolution
P2663R6 Proposal to support interleaved complex values in std::simd Daniel Towner 2025-01-13 2025-01 P2663R5 LEWG Library Evolution
P2664R9 Proposal to extend std::simd with permutation API Daniel Towner 2025-01-13 2025-01 P2664R8 SG1 Concurrency and Parallelism,LEWG Library Evolution
P2688R5 Pattern Matching: `match` Expression Michael Park 2025-01-13 2025-01 P2688R4 EWG Evolution
P2719R2 Type-aware allocation and deallocation functions Louis Dionne 2025-01-06 2025-01 P2719R1 EWG Evolution,CWG Core
P2719R3 Type-aware allocation and deallocation functions Louis Dionne 2025-01-08 2025-01 P2719R2 EWG Evolution,CWG Core
P2746R7 Deprecate and Replace Fenv Rounding Modes Hans Boehm 2025-01-12 2025-01 P2746R6 SG6 Numerics,LEWG Library Evolution
P2758R4 Emitting messages at compile time Barry Revzin 2025-01-07 2025-01 P2758R3 LEWG Library Evolution,CWG Core
P2806R3 do expressions Barry Revzin 2025-01-12 2025-01 P2806R2 EWG Evolution
P2825R4 Overload resolution hook: declcall( unevaluated-call-expression ) Gašper Ažman 2025-01-13 2025-01 P2825R3 EWG Evolution,CWG Core
P2830R8 Standardized Constexpr Type Ordering Gašper Ažman 2025-01-09 2025-01 P2830R7 LWG Library
P2830R9 Standardized Constexpr Type Ordering Gašper Ažman 2025-01-10 2025-01 P2830R8 EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library
P2841R6 Concept and variable-template template-parameters Corentin Jabot 2025-01-13 2025-01 P2841R5 CWG Core
P2843R1 Preprocessing is never undefined Alisdair Meredith 2025-01-13 2025-01 P2843R0 SG22 Compatibility,EWG Evolution
P2883R1 `offsetof` Should Be A Keyword In C++26 Alisdair Meredith 2025-01-10 2025-01 P2883R0 EWGI SG17: EWG Incubator,EWG Evolution
P2899R0 Contracts for C++ - Rationale Timur Doumler 2025-01-13 2025-01   SG21 Contracts,EWG Evolution,LEWG Library Evolution
P2900R13 Contracts for C++ Joshua Berne 2025-01-13 2025-01 P2900R12 CWG Core,LWG Library
P2933R3 std::simd overloads for <bit> header Daniel Towner 2025-01-13 2025-01 P2933R2 LWG Library
P2952R2 auto& operator=(X&&) = default Arthur O'Dwyer 2025-01-08 2025-01 P2952R1 CWG Core
P2953R1 Forbid defaulting operator=(X&&) && Arthur O'Dwyer 2025-01-08 2025-01 P2953R0 EWGI SG17: EWG Incubator
P2971R3 Implication for C++ Walter E Brown 2025-01-12 2025-01 P2971R2 EWG Evolution,LEWG Library Evolution
P2988R9 std::optional<T&> Steve Downey 2025-01-13 2025-01 P2988R8 LEWG Library Evolution,LWG Library
P2996R9 Reflection for C++26 Barry Revzin 2025-01-13 2025-01 P2996R8 EWG Evolution
P3019R12 Vocabulary Types for Composite Class Design Jonathan Coe 2025-01-12 2025-01 P3019R11 LEWG Library Evolution,LWG Library
P3045R5 Quantities and units library Mateusz Pusz 2025-01-13 2025-01 P3045R4 SG6 Numerics,SG16 Unicode,LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P3070R2 Formatting enums Victor Zverovich 2025-01-13 2025-01 P3070R1 LEWG Library Evolution
P3081R1 Core safety profiles for C++26 Herb Sutter 2025-01-06 2025-01 P3081R0 EWG Evolution,LEWG Library Evolution
P3086R3 Proxy: A Pointer-Semantics-Based Polymorphism Library Mingxin Wang 2025-01-13 2025-01 P3086R2 LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P3094R6 std::basic_fixed_string Mateusz Pusz 2025-01-10 2025-01 P3094R5 LEWG Library Evolution
P3111R3 Atomic Reduction Operations Gonzalo Brito Gadeschi 2025-01-13 2025-01 P3111R2 EWG Evolution,LEWG Library Evolution
P3125R3 constexpr pointer tagging Hana Dusíková 2025-01-13 2025-01 P3125R2 LEWG Library Evolution
P3139R1 Pointer cast for unique_ptr Zhihao Yuan 2024-12-27 2025-01 P3139R0 LEWG Library Evolution
P3148R1 Formatting of chrono Time Values Alan Talbot 2025-01-13 2025-01 P3148R0 LEWG Library Evolution
P3164R3 Early Diagnostics for Sender Expressions Eric Niebler 2025-01-09 2025-01 P3164R2 LEWG Library Evolution
P3176R1 The Oxford variadic comma Jan Schultke 2024-12-18 2025-01 P3176R0 CWG Core
P3179R5 C++ parallel range algorithms Ruslan Arutyunyan 2025-01-13 2025-01 P3179R4 LEWG Library Evolution
P3206R0 A sender query for completion behaviour Maikel Nadolski 2025-01-13 2025-01   SG1 Concurrency and Parallelism
P3229R0 Making erroneous behaviour compatible with Contracts Timur Doumler 2025-01-13 2025-01   SG21 Contracts,EWG Evolution,LEWG Library Evolution
P3289R1 Consteval blocks Daveed Vandevoorde 2025-01-12 2025-01 P3289R0 EWG Evolution,CWG Core
P3347R1 Invalid/Prospective Pointer Operations Paul E. McKenney 2025-01-11 2025-01 P3347R0 EWG Evolution
P3348R2 C++26 should refer to C23 not C17 Jonathan Wakely 2025-01-13 2025-01 P3348R1 SG6 Numerics,LEWG Library Evolution
P3351R2 views::scan Yihe Li 2025-01-12 2025-01 P3351R1 SG9 Ranges
P3367R3 constexpr coroutines Hana Dusíková 2025-01-06 2025-01 P3367R2 EWG Evolution,LWG Library
P3373R1 Of Operation States and Their Lifetimes Robert Leahy 2025-01-11 2025-01 P3373R0 LEWG Library Evolution
P3374R1 Adding formatter for fpos Liang Jiaming 2025-01-07 2025-01 P3374R0 LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P3375R2 Reproducible floating-point results Guy Davidson 2025-01-13 2025-01 P3375R1 SG6 Numerics,EWGI SG17: EWG Incubator
P3385R3 Attributes reflection Aurelien Cassagnes 2025-01-06 2025-01 P3385R2 SG7 Reflection
P3388R1 When Do You Know connect Doesn't Throw? Robert Leahy 2025-01-11 2025-01 P3388R0 LEWG Library Evolution
P3394R1 Annotations for Reflection Daveed Vandevoorde 2025-01-12 2025-01 P3394R0 SG7 Reflection,LEWG Library Evolution,CWG Core
P3395R0 Formatting of std::error_code Victor Zverovich 2024-12-22 2025-01   SG16 Unicode
P3400R0 Specifying Contract Assertion Properties with Labels Joshua Berne 2025-01-09 2025-01   SG21 Contracts,All of WG21
P3402R2 A Safety Profile Verifying Initialization Marc-André Laverdière 2025-01-13 2025-01 P3402R1 SG23 Safety and Security
P3407R1 Make idiomatic usage of `offsetof` well-defined Brian Bi 2025-01-11 2025-01 P3407R0 EWG Evolution
P3411R1 `any_view` Hui Xie 2025-01-11 2025-01 P3411R0 SG9 Ranges,LEWG Library Evolution
P3412R1 String interpolation Bengt Gustafsson 2025-01-12 2025-01 P3412R0 EWGI SG17: EWG Incubator,EWG Evolution
P3420R1 Reflection of Templates Andrei Alexandrescu 2025-01-13 2025-01 P3420R0 SG7 Reflection
P3423R1 Extending User-Generated Diagnostic Messages Yihe Li 2025-01-12 2025-01 P3423R0 EWG Evolution
P3425R1 Reducing operation-state sizes for subobject child operations Lewis Baker 2025-01-13 2025-01 P3425R0 LEWG Library Evolution
P3430R2 simd issues: explicit, unsequenced, identity-element position, and members of disabled simd Matthias Kretz 2025-01-13 2025-01 P3430R1 LEWG Library Evolution
P3431R0 Deprecate const-qualifier on begin/end of views Jonathan Müller 2025-01-13 2025-01   SG9 Ranges
P3439R1 Chained comparisons: Safe, correct, efficient Herb Sutter 2025-01-06 2025-01 P3439R0 EWG Evolution
P3475R1 Defang and deprecate memory_order::consume Hans Boehm 2025-01-11 2025-01 P3475R0 SG1 Concurrency and Parallelism,EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library
P3477R2 There are exactly 8 bits in a byte JF Bastien 2025-01-11 2025-01 P3477R1 LEWG Library Evolution,CWG Core
P3480R3 std::simd is a range Matthias Kretz 2025-01-13 2025-01 P3480R2 LEWG Library Evolution
P3481R1 std::execution::bulk() issues Lucian Radu Teodorescu 2025-01-13 2025-01 P3481R0 SG1 Concurrency and Parallelism,LEWG Library Evolution
P3491R1 define_static_{string,object,array} Barry Revzin 2025-01-12 2025-01 P3491R0 EWG Evolution,LEWG Library Evolution
P3496R0 Immediate-Escalating Expressions Barry Revzin 2025-01-05 2025-01   EWG Evolution,LEWG Library Evolution
P3499R0 Exploring strict contract predicates Lisa Lippincott 2025-01-13 2025-01   SG21 Contracts,EWG Evolution
P3500R0 Are Contracts "safe"? Timur Doumler 2025-01-13 2025-01   EWG Evolution
P3501R0 The ad-dressing of cats S. Davis Herring 2025-01-10 2025-01   EWG Evolution,CWG Core,LWG Library
P3506R0 P2900 Is Still not Ready for C++26 Gabriel Dos Reis 2025-01-13 2025-01   EWG Evolution
P3516R0 Uninitialized algorithms for relocation Louis Dionne 2025-01-13 2025-01   LEWG Library Evolution
P3527R1 Pattern Matching: *variant-like* and `std::expected` Michael Park 2025-01-13 2025-01 P3527R0 EWG Evolution,LEWG Library Evolution
P3533R1 constexpr virtual inheritance Hana Dusíková 2025-01-10 2025-01 P3533R0 EWG Evolution
P3534R0 Avoid UB When Compiling Code That Violates Library Specification Alisdair Meredith 2025-01-13 2025-01   LWG Library
P3541R1 Violation handlers vs `noexcept` Andrzej Krzemieński 2025-01-06 2025-01 P3541R0 SG21 Contracts,SG23 Safety and Security,EWG Evolution
P3546R0 Explicit return type deduction for std::numeric_limits and numbers Thomas Mejstrik 2024-12-19 2025-01   LEWGI SG18: LEWG Incubator
P3547R0 Modeling Access Control With Reflection Dan Katz 2025-01-09 2025-01   SG7 Reflection,LEWG Library Evolution
P3548R0 P1030 `std::filesystem::path_view` forward progress options Niall Douglas 2025-01-13 2025-01   LEWG Library Evolution
P3549R0 Diverging expressions Barry Revzin 2025-01-12 2025-01   EWG Evolution
P3550R0 Imports cannot ... Alisdair Meredith 2025-01-13 2025-01   EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator
P3552R0 Add a Coroutine Lazy Type Dietmar Kühl 2025-01-13 2025-01   SG1 Concurrency and Parallelism,LEWG Library Evolution
P3554R0 Non-transient allocation with vector and basic_string Barry Revzin 2025-01-05 2025-01   EWG Evolution
P3555R0 An infinite range concept Jonathan Müller 2025-01-13 2025-01   SG9 Ranges
P3557R0 High-Quality Sender Diagnostics with Constexpr Exceptions Eric Niebler 2025-01-12 2025-01   LEWG Library Evolution
P3558R0 Core Language Contracts By Default Joshua Berne 2025-01-12 2025-01   SG21 Contracts,SG23 Safety and Security
P3559R0 Trivial relocation: One trait or two? Arthur O'Dwyer 2025-01-08 2025-01   LEWG Library Evolution
P3560R0 Error Handling in Reflection Barry Revzin 2025-01-12 2025-01   EWG Evolution,LEWG Library Evolution
P3561R0 Index based coproduct operations on variant, and library wording Esa Pulkkinen 2025-01-13 2025-01   LEWGI SG18: LEWG Incubator
P3564R0 Make the concurrent forward progress guarantee usable in `bulk` Mark Hoemmen 2025-01-12 2025-01   SG1 Concurrency and Parallelism
P3565R0 Virtual floating-point values S. Davis Herring 2025-01-10 2025-01   SG6 Numerics
P3566R0 You shall not pass `char*` - Safety concerns working with unbounded null-terminated strings Marco Foco 2025-01-13 2025-01   SG23 Safety and Security,LEWG Library Evolution,LWG Library,ARG ABI Review Group
P3567R0 `flat_meow` Fixes Hui Xie 2025-01-11 2025-01   LEWG Library Evolution,LWG Library
P3568R0 break label; and continue label; Jan Schultke 2025-01-12 2025-01   EWGI SG17: EWG Incubator,SG22 Compatibility
P3569R0 Split define_aggregate from Reflection Shafik Yaghmour 2025-01-11 2025-01   EWG Evolution
P3572R0 Pattern matching Bjarne Stroustrup 2025-01-12 2025-01   EWG Evolution
P3573R0 Contract concerns Bjarne Stroustrup 2025-01-12 2025-01   SG21 Contracts,EWG Evolution,LEWG Library Evolution
P3574R0 Constexpr Callables Steve Downey 2025-01-13 2025-01   LEWG Library Evolution,LWG Library
P3575R0 SG14: Low Latency/Games/Embedded/Financial Trading virtual Meeting Minutes 2024/11/13 Michael Wong 2025-01-12 2025-01   SG14 Low Latency
P3576R0 SG19: Machine Learning virtual Meeting Minutes to 2024/11/14-2024/12/12 Michael Wong 2025-01-12 2025-01   SG19 Machine Learning
P3577R0 Requiring a non-throwing system-provided (default) contract-violation handler John Lakos 2025-01-12 2025-01   SG21 Contracts,EWG Evolution
P3578R0 Language Safety and Grandma Safety Ryan McDougall 2025-01-13 2025-01   SG21 Contracts,SG23 Safety and Security,EWG Evolution
P3579R0 Fix matching of non-type template parameters when matching template template parameters Matheus Izvekov 2025-01-13 2025-01   CWG Core
P3580R0 The Naming of Things Alan Talbot 2025-01-13 2025-01   EWG Evolution,LEWG Library Evolution
P3581R0 No, inplace_vector shouldn't have an Allocator Nevin Liber 2025-01-13 2025-01   LEWG Library Evolution
P3582R0 Observed a contract violation? Skip subsequent assertions! Andrzej Krzemieński 2025-01-13 2025-01   SG21 Contracts,EWG Evolution
P3583R0 Contracts, Types & Functions Jonas Persson 2025-01-13 2025-01   SG21 Contracts
P3584R0 Enrich Facade Creation Facilities for the Pointer-Semantics-Based Polymorphism Library - Proxy Mingxin Wang 2025-01-13 2025-01   LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P3585R0 allocator_traits::is_internally_relocatable Pablo Halpern 2025-01-13 2025-01   LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P3586R0 The Plethora of Problems With Profiles Corentin Jabot 2025-01-13 2025-01   EWG Evolution
P3587R0 Reconsider reflection access for C++26 Lauri Vasama 2025-01-13 2025-01   SG7 Reflection,EWG Evolution
P3588R0 Allow static data members in local and unnamed classes Brian Bi 2025-01-13 2025-01   EWG Evolution
P3589R0 C++ Profiles: The Framework Gabriel Dos Reis 2025-01-13 2025-01   EWG Evolution
P3590R0 Constexpr Coroutines Burdens Daveed Vandevoorde 2025-01-13 2025-01   EWG Evolution,CWG Core

2024-12 Mailing Available

The 2024-12 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4977 2025-11 Kona meeting information Herb Sutter 2024-12-16 2024-12   All of WG21
N4995 WG21 agenda: 18-23 November 2024, Wroclaw, Poland John Spicer 2024-10-28 2024-12   All of WG21
N4997 Hagenberg Meeting Invitation and Information Michael Hava 2024-11-19 2024-12   All of WG21
N4998 WG21 2024-11 Wroclaw Admin telecon minutes Nina Ranns 2024-11-20 2024-12   All of WG21
N4999 WG21 agenda: 10-15 February 2025, Hagenberg, Austria John Spicer 2024-12-02 2024-12   All of WG21
N5000 WG21 November 2024 Hybrid meeting Minutes of Meeting Nina Ranns 2024-12-11 2024-12   All of WG21
N5001 Working Draft, Programming Languages -- C++ Thomas Köppe 2024-12-17 2024-12   All of WG21
N5002 Editors' Report, Programming Languages -- C++ Thomas Köppe 2024-12-17 2024-12   All of WG21
N5003 2025 WG21 admin telecon meetings Herb Sutter 2024-12-16 2024-12   All of WG21
P0178R1 Allocators and swap Alisdair Meredith 2024-12-17 2024-12 P0178R0 LWG Library
P0260R12 C++ Concurrent Queues Detlef Vollmann 2024-11-21 2024-12 P0260R11 SG1 Concurrency and Parallelism,LEWG Library Evolution
P0260R13 C++ Concurrent Queues Detlef Vollmann 2024-12-10 2024-12 P0260R12 SG1 Concurrency and Parallelism,LEWG Library Evolution
P0447R27 Introduction of std::hive to the standard library Matt Bentley 2024-12-03 2024-12 P0447R26 SG14 Low Latency,LEWG Library Evolution,LWG Library,All of WG21
P0447R28 Introduction of std::hive to the standard library Matt Bentley 2024-12-16 2024-12 P0447R27 SG14 Low Latency,LEWG Library Evolution,LWG Library,All of WG21
P0472R3 Put std::monostate in <utility> David Sankel 2024-11-18 2024-12 P0472R2 LEWG Library Evolution
P1040R7 std::embed and #depend JeanHeyd Meneide 2024-12-15 2024-12 P1040R6 EWG Evolution
P1061R10 Structured Bindings can introduce a Pack Barry Revzin 2024-11-24 2024-12 P1061R9 CWG Core
P1928R13 std::simd - Merge data-parallel types from the Parallelism TS 2 Matthias Kretz 2024-11-22 2024-12 P1928R12 LWG Library
P1928R14 std::simd - Merge data-parallel types from the Parallelism TS 2 Matthias Kretz 2024-11-22 2024-12 P1928R13 LWG Library
P1928R15 std::simd - Merge data-parallel types from the Parallelism TS 2 Matthias Kretz 2024-11-22 2024-12 P1928R14 LWG Library
P1967R13 #embed - a simple, scannable preprocessor-based resource acquisition method JeanHeyd Meneide 2024-12-15 2024-12 P1967R12 EWG Evolution,CWG Core
P2014R1 Proposed resolution for US061/US062 - aligned allocation of coroutine frames Lewis Baker 2024-10-29 2024-12 P2014R0 CWG Core
P2014R2 Proposed resolution for US061/US062 - aligned allocation of coroutine frames Lewis Baker 2024-10-29 2024-12 P2014R1 CWG Core
P2319R3 Prevent path presentation problems Victor Zverovich 2024-11-18 2024-12 P2319R2 LEWG Library Evolution
P2319R4 Prevent path presentation problems Victor Zverovich 2024-12-07 2024-12 P2319R3 LEWG Library Evolution
P2645R1 path_view: a design that took a wrong turn Victor Zverovich 2024-11-17 2024-12 P2645R0 LEWG Library Evolution
P2645R1 path_view: a design that took a wrong turn Victor Zverovich 2024-11-17 2024-12 P2645R0 LEWG Library Evolution
P2656R4 WITHDRAWN: C++ Ecosystem International Standard René Ferdinand Rivera Morell 2024-12-16 2024-12 P2656R3 All of WG21
P2686R5 constexpr structured bindings and references to constexpr variables Corentin Jabot 2024-11-12 2024-12 P2686R4 CWG Core
P2688R4 Pattern Matching: `match` Expression Michael Park 2024-12-17 2024-12 P2688R3 EWG Evolution
P2717R6 WITHDRAWN: Tool Introspection René Ferdinand Rivera Morell 2024-12-16 2024-12 P2717R5 All of WG21
P2781R5 std::constexpr_wrapper Zach Laine 2024-11-14 2024-12 P2781R4 LEWG Library Evolution
P2786R10 Trivial Relocatability For C++26 Pablo Halpern 2024-11-21 2024-12 P2786R9 LEWG Library Evolution
P2786R11 Trivial Relocatability For C++26 Pablo Halpern 2024-12-17 2024-12 P2786R10 EWG Evolution,LEWG Library Evolution
P2786R9 Trivial Relocatability For C++26 Pablo Halpern 2024-11-15 2024-12 P2786R8 EWG Evolution,LEWG Library Evolution
P2825R3 Overload resolution hook: declcall( unevaluated-call-expression ) Gašper Ažman 2024-12-16 2024-12 P2825R2 EWG Evolution,CWG Core
P2830R5 Standardized Constexpr Type Ordering Gašper Ažman 2024-11-20 2024-12 P2830R4 EWG Evolution,LEWG Library Evolution,CWG Core
P2830R6 Standardized Constexpr Type Ordering Gašper Ažman 2024-11-20 2024-12 P2830R5 EWG Evolution,LEWG Library Evolution,CWG Core
P2830R7 Standardized Constexpr Type Ordering Gašper Ažman 2024-11-21 2024-12 P2830R6 EWG Evolution,LEWG Library Evolution,CWG Core
P2835R7 Expose std::atomic_ref's object address Gonzalo Brito Gadeschi 2024-11-18 2024-12 P2835R6 LWG Library
P2846R5 reserve_hint: Eagerly reserving memory for not-quite-sized lazy ranges Corentin Jabot 2024-11-27 2024-12 P2846R4 LEWG Library Evolution
P2863R8 Review Annex D for C++26 Alisdair Meredith 2024-12-13 2024-12 P2863R7 EWG Evolution,LEWG Library Evolution
P2865R6 Remove Deprecated Array Comparisons from C++26 Alisdair Meredith 2024-11-22 2024-12 P2865R5 CWG Core
P2866R5 Remove Deprecated Volatile Features From C++26 Alisdair Meredith 2024-12-17 2024-12 P2866R4 EWG Evolution,CWG Core,LWG Library
P2897R6 aligned_accessor: An mdspan accessor expressing pointer overalignment Mark Hoemmen 2024-11-18 2024-12 P2897R5 LEWG Library Evolution,LWG Library
P2897R7 aligned_accessor: An mdspan accessor expressing pointer overalignment Mark Hoemmen 2024-11-22 2024-12 P2897R6 LWG Library
P2900R11 Contracts for C++ Joshua Berne 2024-11-19 2024-12 P2900R10 EWG Evolution,LEWG Library Evolution
P2900R12 Contracts for C++ Joshua Berne 2024-12-17 2024-12 P2900R11 CWG Core,LWG Library
P2996R8 Reflection for C++26 Barry Revzin 2024-12-16 2024-12 P2996R7 EWG Evolution
P3008R3 Atomic floating-point min/max Gonzalo Brito Gadeschi 2024-11-18 2024-12 P3008R2 LWG Library
P3016R5 Resolve inconsistencies in begin/end for valarray and braced initializer lists Arthur O'Dwyer 2024-12-16 2024-12 P3016R4 LEWG Library Evolution
P3019R11 Vocabulary Types for Composite Class Design Jonathan Coe 2024-11-23 2024-12 P3019R10 LEWG Library Evolution,LWG Library
P3037R4 constexpr std::shared_ptr Paul Keir 2024-10-21 2024-12 P3037R3 LEWG Library Evolution
P3045R4 Quantities and units library Mateusz Pusz 2024-11-15 2024-12 P3045R3 SG6 Numerics,SG16 Unicode,LEWG Library Evolution
P3050R3 Fix C++26 by optimizing linalg::conjugated for noncomplex value types Mark Hoemmen 2024-10-29 2024-12 P3050R2 LEWG Library Evolution
P3051R3 WITHDRAWN: Structured Response Files René Ferdinand Rivera Morell 2024-12-16 2024-12 P3051R2 All of WG21
P3068R5 Allowing exception throwing in constant-evaluation Hana Dusíková 2024-11-19 2024-12 P3068R4 CWG Core,LWG Library
P3068R6 Allowing exception throwing in constant-evaluation Hana Dusíková 2024-11-19 2024-12 P3068R5 CWG Core,LWG Library
P3074R5 trivial unions (was std::uninitialized<T>) Barry Revzin 2024-12-17 2024-12 P3074R4 EWG Evolution
P3096R4 Function Parameter Reflection in Reflection for C++26 Adam Lach 2024-11-21 2024-12 P3096R3 LEWG Library Evolution
P3096R5 Function Parameter Reflection in Reflection for C++26 Adam Lach 2024-12-14 2024-12 P3096R4 LEWG Library Evolution,LWG Library
P3098R1 Contracts for C++: Postcondition captures Timur Doumler 2024-12-11 2024-12 P3098R0 SG21 Contracts,EWG Evolution
P3111R1 Atomic Reduction Operations Gonzalo Brito Gadeschi 2024-11-18 2024-12 P3111R0 SG1 Concurrency and Parallelism
P3111R2 Atomic Reduction Operations Gonzalo Brito Gadeschi 2024-11-25 2024-12 P3111R1 EWG Evolution,LEWG Library Evolution
P3117R1 Extending Conditionally Borrowed Zach Laine 2024-12-14 2024-12 P3117R0 SG9 Ranges,LEWG Library Evolution
P3125R2 constexpr pointer tagging Hana Dusíková 2024-11-27 2024-12 P3125R1 LEWG Library Evolution
P3136R1 Retiring niebloids Tim Song 2024-11-18 2024-12 P3136R0 LWG Library
P3138R4 views::cache_latest Tim Song 2024-10-23 2024-12 P3138R3 LEWG Library Evolution,LWG Library
P3138R5 views::cache_latest Tim Song 2024-11-18 2024-12 P3138R4 LWG Library
P3146R2 Clarifying std::variant converting construction Giuseppe D'Angelo 2024-11-02 2024-12 P3146R1 LEWG Library Evolution,LWG Library
P3149R7 async_scope -- Creating scopes for non-sequential concurrency Ian Petersen 2024-11-18 2024-12 P3149R6 SG1 Concurrency and Parallelism,LEWG Library Evolution
P3149R8 async_scope -- Creating scopes for non-sequential concurrency Ian Petersen 2024-11-22 2024-12 P3149R7 SG1 Concurrency and Parallelism,LEWG Library Evolution
P3152R1 Add missing constructors and assignment for indirect and polymorphic Jonathan Coe 2024-11-21 2024-12 P3152R0 LEWG Library Evolution
P3179R4 C++ parallel range algorithms Ruslan Arutyunyan 2024-12-10 2024-12 P3179R3 LEWG Library Evolution
P3185R0 A proposed direction for C++ Standard Networking based on IETF TAPS Thomas Rodgers 2024-12-14 2024-12   SG4 Networking
P3204R0 Why Contracts? Joshua Berne 2024-11-07 2024-12   SG21 Contracts,EWG Evolution
P3222R1 Fix C++26 by adding transposed special cases for P2642 layouts Mark Hoemmen 2024-10-29 2024-12 P3222R0 LEWG Library Evolution
P3227R1 Fixing the library API for contract violation handling Gašper Ažman 2024-10-24 2024-12 P3227R0 SG21 Contracts,LEWG Library Evolution
P3230R1 views::unchecked_(take|drop) Hewill Kang 2024-12-01 2024-12 P3230R0 SG9 Ranges,LEWG Library Evolution,LWG Library
P3232R1 User-defined erroneous behaviour Thomas Köppe 2024-12-15 2024-12 P3232R0 SG12 Undefined and Unspecified Behavior,SG23 Safety and Security,EWG Evolution,LEWG Library Evolution
P3237R2 Matrix Representation of Contract Semantics Andrei Zissu 2024-10-23 2024-12 P3237R1 SG21 Contracts
P3247R2 Deprecate the notion of trivial types Jens Maurer 2024-10-28 2024-12 P3247R1 CWG Core,LWG Library
P3261R2 Revisiting `const`-ification in Contract Assertions Joshua Berne 2024-11-25 2024-12 P3261R1 SG21 Contracts,EWG Evolution
P3284R2 `write_env` and `unstoppable` Sender Adaptors Eric Niebler 2024-11-21 2024-12 P3284R1 LEWG Library Evolution
P3287R2 Exploration of namespaces for std::simd Matthias Kretz 2024-11-13 2024-12 P3287R1 LEWG Library Evolution
P3296R3 let_async_scope Anthony Williams 2024-11-19 2024-12 P3296R2 SG1 Concurrency and Parallelism,LEWG Library Evolution
P3299R3 Range constructors for std::simd Daniel Towner 2024-12-17 2024-12 P3299R2 LEWG Library Evolution,LWG Library
P3309R3 constexpr atomic and atomic_ref Hana Dusíková 2024-12-16 2024-12 P3309R2 LWG Library
P3310R5 Solving issues introduced by relaxed template template parameter matching Matheus Izvekov 2024-11-21 2024-12 P3310R4 EWG Evolution,CWG Core
P3319R2 Add an iota object for simd (and more) Matthias Kretz 2024-11-19 2024-12 P3319R1 LEWG Library Evolution
P3323R1 cv-qualified types in atomic and atomic_ref Gonzalo Brito Gadeschi 2024-11-18 2024-12 P3323R0 LWG Library
P3325R4 A Utility for Creating Execution Environments Eric Niebler 2024-11-21 2024-12 P3325R3 LWG Library
P3325R5 A Utility for Creating Execution Environments Eric Niebler 2024-11-22 2024-12 P3325R4 LWG Library
P3329R0 Healing the C++ Filter View Nicolai Josuttis 2024-11-13 2024-12   SG9 Ranges,LEWG Library Evolution,LWG Library
P3335R3 Structured Core Options René Ferdinand Rivera Morell 2024-11-21 2024-12 P3335R2 SG15 Tooling
P3335R4 WITHDRAWN: Structured Core Options René Ferdinand Rivera Morell 2024-12-16 2024-12 P3335R3 All of WG21
P3339R1 WITHDRAWN: C++ Ecosystem IS Open License René Ferdinand Rivera Morell 2024-12-16 2024-12 P3339R0 All of WG21
P3342R1 Working Draft, Standard for C++ Ecosystem René Ferdinand Rivera Morell 2024-11-21 2024-12 P3342R0 EWG Evolution,CWG Core
P3342R2 WITHDRAWN: Working Draft, Standard for C++ Ecosystem René Ferdinand Rivera Morell 2024-12-16 2024-12 P3342R1 All of WG21
P3355R2 Fix submdspan for C++26 Mark Hoemmen 2024-10-29 2024-12 P3355R1 LWG Library
P3367R1 constexpr coroutines Hana Dusíková 2024-11-29 2024-12 P3367R0 CWG Core
P3367R2 constexpr coroutines Hana Dusíková 2024-12-16 2024-12 P3367R1 EWG Evolution,LWG Library
P3371R3 Fix C++26 by making the rank-1, rank-2, rank-k, and rank-2k updates consistent with the BLAS Mark Hoemmen 2024-10-29 2024-12 P3371R2 LEWG Library Evolution
P3378R1 constexpr exception types Hana Dusíková 2024-12-16 2024-12 P3378R0 LEWG Library Evolution
P3380R1 Extending support for class types as non-type template parameters Barry Revzin 2024-12-17 2024-12 P3380R0 EWG Evolution
P3383R1 mdspan.at() Stephan Lachnit 2024-11-23 2024-12 P3383R0 LEWG Library Evolution
P3385R2 Attributes reflection Aurelien Cassagnes 2024-12-11 2024-12 P3385R1 SG7 Reflection
P3386R1 Static Analysis of Contracts with P2900 Joshua Berne 2024-11-25 2024-12 P3386R0 EWG Evolution
P3396R1 std::execution wording fixes Lewis Baker 2024-11-19 2024-12 P3396R0 LWG Library
P3409R1 Enabling more efficient stop-token based cancellation of senders Lewis Baker 2024-11-17 2024-12 P3409R0 SG1 Concurrency and Parallelism
P3422R1 Allow main function in named modules Chuanqi Xu 2024-11-27 2024-12 P3422R0 EWG Evolution
P3424R0 Define Delete With Throwing Exception Specification Alisdair Meredith 2024-12-17 2024-12   LEWGI SG18: LEWG Incubator,EWG Evolution
P3427R1 Hazard Pointer Synchronous Reclamation Maged Michael 2024-12-11 2024-12 P3427R0 SG1 Concurrency and Parallelism
P3428R1 Hazard Pointer Batches Maged Michael 2024-12-11 2024-12 P3428R0 SG1 Concurrency and Parallelism
P3429R1 Reflection header should minimize standard library dependencies Jonathan Müller 2024-11-29 2024-12 P3429R0 LEWG Library Evolution
P3430R1 simd issues: explicit, unsequenced, identity-element position, and members of disabled simd Matthias Kretz 2024-11-22 2024-12 P3430R0 LEWG Library Evolution
P3436R1 Strategy for removing safety-related undefined behavior by default Herb Sutter 2024-11-07 2024-12 P3436R0 SG23 Safety and Security,EWG Evolution
P3437R1 Proposed principles: Reflect C++, generate C++ (by default) Herb Sutter 2024-11-07 2024-12 P3437R0 SG7 Reflection,EWG Evolution
P3449R1 constexpr std::generator Hana Dusíková 2024-12-16 2024-12 P3449R0 LWG Library
P3466R1 (Re)affirm design principles for future C++ evolution Herb Sutter 2024-11-24 2024-12 P3466R0 EWG Evolution
P3468R0 2024-10 Library Evolution Poll Outcomes Inbal Levi 2024-12-16 2024-12   LEWG Library Evolution
P3471R1 Standard Library Hardening Konstantin Varlamov 2024-11-21 2024-12 P3471R0 SG23 Safety and Security,LEWG Library Evolution
P3471R2 Standard Library Hardening Konstantin Varlamov 2024-12-14 2024-12 P3471R1 SG23 Safety and Security,LEWG Library Evolution
P3477R1 There are exactly 8 bits in a byte JF Bastien 2024-11-21 2024-12 P3477R0 SG22 Compatibility,LEWG Library Evolution,CWG Core
P3480R1 std::simd is a range Matthias Kretz 2024-11-13 2024-12 P3480R0 SG9 Ranges,LEWG Library Evolution
P3480R2 std::simd is a range Matthias Kretz 2024-11-22 2024-12 P3480R1 LEWG Library Evolution
P3482R0 Proposed API for creating TAPS based networking connections Thomas W Rodgers 2024-12-14 2024-12   SG4 Networking
P3483R0 Contracts for C++: Pre-Wroclaw technical clarifications Timur Doumler 2024-10-31 2024-12   SG21 Contracts,EWG Evolution
P3483R1 Contracts for C++: Pre-Wroclaw technical clarifications Timur Doumler 2024-11-04 2024-12 P3483R0 SG21 Contracts,EWG Evolution
P3484R0 Postconditions odr-using a parameter modified in an overriding function Timur Doumler 2024-11-01 2024-12   SG21 Contracts,EWG Evolution
P3484R1 Postconditions odr-using a parameter modified in an overriding function Timur Doumler 2024-11-07 2024-12 P3484R0 SG21 Contracts,EWG Evolution
P3484R2 Postconditions odr-using a parameter modified in an overriding function Timur Doumler 2024-11-14 2024-12 P3484R1 SG21 Contracts,EWG Evolution
P3485R0 Grouping using declarations with braces Barry Revzin 2024-10-29 2024-12   EWG Evolution
P3487R0 Postconditions odr-using a parameter that may be passed in registers Timur Doumler 2024-11-07 2024-12   SG21 Contracts,EWG Evolution
P3488R0 Floating-Point Excess Precision Matthias Kretz 2024-11-14 2024-12   SG6 Numerics,EWG Evolution
P3488R1 Floating-Point Excess Precision Matthias Kretz 2024-11-20 2024-12 P3488R0 EWG Evolution
P3489R0 Postconditions odr-using a parameter of dependent type Timur Doumler 2024-11-07 2024-12   SG21 Contracts,EWG Evolution
P3490R0 Justification for ranges as the output of parallel range algorithms Alexey Kukanov 2024-11-14 2024-12   SG1 Concurrency and Parallelism,SG9 Ranges
P3491R0 define_static_{string,object,array} Barry Revzin 2024-12-15 2024-12   LEWG Library Evolution
P3492R0 Sized deallocation for placement new Lauri Vasama 2024-11-22 2024-12   EWGI SG17: EWG Incubator
P3493R0 Ruminations on reflection and access Ville Voutilainen 2024-11-10 2024-12   SG7 Reflection,LEWG Library Evolution
P3495R0 Remarks on Basic Statistics, P1708R9 Oliver Rosten 2024-11-13 2024-12   SG19 Machine Learning,LEWG Library Evolution,LWG Library
P3497R0 Guarded Objects Jan Wilmans 2024-11-11 2024-12   SG1 Concurrency and Parallelism
P3498R0 Stop the Bleeding but, First, Do No Harm Gabriel Dos Reis 2024-11-14 2024-12   SG23 Safety and Security,EWG Evolution
P3502R0 Slides for D2900R11 - Contracts for C++ Timur Doumler 2024-11-18 2024-12   EWG Evolution
P3503R0 Make type-erased allocator use in promise and packaged_task consistent Nicolas Morales 2024-11-21 2024-12   LEWG Library Evolution
P3504R0 C++ Standard Library Ready Issues to be moved in Wroclaw, Nov. 2024 Jonathan Wakely 2024-11-18 2024-12   All of WG21
P3508R0 Wording for constexpr for specialized memory algorithms Giuseppe D'Angelo 2024-11-20 2024-12   LWG Library
P3510R0 Leftover properties of `this` in constructor preconditions Nathan Myers 2024-11-20 2024-12   SG21 Contracts
P3510R1 Leftover properties of `this` in constructor preconditions Nathan Myers 2024-11-21 2024-12 P3510R0 SG21 Contracts
P3510R2 Leftover properties of `this` in constructor preconditions Nathan Myers 2024-12-04 2024-12 P3510R1 SG21 Contracts
P3517R0 Slides presented to LEWG on trivial relocation in Wroclaw Alisdair Meredith 2024-11-20 2024-12   LEWG Library Evolution
P3518R0 Slides for Standardized Constexpr Type Ordering Gašper Ažman 2024-11-20 2024-12   EWG Evolution
P3519R0 Slides for P3425 presentation to LEWG Lewis Baker 2024-11-20 2024-12   LEWG Library Evolution
P3520R0 Wroclaw Technical Fixes to Contracts Timur Doumler 2024-11-21 2024-12   SG21 Contracts,EWG Evolution
P3521R0 Pattern Matching: Customization Point for Open Sum Types Michael Park 2024-12-17 2024-12   EWG Evolution,LEWG Library Evolution
P3524R0 Core Language Working Group "ready" Issues for the November, 2024 meeting Jens Maurer 2024-11-23 2024-12   CWG Core
P3525R0 Explicit Implicit Template Regions Barry Revzin 2024-12-16 2024-12   EWG Evolution
P3527R0 Pattern Matching: *variant-like* and `std::expected` Michael Park 2024-12-17 2024-12   EWG Evolution,LEWG Library Evolution
P3530R0 Intrinsic for reading uninitialized memory Boleyn Su 2024-12-17 2024-12   EWGI SG17: EWG Incubator,EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library

Smart Pointers and the Pointer to Implementation Idiom -- Andreas Fertig

me.pngA post I wrote back in 2023 When an empty destructor is required resulted in feedback that I'd like to address in today's post.

Smart Pointers and the Pointer to Implementation Idiom

by Andreas Fertig

From the article:

In the 2023 post, I briefly mentioned PImpl idiom. I did not intend to make it the theme of the post. However, I got various questions about PImpl and smart pointers.

The goal of PImpl is to hide implementation details from clients. Since you can declare a pointer of an unknown class, you can shift the entire implementation of such an anonymous class into a .cpp file. That way, no client can see any details. Another benefit is that changes to that .cpp file result in only minor recompiles. Maintaining the same in a header file would cause all .cpp files, including this header, to recompile. At least the speed-up part is since C++20's modules are no longer necessary. And as long as you don't want to hide classified implementation in the .cpp file modules, it also gives you the ability to mark constructs as private.

 

2024-10 Mailing Available

The 2024-10 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4991 2025 Sofia Meeting Invitation and Information Vassil Vassilev 2024-10-16 2024-10   All of WG21
N4993 Working Draft, Programming Languages -- C++ Thomas Köppe 2024-10-16 2024-10   All of WG21
N4994 Editors' Report, Programming Languages -- C++ Thomas Köppe 2024-10-16 2024-10   All of WG21
P0260R11 C++ Concurrent Queues Detlef Vollmann 2024-10-12 2024-10 P0260R10 SG1 Concurrency and Parallelism,LEWG Library Evolution
P0707R5 Metaclass functions for generative C++ Herb Sutter 2024-10-15 2024-10 P0707R4 SG7 Reflection,EWG Evolution
P0876R18 fiber_context - fibers without scheduler Oliver Kowalke 2024-10-16 2024-10 P0876R17 EWG Evolution,CWG Core,LWG Library
P1144R12 std::is_trivially_relocatable Arthur O'Dwyer 2024-10-14 2024-10 P1144R11 EWGI SG17: EWG Incubator
P1255R14 A view of 0 or 1 elements: views::nullable And a concept to constrain maybes Steve Downey 2024-10-16 2024-10 P1255R13 LEWG Library Evolution,LWG Library
P1306R3 Expansion statements Dan Katz 2024-10-14 2024-10 P1306R2 EWG Evolution
P1494R4 Partial program correctness S. Davis Herring 2024-10-15 2024-10 P1494R3 SG22 Compatibility,EWG Evolution,LEWG Library Evolution,CWG Core
P1708R9 Basic Statistics Richard Dosselmann 2024-10-14 2024-10 P1708R8 SG6 Numerics,SG14 Low Latency,SG19 Machine Learning,LEWG Library Evolution,LWG Library
P1729R5 Text Parsing Elias Kosunen 2024-10-15 2024-10 P1729R4 SG16 Unicode,LEWG Library Evolution
P1839R6 Accessing object representations Brian Bi 2024-10-14 2024-10 P1839R5 CWG Core
P1928R12 std::simd - Merge data-parallel types from the Parallelism TS 2 Matthias Kretz 2024-10-11 2024-10 P1928R11 LWG Library
P2079R5 System execution context Lucian Radu Teodorescu 2024-10-16 2024-10 P2079R4 SG1 Concurrency and Parallelism,LEWG Library Evolution
P2319R2 Prevent path presentation problems Victor Zverovich 2024-09-28 2024-10 P2319R1 LEWG Library Evolution
P2392R3 Pattern matching using is and as Herb Sutter 2024-10-16 2024-10 P2392R2 EWG Evolution
P2434R2 Nondeterministic pointer provenance S. Davis Herring 2024-10-15 2024-10 P2434R1 SG22 Compatibility,EWG Evolution,CWG Core
P2645R0 path_view: a design that took a wrong turn Victor Zverovich 2024-10-12 2024-10   LEWG Library Evolution
P2664R8 Proposal to extend std::simd with permutation API Daniel Towner 2024-10-15 2024-10 P2664R7 SG1 Concurrency and Parallelism,LEWG Library Evolution
P2688R3 Pattern Matching: `match` Expression Michael Park 2024-10-16 2024-10 P2688R2 EWG Evolution
P2719R1 Type-aware allocation and deallocation functions Louis Dionne 2024-10-16 2024-10 P2719R0 EWG Evolution
P2728R7 Unicode in the Library, Part 1: UTF Transcoding Zach Laine 2024-10-07 2024-10 P2728R6 SG9 Ranges,SG16 Unicode,LEWG Library Evolution
P2746R6 Deprecate and Replace Fenv Rounding Modes Hans Boehm 2024-10-14 2024-10 P2746R5 SG6 Numerics,LEWG Library Evolution
P2769R3 get_element customization point object Ruslan Arutyunyan 2024-10-16 2024-10 P2769R2 LEWG Library Evolution
P2786R8 Trivial Relocatability For C++26 Mungo Gill 2024-10-16 2024-10 P2786R7 EWG Evolution,LEWG Library Evolution
P2841R5 Concept and variable-template template-parameters Corentin Jabot 2024-10-16 2024-10 P2841R4 CWG Core
P2846R4 reserve_hint: Eagerly reserving memory for not-quite-sized lazy ranges Corentin Jabot 2024-10-15 2024-10 P2846R3 LEWG Library Evolution
P2900R10 Contracts for C++ Joshua Berne 2024-10-13 2024-10 P2900R9 EWG Evolution,LEWG Library Evolution
P2900R9 Contracts for C++ Joshua Berne 2024-10-13 2024-10 P2900R8 EWG Evolution,LEWG Library Evolution
P2933R2 std::simd overloads for <bit> header Daniel Towner 2024-10-16 2024-10 P2933R1 LWG Library
P2957R2 Contracts and coroutines Andrzej Krzemieński 2024-10-14 2024-10 P2957R1 SG21 Contracts,EWG Evolution
P2977R2 Build database files Ben Boeckel 2024-10-15 2024-10 P2977R1 SG15 Tooling
P2988R8 std::optional<T&> Steve Downey 2024-10-15 2024-10 P2988R7 LEWG Library Evolution,LWG Library
P2996R6 Reflection for C++26 Barry Revzin 2024-10-09 2024-10 P2996R5 EWG Evolution
P2996R7 Reflection for C++26 Barry Revzin 2024-10-12 2024-10 P2996R6 EWG Evolution
P2998R0 CTAD for function parameter types James Touton 2024-10-15 2024-10   EWGI SG17: EWG Incubator,EWG Evolution
P3019R10 Vocabulary Types for Composite Class Design Jonathan Coe 2024-09-30 2024-10 P3019R9 LEWG Library Evolution,LWG Library
P3045R2 Quantities and units library Mateusz Pusz 2024-10-09 2024-10 P3045R1 SG6 Numerics,SG16 Unicode,LEWG Library Evolution
P3045R3 Quantities and units library Mateusz Pusz 2024-10-15 2024-10 P3045R2 SG6 Numerics,SG16 Unicode,LEWG Library Evolution
P3049R1 node-handles for lists Michael Florian Hava 2024-10-15 2024-10 P3049R0 LEWG Library Evolution
P3070R1 Formatting enums Victor Zverovich 2024-10-13 2024-10 P3070R0 LEWG Library Evolution
P3081R0 Core safety Profiles: Specification, adoptability, and impact Herb Sutter 2024-10-15 2024-10   SG15 Tooling,SG23 Safety and Security,EWG Evolution
P3091R3 Better lookups for `map` and `unordered_map` Pablo Halpern 2024-10-14 2024-10 P3091R2 LEWG Library Evolution
P3094R4 std::basic_fixed_string Mateusz Pusz 2024-10-09 2024-10 P3094R3 SG16 Unicode,LEWG Library Evolution
P3094R5 std::basic_fixed_string Mateusz Pusz 2024-10-15 2024-10 P3094R4 LEWG Library Evolution
P3098R0 Contracts for C++: Postcondition captures Timur Doumler 2024-10-14 2024-10   SG21 Contracts,EWG Evolution
P3100R1 Undefined and erroneous behaviour are contract violations Timur Doumler 2024-10-16 2024-10 P3100R0 SG21 Contracts,SG23 Safety and Security,EWG Evolution
P3100R1 Undefined and erroneous behaviour are contract violations Timur Doumler 2024-10-16 2024-10 P3100R0 SG21 Contracts,SG23 Safety and Security,EWG Evolution
P3125R1 constexpr pointer tagging Hana Dusíková 2024-10-16 2024-10 P3125R0 SG1 Concurrency and Parallelism,LEWG Library Evolution
P3138R3 views::cache_latest Tim Song 2024-10-15 2024-10 P3138R2 LEWG Library Evolution
P3149R6 async_scope -- Creating scopes for non-sequential concurrency Ian Petersen 2024-10-15 2024-10 P3149R5 SG1 Concurrency and Parallelism,LEWG Library Evolution
P3152R0 Add missing constructors and assignment for indirect and polymorphic Jonathan Coe 2024-09-30 2024-10   LEWG Library Evolution
P3160R2 An allocator-aware `inplace_vector` Pablo Halpern 2024-10-14 2024-10 P3160R1 LEWG Library Evolution
P3179R3 C++ parallel range algorithms Ruslan Arutyunyan 2024-10-16 2024-10 P3179R2 SG1 Concurrency and Parallelism,SG9 Ranges,LEWG Library Evolution
P3227R0 Contracts for C++: Fixing the contract violation handling API Gašper Ažman 2024-10-16 2024-10   SG21 Contracts,LEWG Library Evolution
P3237R1 Matrix Representation of Contract Semantics Andrei Zissu 2024-10-16 2024-10 P3237R0 SG21 Contracts
P3261R0 Revisiting `const`-ification in Contract Assertions Joshua Berne 2024-10-02 2024-10   SG21 Contracts,EWG Evolution
P3261R1 Revisiting `const`-ification in Contract Assertions Joshua Berne 2024-10-13 2024-10 P3261R0 SG21 Contracts,EWG Evolution
P3271R1 Function Types with Usage (Contracts for Function Pointers) Lisa Lippincott 2024-10-14 2024-10 P3271R0 SG21 Contracts
P3287R1 Exploration of namespaces for std::simd Matthias Kretz 2024-10-15 2024-10 P3287R0 LEWG Library Evolution
P3293R1 Splicing a base class subobject Barry Revzin 2024-10-13 2024-10 P3293R0 EWG Evolution
P3294R2 Code Injection with Token Sequences Barry Revzin 2024-10-15 2024-10 P3294R1 SG7 Reflection,EWG Evolution
P3295R2 Freestanding constexpr containers and constexpr exception types Ben Craig 2024-10-12 2024-10 P3295R1 LEWG Library Evolution
P3296R2 let_async_scope Anthony Williams 2024-10-14 2024-10 P3296R1 SG1 Concurrency and Parallelism,LEWG Library Evolution
P3298R1 Implicit user-defined conversion functions as operator.() Bengt Gustafsson 2024-10-15 2024-10 P3298R0 EWG Evolution
P3299R2 Range constructors for std::simd Daniel Towner 2024-10-16 2024-10 P3299R1 LEWG Library Evolution
P3310R3 Solving partial ordering issues introduced by P0522R0 Matheus Izvekov 2024-10-14 2024-10 P3310R2 EWG Evolution,CWG Core
P3310R4 Solving issues introduced by P0522R0 Matheus Izvekov 2024-10-15 2024-10 P3310R3 EWG Evolution,CWG Core
P3324R0 Attributes for namespace aliases, template parameters, and lambda captures Tom Honermann 2024-10-14 2024-10   EWG Evolution
P3327R0 Contract assertions on function pointers Timur Doumler 2024-10-16 2024-10   SG21 Contracts,EWG Evolution
P3334R0 Cross Static Variables Coral Kashri 2024-10-15 2024-10   SG7 Reflection,EWGI SG17: EWG Incubator
P3335R2 Structured Core Options René Ferdinand Rivera Morell 2024-10-15 2024-10 P3335R1 SG15 Tooling
P3346R0 thread_local means fiber-specific Nat Goodspeed 2024-10-16 2024-10   EWG Evolution,LEWG Library Evolution
P3348R1 C++26 should refer to C23 not C17 Jonathan Wakely 2024-10-14 2024-10 P3348R0 SG6 Numerics,LEWG Library Evolution
P3349R0 Converting contiguous iterators to pointers Jonathan Wakely 2024-10-16 2024-10   LEWG Library Evolution
P3351R1 views::scan Yihe Li 2024-10-09 2024-10 P3351R0 SG9 Ranges
P3352R0 Taming the Demons (C++ version) - Undefined Behavior and Partial Program Correctness Andrew Tomazos, Martin Uecker 2024-09-19 2024-10   SG22 Compatibility,EWG Evolution
P3355R1 Fix submdspan for C++26 Mark Hoemmen 2024-10-15 2024-10 P3355R0 LWG Library
P3367R0 constexpr coroutines Hana Dusíková 2024-10-16 2024-10   EWG Evolution,LEWG Library Evolution
P3370R1 Add new library headers from C23 Jens Maurer 2024-10-06 2024-10 P3370R0 LEWG Library Evolution
P3371R2 Fix C++26 by making the rank-1, rank-2, rank-k, and rank-2k updates consistent with the BLAS Mark Hoemmen 2024-10-14 2024-10 P3371R1 LEWG Library Evolution
P3372R2 constexpr containers and adapters Hana Dusíková 2024-10-08 2024-10 P3372R1 LEWG Library Evolution
P3375R1 Reproducible floating-point results Guy Davidson 2024-10-08 2024-10 P3375R0 SG6 Numerics,SG14 Low Latency,LEWG Library Evolution
P3376R0 Contract assertions versus static analysis and 'safety' Andrzej Krzemieński 2024-10-14 2024-10   SG21 Contracts,EWG Evolution
P3378R0 constexpr exception types Hana Dusíková 2024-10-14 2024-10   LEWG Library Evolution
P3385R1 Attributes reflection Aurelien Cassagnes 2024-10-14 2024-10 P3385R0 SG7 Reflection
P3386R0 Static Analysis of Contracts with P2900 Joshua Berne 2024-10-15 2024-10   EWG Evolution
P3387R0 Contract assertions on coroutines Timur Doumler 2024-10-09 2024-10   SG21 Contracts,EWG Evolution
P3394R0 Annotations for Reflection Daveed Vandevoorde 2024-10-14 2024-10   SG7 Reflection,EWG Evolution
P3399R0 Adjusting Electronic Polls to a Hybrid Workflow Inbal Levi 2024-10-16 2024-10   LEWG Library Evolution,All of WG21
P3402R1 A Safety Profile Verifying Class Initialization Marc-André Laverdière 2024-10-14 2024-10 P3402R0 SG23 Safety and Security
P3403R0 The Undefined Behavior Question Andrew Tomazos 2024-09-19 2024-10   EWG Evolution
P3404R0 std::at : Range-checked accesses to arbitrary containers Andre Kostur 2024-10-11 2024-10   SG9 Ranges,SG23 Safety and Security
P3405R0 Out-of-order designated initializers Elias Kosunen 2024-09-28 2024-10   EWG Evolution
P3406R0 We need better performance testing Bjarne Stroustrup 2024-09-24 2024-10   All of WG21
P3407R0 Make idiomatic usage of `offsetof` well-defined Brian Bi 2024-10-14 2024-10   EWG Evolution
P3409R0 Enabling more efficient stop-token based cancellation of senders Lewis Baker 2024-10-16 2024-10   SG1 Concurrency and Parallelism
P3411R0 `any_view` Hui Xie 2024-09-29 2024-10   SG9 Ranges,LEWG Library Evolution
P3412R0 String interpolation Bengt Gustafsson 2024-10-15 2024-10   EWGI SG17: EWG Incubator,EWG Evolution
P3413R0 A more flexible optional::value_or (else!) Corentin Jabot 2024-10-15 2024-10   LEWG Library Evolution
P3415R0 Range interface in std::optional breaks code! Andrzej Krzemieński 2024-10-10 2024-10   LEWG Library Evolution
P3416R0 exception_ptr_cast: Add && = delete overload Gor Nishanov 2024-10-14 2024-10   LEWG Library Evolution
P3417R0 Improving the handling of exceptions thrown from contract predicates Gašper Ažman 2024-10-16 2024-10   SG21 Contracts,EWG Evolution
P3419R0 Reflection Syntax Options Summary Michael Levine 2024-10-11 2024-10   SG7 Reflection,EWGI SG17: EWG Incubator,EWG Evolution
P3420R0 Reflection of Templates Andrei Alexandrescu 2024-10-16 2024-10   SG7 Reflection
P3421R0 Consteval destructors Ben Craig 2024-10-12 2024-10   SG7 Reflection,EWG Evolution
P3422R0 Allow main function in named modules   2024-10-09 2024-10   EWG Evolution
P3423R0 Extending User-Generated Diagnostic Messages Yihe Li 2024-10-15 2024-10   EWG Evolution
P3425R0 Reducing operation-state sizes for subobject child operations Lewis Baker 2024-10-16 2024-10   LEWG Library Evolution
P3427R0 Hazard Pointer Synchronous Reclamation Maged Michael 2024-10-11 2024-10   SG1 Concurrency and Parallelism
P3428R0 Hazard Pointer Batches Maged Michael 2024-10-11 2024-10   SG1 Concurrency and Parallelism
P3429R0 Reflection header should minimize standard library dependencies Jonathan Müller 2024-10-16 2024-10   LEWG Library Evolution
P3430R0 simd issues: explicit, unsequenced, identity-element position, and members of disabled simd Matthias Kretz 2024-10-15 2024-10   LEWG Library Evolution
P3433R0 Allocator Support for Operation States Dietmar Kuehl 2024-10-14 2024-10   LEWG Library Evolution
P3435R0 Reflection and meta-programming Jean-Baptiste VALLON HOARAU 2024-10-14 2024-10   SG7 Reflection
P3436R0 Strategy for removing safety-related undefined behavior by default Herb Sutter 2024-10-16 2024-10   SG23 Safety and Security,EWG Evolution
P3437R0 Proposed default principles: Reflect C++, Generate C++ Herb Sutter 2024-10-16 2024-10   SG7 Reflection,EWG Evolution
P3438R0 Make integral overloads of std::to_string constexpr Andreas Fertig 2024-10-13 2024-10   LEWG Library Evolution
P3439R0 Chained comparisons: Safe, correct, efficient Herb Sutter 2024-10-15 2024-10   EWG Evolution
P3440R0 Add n_elements named constructor to std::simd Daniel Towner 2024-10-15 2024-10   LEWG Library Evolution
P3441R0 Rename simd_split to simd_chunk Daniel Towner 2024-10-15 2024-10   LEWG Library Evolution
P3442R0 [[invalidate_dereferencing]] attribute Patrice Roy 2024-10-14 2024-10   SG14 Low Latency,LEWG Library Evolution
P3443R0 Reflection on SG21 2024 Process Ran Regev 2024-10-14 2024-10   SG21 Contracts,EWG Evolution
P3444R0 Memory safety without lifetime parameters Sean Baxter 2024-10-14 2024-10   SG23 Safety and Security
P3445R0 Add utilities for easier type/bit casting in std::simd Daniel Towner 2024-10-16 2024-10   LEWG Library Evolution
P3446R0 Profile invalidation - eliminating dangling pointers Bjarne Stroustrup 2024-10-14 2024-10   SG23 Safety and Security
P3447R0 Profiles syntax Bjarne Stroustrup 2024-10-14 2024-10   SG23 Safety and Security
P3449R0 constexpr std::generator Hana Dusíková 2024-10-14 2024-10   LEWG Library Evolution
P3450R0 Extending is_within_lifetime Barry Revzin 2024-10-14 2024-10   LEWG Library Evolution
P3451R0 A Suggestion for Reflection Access Control Barry Revzin 2024-10-14 2024-10   EWG Evolution
P3454R0 Revising Atomic Max/Min Operations Michael Wong 2024-10-15 2024-10   SG1 Concurrency and Parallelism
P3455R0 SG14: Low Latency/Games/Embedded/Financial Trading virtual Meeting Minutes 2024/6/12-2024/10/9 Michael Wong 2024-10-14 2024-10   SG14 Low Latency
P3456R0 system_scheduler on Win32, Darwin and Linux Gor Nishanov 2024-10-15 2024-10   SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library
P3457R0 SG19: Machine Learning virtual Meeting Minutes to 2024/06/13-2024/10/10 Michael Wong 2024-10-14 2024-10   SG19 Machine Learning
P3460R0 Contracts Implementors Report Eric Fiselier, Nina Dinka Ranns, Iain Sandoe 2024-10-16 2024-10   SG21 Contracts,EWG Evolution,CWG Core
P3465R0 Pursue P1179 as a Lifetime TS Herb Sutter 2024-10-15 2024-10   SG23 Safety and Security,EWG Evolution
P3466R0 (Re)affirm design principles for future C++ evolution Herb Sutter 2024-10-16 2024-10   EWG Evolution
P3467R0 2024-10 Library Evolution Polls Inbal Levi 2024-10-16 2024-10   LEWG Library Evolution
P3469R0 Virtual deducing this Mike Spertus 2024-10-16 2024-10   EWG Evolution
P3470R0 Interface-Unit-Only Module Library Support Daniel Ruoso 2024-10-15 2024-10   SG15 Tooling,EWG Evolution
P3471R0 Standard library hardening Konstantin Varlamov 2024-10-15 2024-10   SG23 Safety and Security,LEWG Library Evolution
P3472R0 Make fiber_context::can_resume() const Andrzej Krzemieński 2024-10-15 2024-10   LEWG Library Evolution
P3473R0 Splicing Should Respect Access Control Steve Downey 2024-10-16 2024-10   EWG Evolution
P3474R0 std::arguments Jeremy Rifkin 2024-10-15 2024-10   EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator
P3475R0 Defang and deprecate memory_order::consume Hans Boehm 2024-10-15 2024-10   SG1 Concurrency and Parallelism,EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library
P3476R0 Slides for P2688R2 - Pattern Matching: `match` Expression Michael Park 2024-10-16 2024-10   EWG Evolution
P3477R0 There are exactly 8 bits in a byte JF Bastien 2024-10-16 2024-10   SG22 Compatibility,EWG Evolution,LEWG Library Evolution
P3478R0 Constification should not be part of the MVP John Spicer 2024-10-16 2024-10   SG21 Contracts,EWG Evolution
P3479R0 Enabling C pragma support in C++ Joshua Cranmer 2024-10-16 2024-10   SG6 Numerics,EWGI SG17: EWG Incubator,SG22 Compatibility
P3480R0 std::simd is a range Matthias Kretz 2024-10-16 2024-10   SG9 Ranges,LEWG Library Evolution
P3481R0 Summarizing std::execution::bulk() issues Lucian Radu Teodorescu 2024-10-16 2024-10   SG1 Concurrency and Parallelism,LEWG Library Evolution

2024-09 Mailing Available

The 2024-09 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4990 Business Plan and Convener's Report Herb Sutter 2024-08-26 2024-09   All of WG21
P0472R2 Put std::monostate in <utility> David Sankel 2024-09-09 2024-09 P0472R1 LEWG Library Evolution
P1030R7 std::filesystem::path_view Niall Douglas 2024-09-06 2024-09 P1030R6 LEWG Library Evolution
P1061R9 Structured Bindings can introduce a Pack Barry Revzin 2024-08-24 2024-09 P1061R8 CWG Core
P2019R7 Thread attributes Corentin Jabot 2024-09-16 2024-09 P2019R6 LWG Library
P2287R3 Designated-initializers for base classes Barry Revzin 2024-09-09 2024-09 P2287R2 EWG Evolution
P2319R1 Prevent path presentation problems Victor Zverovich 2024-09-14 2024-09 P2319R0 LEWG Library Evolution
P2688R2 Pattern Matching: `match` Expression Michael Park 2024-09-17 2024-09 P2688R1 EWG Evolution
P2786R7 Trivial Relocatability For C++26 Mungo Gill 2024-09-17 2024-09 P2786R6 EWG Evolution,LEWG Library Evolution
P2835R5 Expose std::atomic_ref's object address Gonzalo Brito Gadeschi 2024-09-02 2024-09 P2835R4 LEWG Library Evolution
P2835R6 Expose std::atomic_ref's object address Gonzalo Brito Gadeschi 2024-09-03 2024-09 P2835R5 LEWG Library Evolution,LWG Library
P2841R4 Concept and variable-template template-parameters Corentin Jabot 2024-09-14 2024-09 P2841R3 CWG Core
P2846R3 reserve_hint: Eagerly reserving memory for not-quite-sized lazy ranges Corentin Jabot 2024-09-14 2024-09 P2846R2 LEWG Library Evolution
P2879R0 Proposal of std::dump Andrew Tomazos 2024-09-17 2024-09   LEWGI SG18: LEWG Incubator,SG20 Education
P2945R1 Additional format specifiers for time_point Barry Revzin 2024-09-09 2024-09 P2945R0 LEWG Library Evolution
P2988R7 std::optional<T&> Steve Downey 2024-09-10 2024-09 P2988R6 LEWG Library Evolution,LWG Library
P3016R4 Resolve inconsistencies in begin/end for valarray and braced initializer lists Arthur O'Dwyer 2024-09-14 2024-09 P3016R3 LWG Library
P3019R9 Vocabulary Types for Composite Class Design Jonathan Coe 2024-09-15 2024-09 P3019R8 LEWG Library Evolution,LWG Library
P3037R3 constexpr std::shared_ptr Paul Keir 2024-09-03 2024-09 P3037R2 LEWG Library Evolution
P3074R4 trivial unions (was std::uninitialized<T>) Barry Revzin 2024-09-09 2024-09 P3074R3 EWG Evolution
P3096R3 Function Parameter Reflection in Reflection for C++26 Adam Lach 2024-09-15 2024-09 P3096R2 EWG Evolution,LEWG Library Evolution
P3128R1 Graph Library: Algorithms   2024-09-12 2024-09 P3128R0 SG14 Low Latency,SG19 Machine Learning
P3128R2 Graph Library: Algorithms   2024-09-12 2024-09 P3128R1 SG14 Low Latency,SG19 Machine Learning
P3210R2 A Postcondition *is* a Pattern Match Andrew Tomazos 2024-09-09 2024-09 P3210R1 SG21 Contracts,EWG Evolution
P3245R2 Allow `[[nodiscard]]` in type alias declarations Xavier Bonaventura 2024-09-15 2024-09 P3245R1 EWGI SG17: EWG Incubator
P3248R2 Require [u]intptr_t Gonzalo Brito Gadeschi 2024-09-06 2024-09 P3248R1 EWG Evolution,LEWG Library Evolution
P3290R2 Integrating Existing Assertions With Contracts Joshua Berne 2024-09-06 2024-09 P3290R1 SG21 Contracts,EWG Evolution
P3295R1 Freestanding constexpr containers and constexpr exception types Ben Craig 2024-09-15 2024-09 P3295R0 LEWG Library Evolution
P3299R1 Range constructors for std::simd Daniel Towner 2024-09-16 2024-09 P3299R0 LEWG Library Evolution
P3309R2 constexpr atomic and atomic_ref Hana Dusíková 2024-08-29 2024-09 P3309R1 LEWG Library Evolution
P3335R1 Structured Core Options René Ferdinand Rivera Morell 2024-09-17 2024-09 P3335R0 SG15 Tooling
P3371R1 Fix C++26 by making the rank-1, rank-2, rank-k, and rank-2k updates consistent with the BLAS Mark Hoemmen 2024-09-14 2024-09 P3371R0 LEWG Library Evolution
P3372R1 constexpr containers and adapters Hana Dusíková 2024-09-17 2024-09 P3372R0 LEWG Library Evolution
P3375R0 Reproducible floating-point results Guy Davidson 2024-09-10 2024-09   SG6 Numerics,SG14 Low Latency,LEWG Library Evolution
P3379R0 Constrain std::expected equality operators Jonathan Wakely 2024-08-27 2024-09   LEWG Library Evolution
P3380R0 Extending support for class types as non-type template parameters Barry Revzin 2024-09-09 2024-09   EWG Evolution
P3381R0 Syntax for Reflection Barry Revzin 2024-09-16 2024-09   EWG Evolution
P3382R0 Coarse clocks and resolutions Antony Polukhin 2024-08-28 2024-09   LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library
P3383R0 mdspan.at() Stephan Lachnit 2024-09-04 2024-09   LEWGI SG18: LEWG Incubator
P3384R0 __COUNTER__ Jeremy Rifkin 2024-09-05 2024-09   EWG Evolution
P3385R0 Attributes reflection Aurelien Cassagnes 2024-09-16 2024-09   SG7 Reflection
P3388R0 When Do You Know connect Doesn't Throw? Robert Leahy 2024-09-10 2024-09   LEWG Library Evolution
P3389R0 Of Operation States and Their Lifetimes (LEWG Presentation 2024-09-10) Robert Leahy 2024-09-10 2024-09   LEWG Library Evolution
P3390R0 Safe C++ Sean Baxter 2024-09-11 2024-09   SG23 Safety and Security
P3391R0 constexpr std::format Barry Revzin 2024-09-12 2024-09   LEWG Library Evolution
P3392R0 Do not promise support for function syntax of operators Corentin Jabot 2024-09-14 2024-09   LEWG Library Evolution
P3396R0 std::execution wording fixes Lewis Baker 2024-09-16 2024-09   LWG Library
P3397R0 Clarify requirements on extended floating point types Hans Boehm 2024-09-16 2024-09   SG6 Numerics
P3398R0 User specified type decay Bengt Gustafsson 2024-09-17 2024-09   EWGI SG17: EWG Incubator
P3401R0 Enrich Creation Functions for the Pointer-Semantics-Based Polymorphism Library - Proxy Tian Liao 2024-09-17 2024-09   LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P3402R0 A Safety Profile Verifying Class Initialization Marc-André Laverdière 2024-09-17 2024-09   SG23 Safety and Security

2024-08 Mailing Available

The 2024-08 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4988 Working Draft, Programming Languages -- C++ Thomas Köppe 2024-08-05 2024-08   All of WG21
N4989 Editors' Report, Programming Languages -- C++ Thomas Köppe 2024-08-05 2024-08   All of WG21
P2414R4 Pointer lifetime-end zap proposed solutions Paul E. McKenney 2024-08-12 2024-08 P2414R3 SG1 Concurrency and Parallelism
P2822R2 Providing user control of associated entities of class types Lewis Baker 2024-08-07 2024-08 P2822R1 EWG Evolution
P2897R4 aligned_accessor: An mdspan accessor expressing pointer overalignment Mark Hoemmen 2024-07-24 2024-08 P2897R3 LEWG Library Evolution,LWG Library
P2897R5 aligned_accessor: An mdspan accessor expressing pointer overalignment Mark Hoemmen 2024-08-11 2024-08 P2897R4 LEWG Library Evolution,LWG Library
P2900R8 Contracts for C++ Joshua Berne 2024-07-27 2024-08 P2900R7 EWG Evolution,LEWG Library Evolution
P2988R6 std::optional<T&> Steve Downey 2024-08-15 2024-08 P2988R5 LEWG Library Evolution,LWG Library
P2996R5 Reflection for C++26 Barry Revzin 2024-08-14 2024-08 P2996R4 EWG Evolution
P3050R2 Fix C++26 by optimizing linalg::conjugated for noncomplex value types Mark Hoemmen 2024-08-12 2024-08 P3050R1 LEWG Library Evolution
P3068R4 Allowing exception throwing in constant-evaluation Hana Dusíková 2024-08-15 2024-08 P3068R3 LEWG Library Evolution,CWG Core
P3126R2 Graph Library: Overview Phil Ratzloff 2024-08-05 2024-08 P3126R1 SG14 Low Latency,SG19 Machine Learning
P3130R2 Graph Library: Graph Container Interface Phil Ratzloff 2024-08-05 2024-08 P3130R1 SG14 Low Latency,SG19 Machine Learning
P3131R2 Graph Library: Graph Containers Phil Ratzloff 2024-08-05 2024-08 P3131R1 SG14 Low Latency,SG19 Machine Learning
P3284R1 `finally`, `write_env`, and `unstoppable` Sender Adaptors Eric Niebler 2024-07-16 2024-08 P3284R0 LEWG Library Evolution
P3315R0 2024-07 Library Evolution Poll Outcomes Inbal Levi 2024-08-15 2024-08   LEWG Library Evolution
P3325R3 A Utility for Creating Execution Environments Eric Niebler 2024-07-23 2024-08 P3325R2 LEWG Library Evolution
P3347R0 Invalid/Prospective Pointer Operations Paul E. McKenney 2024-08-09 2024-08   EWG Evolution
P3348R0 C++26 should refer to C23 not C17 Jonathan Wakely 2024-08-02 2024-08   SG6 Numerics,LEWG Library Evolution
P3361R0 Class invariants and contract checking philosophy Esa Pulkkinen 2024-07-18 2024-08   SG21 Contracts
P3361R1 Class invariants and contract checking philosophy Esa Pulkkinen 2024-07-23 2024-08 P3361R0 SG21 Contracts
P3362R0 Static analysis and 'safety' of Contracts, P2900 vs. P2680/P3285 Ville Voutilainen 2024-08-13 2024-08   EWG Evolution
P3364R0 Remove Deprecated u8path overloads From C++26 Alisdair Meredith 2024-08-15 2024-08   SG16 Unicode
P3365R0 Remove the Deprecated iterator Class Template from C++26 Alisdair Meredith 2024-08-15 2024-08   LEWG Library Evolution
P3366R0 Remove Deprecated Atomic Initialization API from C++26 Alisdair Meredith 2024-08-15 2024-08   SG1 Concurrency and Parallelism,LEWG Library Evolution
P3369R0 constexpr for uninitialized_default_construct Giuseppe D'Angelo 2024-07-28 2024-08   LEWG Library Evolution
P3370R0 Add new library headers from C23 Jens Maurer 2024-08-15 2024-08   LEWG Library Evolution
P3371R0 Fix C++26 by making the symmetric and Hermitian rank-k and rank-2k updates consistent with the BLAS Mark Hoemmen 2024-08-11 2024-08   LEWG Library Evolution,LWG Library
P3372R0 constexpr containers and adapters Hana Dusíková 2024-08-15 2024-08   LEWG Library Evolution
P3373R0 Of Operation States and Their Lifetimes Robert Leahy 2024-08-14 2024-08   LEWG Library Evolution
P3374R0 Adding formatter for fpos Liang Jiaming 2024-08-14 2024-08   LEWGI SG18: LEWG Incubator