Standardization

2025-08 Mailing Available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N5013 Programming Languages - C++ Thomas Köppe 2025-08-11 2025-08   All of WG21
N5014 Working Draft, Standard for Programming Language C++ Thomas Köppe 2025-08-05 2025-08   All of WG21
N5015 Editors' Report - Programming Languages - C++ Thomas Köppe 2025-08-14 2025-08   All of WG21
N5019 Business Plan and Convener's Report: ISO/IEC JTC1/SC22/WG21 (C++) Herb Sutter 2025-08-05 2025-08   All of WG21
P2414R10 Pointer lifetime-end zap proposed solutions Paul E. McKenney 2025-08-08 2025-08 P2414R9 EWG Evolution,LEWG Library Evolution
P2843R3 Preprocessing is never undefined Alisdair Meredith 2025-07-18 2025-08 P2843R2 CWG Core
P3100R4 Implicit contract assertions Timur Doumler 2025-08-13 2025-08 P3100R3 EWG Evolution
P3337R0 Graph Library: Library Comparisons Phil Ratzloff 2025-07-30 2025-08   SG19 Machine Learning
P3347R4 Invalid/Prospective Pointer Operations Paul E. McKenney 2025-08-08 2025-08 P3347R3 CWG Core
P3427R2 Hazard Pointer Synchronous Reclamation Maged Michael 2025-08-11 2025-08 P3427R1 LEWG Library Evolution
P3428R2 Hazard Pointer Batches Maged Michael 2025-08-11 2025-08 P3428R1 LEWG Library Evolution
P3643R1 std::to_signed and std::to_unsigned Jan Schultke 2025-08-13 2025-08 P3643R0 LEWG Library Evolution
P3688R2 ASCII character utilities Jan Schultke 2025-08-14 2025-08 P3688R1 SG16 Unicode
P3692R2 How to Avoid OOTA Without Really Trying Paul E. McKenney 2025-08-08 2025-08 P3692R1 SG1 Concurrency and Parallelism
P3702R1 Stricter requirements for document submissions (SD-7) Jan Schultke 2025-08-14 2025-08 P3702R0 All of WG21
P3719R1 std::is_vector_bool_reference Yuxuan Chen 2025-08-01 2025-08 P3719R0 LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P3739R2 Standard Library Hardening - using std::optional Jarrad J Waterloo 2025-08-10 2025-08 P3739R1 LWG Library
P3774R1 Rename std::nontype, and make it broadly useful Jan Schultke 2025-08-14 2025-08 P3774R0 LEWG Library Evolution
P3775R0 Slides for P3774R0 - Rename std::nontype Jan Schultke 2025-08-12 2025-08   LEWG Library Evolution
P3779R0 reserve() and capacity() for flat containers Nicolai Josuttis 2025-08-01 2025-08   LEWG Library Evolution,LWG Library
P3790R1 Pointer lifetime-end zap proposed solutions: Bag-of-bits pointer class Paul E. McKenney 2025-08-08 2025-08 P3790R0 LEWG Library Evolution
P3796R1 Coroutine Task Issues Dietmar Kühl 2025-08-15 2025-08 P3796R0 SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library
P3798R1 The unexpected in std::expected Alex Kremer 2025-08-12 2025-08 P3798R0 SG10 Feature Test,LEWG Library Evolution,LWG Library
P3806R0 views::cycle Hewill Kang 2025-08-03 2025-08   SG9 Ranges,LEWG Library Evolution,LWG Library
P3809R0 Should we make std::linalg reductions deduce return types like fold algorithms? Mark Hoemmen 2025-08-07 2025-08   LEWG Library Evolution
P3810R0 hardened memory safety guarantees Jarrad J Waterloo 2025-08-14 2025-08   SG23 Safety and Security

2025-07 Mailing Available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N5012 WG21 2025-06 Sofia Admin telecon minutes Nina Ranns 2025-06-08 2025-07 All of WG21
N5016 WG21 June 2025 Sofia Hybrid meeting Minutes of Meeting Nina Ranns 2025-07-08 2025-07 All of WG21
P0085R2 Oo... adding a coherent character sequence to begin octal-literals Axel Naumann 2025-06-06 2025-07 P0085R1 EWG Evolution,LEWG Library Evolution
P0085R3 Oo... adding a coherent character sequence to begin octal-literals Axel Naumann 2025-07-01 2025-07 P0085R2 EWG Evolution
P0085R3 Oo... adding a coherent character sequence to begin octal-literals Axel Naumann 2025-07-01 2025-07 P0085R2 EWG Evolution
P0085R3 Oo... adding a coherent character sequence to begin octal-literals Axel Naumann 2025-07-01 2025-07 P0085R2 EWG Evolution
P0085R3 Oo... adding a coherent character sequence to begin octal-literals Axel Naumann 2025-07-01 2025-07 P0085R2 EWG Evolution
P0085R3 Oo... adding a coherent character sequence to begin octal-literals Axel Naumann 2025-07-01 2025-07 P0085R2 CWG Core
P0260R18 C++ Concurrent Queues Detlef Vollmann 2025-06-17 2025-07 P0260R17 LWG Library
P0260R19 C++ Concurrent Queues Detlef Vollmann 2025-06-18 2025-07 P0260R18 LWG Library
P0870R6 A proposal for a type trait to detect narrowing conversions Giuseppe D'Angelo 2025-06-17 2025-07 P0870R5 SG6 Numerics,LEWG Library Evolution,LWG Library
P0870R7 A proposal for a type trait to detect narrowing conversions Giuseppe D'Angelo 2025-06-17 2025-07 P0870R6 SG6 Numerics,LEWG Library Evolution,LWG Library
P0876R21 fiber_context - fibers without scheduler Oliver Kowalke 2025-07-13 2025-07 P0876R20 CWG Core,LWG Library
P1040R8 std::embed and #depend JeanHeyd Meneide 2025-06-22 2025-07 P1040R7 EWG Evolution
P1306R5 Expansion statements Dan Katz 2025-06-20 2025-07 P1306R4 All of WG21
P2079R10 Parallel Scheduler Lucian Radu Teodorescu 2025-06-25 2025-07 P2079R9 LWG Library
P2079R9 Parallel Scheduler Lucian Radu Teodorescu 2025-06-26 2025-07 P2079R8 LWG Library
P2319R5 Prevent path presentation problems Victor Zverovich 2025-06-17 2025-07 P2319R4 LWG Library
P2414R8 Pointer lifetime-end zap proposed solutions Paul E. McKenney 2025-06-18 2025-07 P2414R7 LEWG Library Evolution,LWG Library
P2414R9 Pointer lifetime-end zap proposed solutions Paul E. McKenney 2025-07-11 2025-07 P2414R8 EWG Evolution,LEWG Library Evolution
P2664R11 Proposal to extend std::simd with permutation API Daniel Towner 2025-06-20 2025-07 P2664R10 LWG Library
P2781R9 std::constexpr_wrapper Zach Laine 2025-06-17 2025-07 P2781R8 LWG Library
P2876R3 Proposal to extend std::simd with more constructors and accessors Daniel Towner 2025-06-17 2025-07 P2876R2 LWG Library
P2929R1 simd_invoke Daniel Towner 2025-06-19 2025-07 P2929R0 LEWG Library Evolution
P2996R13 Reflection for C++26 Barry Revzin 2025-06-20 2025-07 P2996R12 CWG Core,LWG Library
P3008R6 Atomic floating-point min/max Gonzalo Brito Gadeschi 2025-06-19 2025-07 P3008R5 LWG Library
P3044R2 sub-string_view from string Michael Florian Hava 2025-06-19 2025-07 P3044R1 LWG Library
P3045R6 Quantities and units library Mateusz Pusz 2025-06-19 2025-07 P3045R5 SG6 Numerics,SG16 Unicode,LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P3060R3 Add std::views::indices(n) Weile Wei 2025-06-18 2025-07 P3060R2 LWG Library
P3091R4 Better lookups for `map` , `unordered_map`, and `flat_map` Pablo Halpern 2025-06-20 2025-07 P3091R3 LEWG Library Evolution,LWG Library
P3096R10 Function Parameter Reflection in Reflection for C++26 Adam Lach 2025-06-17 2025-07 P3096R9 CWG Core,LWG Library
P3096R11 Function Parameter Reflection in Reflection for C++26 Adam Lach 2025-06-19 2025-07 P3096R10 EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library
P3096R12 Function Parameter Reflection in Reflection for C++26 Adam Lach 2025-06-20 2025-07 P3096R11 CWG Core,LWG Library
P3100R3 Implicit contract assertions Timur Doumler 2025-07-03 2025-07 P3100R2 EWG Evolution
P3104R4 Bit permutations Jan Schultke 2025-06-28 2025-07 P3104R3 SG6 Numerics,LWG Library
P3111R7 Atomic Reduction Operations Gonzalo Brito Gadeschi 2025-06-18 2025-07 P3111R6 CWG Core,LWG Library
P3111R8 Atomic Reduction Operations Gonzalo Brito Gadeschi 2025-06-19 2025-07 P3111R7 LWG Library
P3149R11 async_scope -- Creating scopes for non-sequential concurrency Ian Petersen 2025-06-19 2025-07 P3149R10 LWG Library
P3179R9 C++ parallel range algorithms Ruslan Arutyunyan 2025-05-28 2025-07 P3179R8 LWG Library
P3211R1 views::flat_map Hewill Kang 2025-07-04 2025-07 P3211R0 SG9 Ranges,LEWG Library Evolution,LWG Library
P3216R1 views::slice Hewill Kang 2025-06-28 2025-07 P3216R0 SG9 Ranges,LEWG Library Evolution,LWG Library
P3220R1 views::take_before Hewill Kang 2025-06-23 2025-07 P3220R0 SG9 Ranges,LEWG Library Evolution,LWG Library,Direction Group
P3223R2 Making std::istream::ignore less surprising Jonathan Wakely 2025-06-20 2025-07 P3223R1 LWG Library
P3248R4 Require [u]intptr_t Gonzalo Brito Gadeschi 2025-06-19 2025-07 P3248R3 LWG Library
P3290R3 Integrating Existing Assertions With Contracts Joshua Berne 2025-07-11 2025-07 P3290R2 SG22 Compatibility,LEWG Library Evolution
P3293R3 Splicing a base class subobject Barry Revzin 2025-06-20 2025-07 P3293R2 CWG Core,LWG Library
P3347R3 Invalid/Prospective Pointer Operations Paul E. McKenney 2025-07-11 2025-07 P3347R2 CWG Core
P3348R4 C++26 should refer to C23 not C17 Jonathan Wakely 2025-06-19 2025-07 P3348R3 SG6 Numerics,LWG Library
P3383R3 mdspan.at() Stephan Lachnit 2025-06-17 2025-07 P3383R2 LWG Library
P3394R4 Annotations for Reflection Daveed Vandevoorde 2025-06-20 2025-07 P3394R3 All of WG21
P3411R3 `any_view` Hui Xie 2025-06-18 2025-07 P3411R2 SG9 Ranges,LEWG Library Evolution
P3433R1 Allocator Support for Operation States Dietmar Kuehl 2025-06-19 2025-07 P3433R0 LWG Library
P3439R3 Chained comparisons: Safe, correct, efficient Herb Sutter 2025-06-19 2025-07 P3439R2 EWG Evolution
P3440R1 Add n_elements named constructor to std::simd Daniel Towner 2025-06-13 2025-07 P3440R0 LEWG Library Evolution
P3480R6 std::simd is a range Matthias Kretz 2025-06-17 2025-07 P3480R5 LWG Library
P3481R4 std::execution::bulk() issues Lucian Radu Teodorescu 2025-06-17 2025-07 P3481R3 SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library
P3481R5 std::execution::bulk() issues Lucian Radu Teodorescu 2025-06-18 2025-07 P3481R4 SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library
P3491R3 define_static_{string,object,array} Barry Revzin 2025-06-20 2025-07 P3491R2 CWG Core,LWG Library
P3503R3 Make type-erased allocator use in promise and packaged_task consistent Nicolas Morales 2025-06-19 2025-07 P3503R2 LWG Library
P3540R2 #embed Parameter offset JeanHeyd Meneide 2025-06-05 2025-07 P3540R1 CWG Core
P3552R3 Add a Coroutine Task Type Dietmar Kühl 2025-06-20 2025-07 P3552R2 All of WG21
P3557R3 High-Quality Sender Diagnostics with Constexpr Exceptions Eric Niebler 2025-07-04 2025-07 P3557R2 LWG Library
P3560R2 Error Handling in Reflection Barry Revzin 2025-06-20 2025-07 P3560R1 LWG Library
P3566R2 You shall not pass `char*` - Safety concerns working with unbounded null-terminated strings Marco Foco, Joshua Kriegshauser, Alexey Shevlyakov, Giuseppe D'Angelo 2025-06-15 2025-07 P3566R1 LEWGI SG18: LEWG Incubator,SG23 Safety and Security,LEWG Library Evolution
P3566R2 You shall not pass `char*` - Safety concerns working with unbounded null-terminated strings Marco Foco, Joshua Kriegshauser, Alexey Shevlyakov, Giuseppe D'Angelo 2025-06-15 2025-07 P3566R1 LEWGI SG18: LEWG Incubator,SG23 Safety and Security,LEWG Library Evolution
P3570R2 optional variants in sender/receiver Fabio Fracassi 2025-06-18 2025-07 P3570R1 LWG Library
P3601R0 Slides for P3407R1 Brian Bi 2025-06-17 2025-07 EWG Evolution
P3642R1 Carry-less product: std::clmul Jan Schultke 2025-06-03 2025-07 P3642R0 SG6 Numerics,LEWGI SG18: LEWG Incubator
P3642R2 Carry-less product: std::clmul Jan Schultke 2025-07-02 2025-07 P3642R1 LEWG Library Evolution
P3647R0 Slides for P3642R1 Jan Schultke 2025-06-18 2025-07 SG6 Numerics,LEWGI SG18: LEWG Incubator
P3655R2 zstring_view Peter Bindels 2025-06-15 2025-07 P3655R1 LEWG Library Evolution
P3663R2 Future-proof `submdspan-mapping` Mark Hoemmen 2025-07-13 2025-07 P3663R1 LWG Library
P3668R2 Defaulting Postfix Increment and Decrement Operations Matthew Taylor 2025-07-13 2025-07 P3668R1 CWG Core
P3669R2 Non-Blocking Support for `std::execution` Detlef Vollmann 2025-06-19 2025-07 P3669R1 SG1 Concurrency and Parallelism,LEWG Library Evolution
P3687R1 Final Adjustments to C++26 Reflection Dan Katz 2025-06-18 2025-07 P3687R0 EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library
P3688R1 ASCII character utilities Jan Schultke 2025-06-28 2025-07 P3688R0 SG16 Unicode
P3690R1 Consistency fix: Make simd reductions SIMD-generic Olaf Krzikalla 2025-06-17 2025-07 P3690R0 LWG Library
P3691R1 Reconsider naming of the namespace for "std::simd" Matthias Kretz 2025-06-16 2025-07 P3691R0 LWG Library
P3692R1 How to Avoid OOTA Without Really Trying Paul E. McKenney 2025-07-10 2025-07 P3692R0 SG1 Concurrency and Parallelism
P3697R1 Minor additions to C++26 standard library hardening Konstantin Varlamov 2025-06-20 2025-07 P3697R0 LEWG Library Evolution,LWG Library
P3699R1 Rename `conqueue_errc` Detlef Vollmann 2025-06-16 2025-07 P3699R0 LEWG Library Evolution
P3705R1 A Sentinel for Null-Terminated Strings Eddie Nolan 2025-06-18 2025-07 P3705R0 SG9 Ranges,LEWG Library Evolution
P3705R2 A Sentinel for Null-Terminated Strings Eddie Nolan 2025-06-18 2025-07 P3705R1 SG9 Ranges,LEWG Library Evolution
P3709R1 Reconsider parallel ranges::rotate_copy and ranges::reverse_copy Ruslan Arutyunyan 2025-06-02 2025-07 P3709R0 SG9 Ranges,LEWG Library Evolution
P3709R2 Reconsider parallel ranges::rotate_copy and ranges::reverse_copy Ruslan Arutyunyan 2025-06-17 2025-07 P3709R1 SG9 Ranges,LEWG Library Evolution
P3711R1 Safer StringViewLike Functions for Replacing char* strings Marco Foco 2025-06-19 2025-07 P3711R0 SG23 Safety and Security,LEWG Library Evolution
P3713R0 2025-05 Library Evolution Poll Outcomes Inbal Levi 2025-07-15 2025-07 All of WG21
P3718R0 Fixing Lazy Sender Algorithm Customization, Again Eric Niebler 2025-06-28 2025-07 LEWG Library Evolution,LWG Library
P3719R0 std::is_vector_bool_reference Yuxuan Chen 2025-05-20 2025-07 LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P3721R0 Slides for P3639R0 Jan Schultke 2025-06-03 2025-07 SG22 Compatibility
P3722R0 Slides for P3568R1 Jan Schultke 2025-05-27 2025-07 SG22 Compatibility
P3724R0 Integer division Jan Schultke 2025-06-05 2025-07 SG6 Numerics,LEWG Library Evolution
P3725R0 Filter View Extensions for Input Ranges Nicolai Josuttis 2025-06-19 2025-07 SG9 Ranges,LEWG Library Evolution,LWG Library
P3725R1 Filter View Extensions for Input Ranges Nicolai Josuttis 2025-06-23 2025-07 P3725R0 SG9 Ranges,LEWG Library Evolution,LWG Library
P3726R0 Adjustments to Union Lifetime Rules Barry Revzin 2025-07-13 2025-07 EWG Evolution,CWG Core
P3727R0 Update Annex E based on Unicode 15.1 UAX #31 Steve Downey 2025-06-11 2025-07 SG16 Unicode,CWG Core
P3729R0 Aligning span and string_view Michael Florian Hava 2025-06-23 2025-07 LEWG Library Evolution
P3730R0 Slides for P3104R3 Jan Schultke 2025-06-04 2025-07 LEWG Library Evolution
P3731R0 #embed Preprocessor Parameter Order JeanHeyd Meneide 2025-06-05 2025-07 SG22 Compatibility,EWG Evolution
P3732R0 Numeric Range Algorithms Ruslan Arutyunyan 2025-06-27 2025-07 SG1 Concurrency and Parallelism,SG9 Ranges
P3733R0 More named universal character escapes Jan Schultke 2025-06-28 2025-07 SG16 Unicode
P3734R0 Not all predicates must be regular Jan Schultke 2025-06-14 2025-07 SG9 Ranges
P3735R0 partial_sort_n, nth_element_n Jan Schultke 2025-06-28 2025-07 SG9 Ranges
P3736R0 Slides against P2971R3 - No implication for C++ Jan Schultke 2025-06-27 2025-07 EWG Evolution
P3737R0 std::array is a wrapper for an array! Jan Schultke 2025-06-11 2025-07 LEWG Library Evolution
P3738R0 Make std::make_from_tuple SFINAE friendly Yihan Wang 2025-06-10 2025-07 LEWG Library Evolution
P3739R0 Standard Library Hardening - using std::optional Jarrad J Waterloo 2025-06-10 2025-07 LWG Library
P3739R1 Standard Library Hardening - using std::optional Jarrad J Waterloo 2025-06-10 2025-07 P3739R0 LWG Library
P3740R0 Last chance to fix std::nontype Jan Schultke 2025-06-14 2025-07 LEWG Library Evolution
P3740R1 Last chance to fix std::nontype Jan Schultke 2025-06-19 2025-07 P3740R0 LEWG Library Evolution
P3741R0 views::set_operations Hewill Kang 2025-06-21 2025-07 SG9 Ranges
P3742R0 C++ Standard Library Ready Issues to be moved in Sofia, Jun. 2025 Jonathan Wakely 2025-06-13 2025-07 All of WG21
P3745R0 Rebuttal to P1144R13 Pablo Halpern 2025-07-02 2025-07 EWG Evolution,LEWG Library Evolution
P3746R0 LEWG Slides for P3637R0 Inherit std::meta::exception from std::exception Nevin Liber 2025-06-16 2025-07 LEWG Library Evolution
P3747R0 Call side return type deduction Thomas Mejstrik 2025-06-17 2025-07 EWGI SG17: EWG Incubator
P3748R0 Inspecting exception_ptr works should be constexpr. Hana Dusíková 2025-06-18 2025-07 LEWG Library Evolution
P3749R0 Slides in response to P3655R2 - Concerns regarding std::zstring_view Jan Schultke 2025-06-27 2025-07 LEWG Library Evolution
P3752R0 Core Language Working Group "ready" Issues for the June, 2025 meeting Jens Maurer 2025-06-20 2025-07 CWG Core
P3753R0 Slides for P3740R0 - Last chance to fix std::nontype Jan Schultke 2025-06-20 2025-07 LEWG Library Evolution
P3753R1 Slides for P3740R1 - Last chance to fix std::nontype Jan Schultke 2025-06-20 2025-07 P3753R0 LEWG Library Evolution
P3754R0 Slides for P3100R2 presentation to EWG Timur Doumler 2025-06-20 2025-07 EWG Evolution
P3757R0 Remove value-type invocability requirement from indirect unary callable concepts Hewill Kang 2025-06-21 2025-07 SG9 Ranges,LEWG Library Evolution,LWG Library
P3760R0 Presentation: constexpr 'Parallel' Algorithms Oliver Rosten 2025-06-21 2025-07 LEWG Library Evolution
P3763R0 Remove redundant reserve_hint members from view classes Hewill Kang 2025-06-21 2025-07 SG9 Ranges,LEWG Library Evolution,LWG Library
P3764R0 A utility function for propagating the most significant bit Jan Schultke 2025-07-15 2025-07 SG6 Numerics
P3765R0 Deprecate implicit conversion from bool to character types Jan Schultke 2025-07-12 2025-07 EWG Evolution
P3769R0 Clarification of placement new deallocation Lauri Vasama 2025-06-22 2025-07 EWG Evolution,CWG Core
P3771R0 constexpr mutex, locks, and condition variable Hana Dusíková 2025-06-30 2025-07 SG1 Concurrency and Parallelism,EWG Evolution,LEWG Library Evolution
P3772R0 std::simd overloads for bit permutations Jan Schultke 2025-06-28 2025-07 SG6 Numerics
P3774R0 Rename std::nontype, and make it broadly useful Jan Schultke 2025-07-15 2025-07 LEWG Library Evolution
P3778R0 Fixing `type_order` template definition Gašper Ažman 2025-07-03 2025-07 LEWG Library Evolution,LWG Library
P3780R0 Detecting bitwise trivially relocatable types Giuseppe D'Angelo 2025-07-10 2025-07 EWG Evolution,LEWG Library Evolution
P3781R0 is_*_type should imply is_type Xavier Bonaventura 2025-07-05 2025-07 SG20 Education,EWG Evolution
P3784R0 range-if Michael Florian Hava 2025-07-10 2025-07 EWGI SG17: EWG Incubator
P3785R0 Library Wording Changes for Defaulted Postfix Increment and Decrement Operators Matthew Taylor 2025-07-13 2025-07 LWG Library
P3787R0 Adjoints to "Enabling list-initialization for algorithms": uninitialized_fill Giuseppe D'Angelo 2025-07-10 2025-07 LEWG Library Evolution,LWG Library
P3788R0 Fixing `std::complex` binary operators Mateusz Pusz 2025-07-11 2025-07 SG6 Numerics,LEWG Library Evolution
P3790R0 Pointer lifetime-end zap proposed solutions: Bag-of-bits pointer class Paul E. McKenney 2025-07-13 2025-07 LEWG Library Evolution
P3791R0 constexpr deterministic random Hana Dusíková 2025-07-15 2025-07 LEWG Library Evolution
P3792R0 Why `constant_wrapper` is not a usable replacement for `nontype` Bronek Kozicki 2025-07-13 2025-07 LEWG Library Evolution,LWG Library
P3793R0 Better shifting Brian Bi 2025-07-15 2025-07 SG6 Numerics
P3794R0 An idea or two on renaming the nontype tag Zhihao Yuan 2025-07-13 2025-07 LEWG Library Evolution
P3795R0 Miscellaneous Reflection Cleanup Barry Revzin 2025-07-15 2025-07 EWG Evolution
P3796R0 Coroutine Task Issues Dietmar Kühl 2025-07-15 2025-07 SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library
P3798R0 The unexpected in std::expected Alex Kremer 2025-07-14 2025-07 LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library
P3799R0 2025-07 Library Evolution Polls Inbal Levi 2025-07-15 2025-07 LEWG Library Evolution
P3801R0 Concerns about the design of std::execution::task Jonathan Müller 2025-07-15 2025-07 LEWG Library Evolution
P3802R0 Poor Functions Daveed Vandevoorde 2025-07-15 2025-07 EWG Evolution,LEWG Library Evolution

Reflection voted into C++26: "Whole new language" -- Herb Sutter

The first trip report from the Sofia meeting is available:

Trip report: June 2025 ISO C++ standards meeting (Sofia, Bulgaria)

by Herb Sutter

From the article:

c26-reflection.pngA unique milestone: “Whole new language”

Today marks a turning point in C++: A few minutes ago, the C++ committee voted the first seven (7) papers for compile-time reflection into draft C++26 to several sustained rounds of applause in the room. I think Hana “Ms. Constexpr” Dusíková summarized the impact of this feature best a few days ago, in her calm deadpan way… when she was told that the reflection paper was going to make it to the Saturday adoption poll, she gave a little shrug and just quietly said: “Whole new language.”

Mic drop.

Results summary: 2025 Annual C++ Developer Survey "Lite"

Thank you to everyone who reponded to our 2025 annual global C++ developer survey. As promised, here is a summary of the results, including one-page AI-generated summaries of your answers to the free-form questions:

CppDevSurvey-2025-summary.pdf

A 100-page version of this report that also includes all individual write-in responses has now been forwarded to the C++ standards committee and C++ product vendors, to help inform C++ evolution and tooling.

Your feedback is valuable, and appreciated.

2025-05 Mailing Available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N5010 WG21 agenda: 16-21 June 2025, Sofia Bulgaria John Spicer 2025-05-04 2025-05   All of WG21
P0085R1 Oo... adding a coherent character sequence to begin octal-literals Axel Naumann 2025-05-19 2025-05 P0085R0 EWG Evolution,LEWG Library Evolution
P0149R2 Generalised member pointers Jeff Snyder 2025-05-19 2025-05 P0149R1 CWG Core
P0149R3 Generalised member pointers Jeff Snyder 2025-05-19 2025-05 P0149R2 CWG Core
P1144R13 std::is_trivially_relocatable Arthur O'Dwyer 2025-05-14 2025-05 P1144R12 EWG Evolution
P1306R4 Expansion statements Dan Katz 2025-05-17 2025-05 P1306R3 CWG Core
P2079R8 Parallel Scheduler Lucian Radu Teodorescu 2025-05-18 2025-05 P2079R7 LWG Library
P2287R5 Designated-initializers for base classes Barry Revzin 2025-05-17 2025-05 P2287R4 EWG Evolution
P2414R7 Pointer lifetime-end zap proposed solutions Paul E. McKenney 2025-05-14 2025-05 P2414R6 SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library
P2434R4 Nondeterministic pointer provenance S. Davis Herring 2025-05-09 2025-05 P2434R3 SG1 Concurrency and Parallelism,SG22 Compatibility,EWG Evolution,CWG Core,LWG Library
P2509R1 A proposal for a type trait to detect value-preserving conversions Giuseppe D'Angelo 2025-05-19 2025-05 P2509R0 SG6 Numerics,LEWG Library Evolution
P2664R10 Proposal to extend std::simd with permutation API Daniel Towner 2025-05-19 2025-05 P2664R9 LWG Library
P2719R5 Type-aware allocation and deallocation functions Louis Dionne 2025-05-12 2025-05 P2719R4 CWG Core
P2902R2 constexpr 'Parallel' Algorithms Oliver Rosten 2025-05-12 2025-05 P2902R1 LEWG Library Evolution,LWG Library
P2927R3 Observing exceptions stored in exception_ptr Gor Nishanov 2025-05-18 2025-05 P2927R2 LWG Library
P2956R1 Add saturating library support to std::simd Daniel Towner 2025-05-19 2025-05 P2956R0 LWG Library
P2970R0 Partial application of concepts in template arguments Corentin Jabot 2025-05-19 2025-05   EWG Evolution
P2996R12 Reflection for C++26 Barry Revzin 2025-05-17 2025-05 P2996R11 EWG Evolution
P3008R5 Atomic floating-point min/max Gonzalo Brito Gadeschi 2025-04-29 2025-05 P3008R4 LWG Library
P3008R5 Atomic floating-point min/max Gonzalo Brito Gadeschi 2025-05-18 2025-05 P3008R4 LWG Library
P3037R6 constexpr std::shared_ptr and friends Paul Keir 2025-05-03 2025-05 P3037R5 LWG Library
P3086R4 Proxy: A Pointer-Semantics-Based Polymorphism Library Mingxin Wang 2025-05-19 2025-05 P3086R3 LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P3096R9 Function Parameter Reflection in Reflection for C++26 Adam Lach 2025-05-15 2025-05 P3096R8 CWG Core,LWG Library
P3100R2 Implicit contract assertions Timur Doumler 2025-05-19 2025-05 P3100R1 EWG Evolution
P3111R6 Atomic Reduction Operations Gonzalo Brito Gadeschi 2025-05-18 2025-05 P3111R5 CWG Core,LWG Library
P3125R4 constexpr pointer tagging Hana Dusíková 2025-05-19 2025-05 P3125R3 LEWG Library Evolution
P3149R10 async_scope -- Creating scopes for non-sequential concurrency Ian Petersen 2025-05-19 2025-05 P3149R9 LWG Library
P3164R4 Early Diagnostics for Sender Expressions Eric Niebler 2025-04-27 2025-05 P3164R3 LWG Library
P3179R8 C++ parallel range algorithms Ruslan Arutyunyan 2025-05-18 2025-05 P3179R7 LWG Library
P3284R4 `write_env` and `unstoppable` Sender Adaptors Eric Niebler 2025-05-16 2025-05 P3284R3 LWG Library
P3293R2 Splicing a base class subobject Barry Revzin 2025-05-11 2025-05 P3293R1 EWG Evolution
P3310R6 Solving issues introduced by relaxed template template parameter matching Matheus Izvekov 2025-05-18 2025-05 P3310R5 EWG Evolution,CWG Core
P3347R2 Invalid/Prospective Pointer Operations Paul E. McKenney 2025-05-14 2025-05 P3347R1 EWG Evolution
P3375R3 Reproducible floating-point results Guy Davidson 2025-05-18 2025-05 P3375R2 SG6 Numerics,SG14 Low Latency,LEWG Library Evolution
P3385R5 Attributes reflection Aurelien Cassagnes 2025-05-19 2025-05 P3385R4 EWG Evolution,LEWG Library Evolution
P3394R3 Annotations for Reflection Daveed Vandevoorde 2025-05-17 2025-05 P3394R2 CWG Core,LWG Library
P3395R4 Fix encoding issues and add a formatter for std::error_code Victor Zverovich 2025-04-27 2025-05 P3395R3 LEWG Library Evolution
P3402R3 A Safety Profile Verifying Initialization Marc-André Laverdière 2025-05-16 2025-05 P3402R2 SG23 Safety and Security,EWG Evolution
P3411R2 `any_view` Hui Xie 2025-05-17 2025-05 P3411R1 SG9 Ranges,LEWG Library Evolution
P3412R2 String interpolation Bengt Gustafsson 2025-05-18 2025-05 P3412R1 EWG Evolution
P3439R2 Chained comparisons: Safe, correct, efficient Herb Sutter 2025-05-10 2025-05 P3439R1 EWG Evolution
P3442R2 [[invalidate_dereferencing]] attribute Patrice Roy 2025-05-19 2025-05 P3442R1 EWG Evolution
P3480R5 std::simd is a range Matthias Kretz 2025-05-15 2025-05 P3480R4 LWG Library
P3516R2 Uninitialized algorithms for relocation Louis Dionne 2025-05-16 2025-05 P3516R1 LWG Library
P3552R2 Add a Coroutine Task Type Dietmar Kühl 2025-05-18 2025-05 P3552R1 LWG Library
P3556R1 Input files are source files Alisdair Meredith 2025-05-19 2025-05 P3556R0 SG16 Unicode,CWG Core
P3557R2 High-Quality Sender Diagnostics with Constexpr Exceptions Eric Niebler 2025-05-16 2025-05 P3557R1 LWG Library
P3560R1 Error Handling in Reflection Barry Revzin 2025-05-19 2025-05 P3560R0 EWG Evolution,LEWG Library Evolution
P3565R1 Virtual floating-point values S. Davis Herring 2025-05-19 2025-05 P3565R0 SG6 Numerics
P3566R1 You shall not pass `char*` - Safety concerns working with unbounded null-terminated strings Marco Foco 2025-05-19 2025-05 P3566R0 SG23 Safety and Security,LEWG Library Evolution,LWG Library,ARG ABI Review Group
P3570R1 optional variants in sender/receiver Fabio Fracassi 2025-05-19 2025-05 P3570R0 LEWG Library Evolution
P3588R1 Allow static data members in local and unnamed classes Brian Bi 2025-05-17 2025-05 P3588R0 EWG Evolution
P3589R2 C++ Profiles: The Framework Gabriel Dos Reis 2025-05-19 2025-05 P3589R1 EWG Evolution
P3617R0 std::meta::reflect_constant_{array,string} Barry Revzin 2025-05-16 2025-05   LEWG Library Evolution
P3631R0 Cleaning up the trivial relocation APIs in C++26 Louis Dionne 2025-05-18 2025-05   LEWG Library Evolution,LWG Library
P3649R0 A principled approach to safety profiles Jonathan Müller 2025-05-19 2025-05   SG23 Safety and Security
P3655R1 zstring_view Peter Bindels 2025-05-19 2025-05 P3655R0 LEWG Library Evolution
P3658R1 Adjust identifier following new Unicode recommendations Robin Leroy 2025-05-15 2025-05 P3658R0 EWG Evolution
P3663R1 Future-proof `submdspan-mapping` Mark Hoemmen 2025-05-16 2025-05 P3663R0 LWG Library
P3668R1 Defaulting Postfix Increment and Decrement Operations Matthew Taylor 2025-05-16 2025-05 P3668R0 EWGI SG17: EWG Incubator
P3669R1 Non-Blocking Support for `std::execution` Detlef Vollmann 2025-05-17 2025-05 P3669R0 SG1 Concurrency and Parallelism,LEWG Library Evolution
P3670R1 Pack Indexing for Template Names Corentin Jabot 2025-05-03 2025-05 P3670R0 EWG Evolution
P3676R0 Enhanced inline Keyword with Configurable Inlining Levels Stephen Berry 2025-04-17 2025-05   SG14 Low Latency,EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator,EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library
P3677R0 Preserving LC_CTYPE at program start for UTF-8 locales Corentin Jabot 2025-05-03 2025-05   SG16 Unicode,SG22 Compatibility
P3678R0 Arbitrary attributes in define_aggregate Aurelien Cassagnes 2025-05-14 2025-05   SG7 Reflection
P3679R0 SFINAEable constexpr exceptions Hana Dusíková 2025-05-16 2025-05   EWG Evolution
P3681R0 char_traits: Stop the bleeding Corentin Jabot 2025-05-19 2025-05   SG16 Unicode
P3682R0 Remove std::execution::split Robert Leahy 2025-05-06 2025-05   LEWG Library Evolution
P3685R0 Rename async_scope_token Robert Leahy 2025-05-07 2025-05   LEWG Library Evolution
P3686R0 Allow named modules to export macros Chuanqi Xu 2025-05-07 2025-05   EWG Evolution
P3687R0 Final Adjustments to C++26 Reflection Dan Katz 2025-05-15 2025-05   EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library
P3688R0 ASCII character utilities Jan Schultke 2025-05-19 2025-05   SG16 Unicode,LEWG Library Evolution
P3689R0 Convenience functions for Random number generation Thomas Mejstrik 2025-05-11 2025-05   LEWGI SG18: LEWG Incubator
P3690R0 Consistency fix: Make simd reductions SIMD-generic Olaf Krzikalla 2025-05-13 2025-05   LEWG Library Evolution
P3691R0 Reconsider naming of the namespace for "std::simd" Matthias Kretz 2025-05-19 2025-05   LEWG Library Evolution
P3692R0 How to Avoid OOTA Without Really Trying Paul E. McKenney 2025-05-13 2025-05   SG1 Concurrency and Parallelism
P3693R0 SG14: Low Latency/Games/Embedded/Financial Trading virtual Meeting Minutes 2025/04/09-2025/05/07 Michael Wong 2025-05-15 2025-05   SG14 Low Latency
P3694R0 SG19: Machine Learning virtual Meeting Minutes to 2025/03/13-2025/05/08 Michael Wong 2025-05-15 2025-05   SG19 Machine Learning
P3695R0 Deprecate implicit conversions between Unicode character types Jan Schultke 2025-05-17 2025-05   SG16 Unicode,EWG Evolution
P3696R0 Discovering Header Units via Module Maps Michael Spencer 2025-05-19 2025-05   SG15 Tooling
P3697R0 Minor additions to C++26 standard library hardening Konstantin Varlamov 2025-05-15 2025-05   LEWG Library Evolution,LWG Library
P3698R0 Cross-capacity comparisons for inplace_vector Charles Hussong 2025-05-19 2025-05   LEWG Library Evolution
P3699R0 Rename `conqueue_errc` Detlef Vollmann 2025-05-17 2025-05   LEWG Library Evolution
P3700R0 Making Safe C++ happen Peter Bindels 2025-05-19 2025-05   SG21 Contracts,SG23 Safety and Security,EWG Evolution
P3701R0 Concepts for integer types, not integral types Jan Schultke 2025-05-19 2025-05   LEWG Library Evolution
P3702R0 Stricter requirements for document submissions (SD-7) Jan Schultke 2025-05-19 2025-05   All of WG21
P3703R0 Constness and Locking Yoaodan Zhang 2025-05-18 2025-05   SG1 Concurrency and Parallelism
P3704R0 What are profiles? Bjarne Stroustrup 2025-05-19 2025-05   SG20 Education,SG23 Safety and Security,EWG Evolution,LEWG Library Evolution
P3705R0 A Sentinel for Null-Terminated Strings Eddie Nolan 2025-05-19 2025-05   SG9 Ranges,LEWG Library Evolution
P3706R0 Rename join and nest in async_scope proposal Ruslan Arutyunyan 2025-05-19 2025-05   LEWG Library Evolution
P3707R0 A std::is_always_exhaustive trait Patrice Roy 2025-05-19 2025-05   SG14 Low Latency,LEWG Library Evolution
P3709R0 Reconsider parallel ranges::rotate_copy and ranges::reverse_copy Ruslan Arutyunyan 2025-05-18 2025-05   LEWG Library Evolution
P3710R0 zstring_view: a string_view with guaranteed null termination Alexey Shevlyakov, Marco Foco 2025-05-19 2025-05   SG23 Safety and Security,LEWG Library Evolution
P3711R0 Safer StringViewLike Functions for Replacing char* strings Marco Foco 2025-05-19 2025-05   SG23 Safety and Security,LEWG Library Evolution
P3712R0 2025-05 Library Evolution Polls Inbal Levi 2025-05-19 2025-05   All of WG21
P3714R0 Virtual values have Virtual Value Joshua Cranmer 2025-05-19 2025-05   SG6 Numerics
P3715R0 Tightening floating-point semantics for C++ Joshua Cranmer 2025-05-19 2025-05   SG6 Numerics,SG22 Compatibility
P3716R0 Subsetting Peter Bindels 2025-05-19 2025-05   SG23 Safety and Security,EWG Evolution
P3717R0 Update Annex E onto Unicode 16 Steve Downey 2025-05-19 2025-05   SG16 Unicode,EWG Evolution,CWG Core

2025 Annual C++ Developer Survey "Lite"

cpp_logo.png

The annual global C++ developer survey is now open. As the name suggests, it's short:

2025 Annual C++ Developer Survey "Lite"

Please take 10 minutes or so to participate! A summary of the results, including aggregated highlights of common answers in the write-in responses, will be posted publicly here on isocpp.org and shared with the C++ standardization committee participants to help inform C++ evolution.

The survey closes in one week.

Thank you for participating and helping to inform our committee and community!

2025-04 Mailing Available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
P0260R17 C++ Concurrent Queues Detlef Vollmann 2025-04-15 2025-04 P0260R16 SG1 Concurrency and Parallelism,LWG Library
P1789R1 Library Support for Expansion Statements Alisdair Meredith 2025-04-15 2025-04 P1789R0 LEWG Library Evolution
P2019R8 Thread attributes Corentin Jabot 2025-03-18 2025-04 P2019R7 LWG Library
P2902R1 constexpr 'Parallel' Algorithms Oliver Rosten 2025-04-15 2025-04 P2902R0 LEWG Library Evolution,LWG Library
P2988R12 std::optional<T&> Steve Downey 2025-04-04 2025-04 P2988R11 LWG Library
P2996R11 Reflection for C++26 Barry Revzin 2025-04-16 2025-04 P2996R10 EWG Evolution
P3037R5 constexpr std::shared_ptr and friends Paul Keir 2025-03-27 2025-04 P3037R4 LWG Library
P3096R8 Function Parameter Reflection in Reflection for C++26 Adam Lach 2025-04-14 2025-04 P3096R7 CWG Core,LWG Library
P3126R3 Graph Library: Overview Phil Ratzloff 2025-04-13 2025-04 P3126R2 SG14 Low Latency,SG19 Machine Learning
P3127R1 Graph Library: Background and Terminology Phil Ratzloff 2025-04-13 2025-04 P3127R0 SG14 Low Latency,SG19 Machine Learning
P3128R3 Graph Library: Algorithms Phil Ratzloff 2025-04-13 2025-04 P3128R2 SG14 Low Latency,SG19 Machine Learning
P3129R1 Graph Library: Views Phil Ratzloff 2025-04-13 2025-04 P3129R0 SG14 Low Latency,SG19 Machine Learning
P3130R3 Graph Library: Graph Container Interface Phil Ratzloff 2025-04-13 2025-04 P3130R2 SG14 Low Latency,SG19 Machine Learning
P3131R3 Graph Library: Graph Containers Phil Ratzloff 2025-04-13 2025-04 P3131R2 SG14 Low Latency,SG19 Machine Learning
P3161R4 Unified integer overflow arithmetic Tiago Freire 2025-03-25 2025-04 P3161R3 SG6 Numerics,LEWGI SG18: LEWG Incubator
P3295R3 Freestanding constexpr containers and constexpr exception types Ben Craig 2025-03-25 2025-04 P3295R2 LWG Library
P3312R1 Overload Set Types Bengt Gustafsson 2025-04-16 2025-04 P3312R0 EWGI SG17: EWG Incubator
P3312R1 Overload Set Types Bengt Gustafsson 2025-04-16 2025-04 P3312R0 EWGI SG17: EWG Incubator
P3348R3 C++26 should refer to C23 not C17 Jonathan Wakely 2025-03-21 2025-04 P3348R2 SG6 Numerics,LWG Library
P3371R4 Fix C++26 by making the rank-1, rank-2, rank-k, and rank-2k updates consistent with the BLAS Mark Hoemmen 2025-04-06 2025-04 P3371R3 LWG Library
P3388R2 When Do You Know connect Doesn't Throw? Robert Leahy 2025-04-01 2025-04 P3388R1 LWG Library
P3391R1 constexpr std::format Barry Revzin 2025-04-15 2025-04 P3391R0 LEWG Library Evolution
P3395R3 Fix encoding issues and add a formatter for std::error_code Victor Zverovich 2025-03-22 2025-04 P3395R2 LEWG Library Evolution
P3395R3 Fix encoding issues and add a formatter for std::error_code Victor Zverovich 2025-03-22 2025-04 P3395R2 LEWG Library Evolution
P3481R3 std::execution::bulk() issues Lucian Radu Teodorescu 2025-04-16 2025-04 P3481R2 LWG Library
P3514R0 Implementing "RFC 3514: The Security Flag" for C++ Steve Downey 2025-04-06 2025-04   LEWGI SG18: LEWG Incubator,All of WG21
P3561R2 Index based coproduct operations on variant, and library wording Esa Pulkkinen 2025-04-06 2025-04 P3561R1 LEWGI SG18: LEWG Incubator
P3652R1 Constexpr floating-point <charconv> functions Lénárd Szolnoki 2025-04-16 2025-04 P3652R0 LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P3656R1 Initial draft proposal for core language UB white paper: Process and major work items Herb Sutter 2025-03-25 2025-04 P3656R0 EWG Evolution
P3665R0 Vertical Text Processing Jeremy Rifkin 2025-04-01 2025-04   EWG Evolution
P3667R0 Extending range-for loop with an expression statement Jose Daniel Garcia 2025-04-10 2025-04   EWGI SG17: EWG Incubator
P3668R0 Defaulting Postfix Increment and Decrement Operations Matthew Taylor 2025-04-15 2025-04   EWGI SG17: EWG Incubator
P3669R0 Non-Blocking Support for `std::execution` Detlef Vollmann 2025-04-15 2025-04   SG1 Concurrency and Parallelism,LEWG Library Evolution
P3670R0 Pack Indexing for Template Names Corentin Jabot 2025-04-16 2025-04   EWG Evolution
P3671R0 Clarifying the interaction of the literal and execution encodings Corentin Jabot 2025-04-16 2025-04   SG16 Unicode
P3672R0 On Windows, Systems APIs, Text Encodings, and Pragmatism Corentin Jabot 2025-04-16 2025-04   SG16 Unicode

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.