Standardization

2025-12 Mailing Available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N5011 Brno 2026 Hana Dusíková 2025-10-21 2025-12   All of WG21
N5029 WG21 2025-10 Kona Admin telecon minutes Nina Ranns 2025-10-27 2025-12   All of WG21
N5031 WG21 2025-11 Kona Minutes of Meeting Nina Ranns 2025-11-28 2025-12   All of WG21
N5032 Working Draft, Standard for Programming Language C++ Thomas Köppe 2025-12-15 2025-12   All of WG21
N5033 Editors' Report - Programming Languages - C++ Thomas Köppe 2025-12-15 2025-12   All of WG21
P1317R2 Remove return type deduction in std::apply Aaryaman Sagar 2025-11-13 2025-12 P1317R1 LEWG Library Evolution
P1789R2 Library Support for Expansion Statements Alisdair Meredith 2025-11-05 2025-12 P1789R1 LWG Library
P1789R3 Library Support for Expansion Statements Alisdair Meredith 2025-11-07 2025-12 P1789R2 LWG Library
P2243R0 Language linkage for templates S. Davis Herring 2025-10-08 2025-12   EWG Evolution
P2728R10 Unicode in the Library, Part 1: UTF Transcoding Eddie Nolan 2025-12-14 2025-12 P2728R9 SG9 Ranges,SG16 Unicode,LEWG Library Evolution
P2728R9 Unicode in the Library, Part 1: UTF Transcoding Eddie Nolan 2025-11-06 2025-12 P2728R8 SG9 Ranges,SG16 Unicode,LEWG Library Evolution
P3064R3 How to Avoid OOTA Without Really Trying (Informational) Paul E. McKenney 2025-11-15 2025-12 P3064R2 SG1 Concurrency and Parallelism
P3097R1 Contracts for C++: Virtual functions Timur Doumler 2025-12-13 2025-12 P3097R0 EWG Evolution
P3099R1 Contracts for C++: User-defined diagnostic messages Timur Doumler 2025-10-19 2025-12 P3099R0 EWG Evolution
P3100R5 Implicit contract assertions Timur Doumler 2025-12-15 2025-12 P3100R4 EWG Evolution
P3216R2 views::slice Hewill Kang 2025-11-07 2025-12 P3216R1 SG9 Ranges,LEWG Library Evolution,LWG Library
P3220R2 views::take_before Hewill Kang 2025-11-07 2025-12 P3220R1 SG9 Ranges,LEWG Library Evolution,LWG Library,Direction Group
P3371R5 Fix C++26 by making the rank-1, rank-2, rank-k, and rank-2k updates consistent with the BLAS Mark Hoemmen 2025-11-07 2025-12 P3371R4 LWG Library
P3388R3 When Do You Know connect Doesn't Throw? Robert Leahy 2025-11-05 2025-12 P3388R2 LWG Library
P3391R2 constexpr std::format Barry Revzin 2025-11-07 2025-12 P3391R1 LWG Library
P3395R5 Fix encoding issues and add a formatter for std::error_code Victor Zverovich 2025-10-19 2025-12 P3395R4 LEWG Library Evolution
P3400R2 Controlling Contract-Assertion Properties Joshua Berne 2025-12-14 2025-12 P3400R1 SG21 Contracts,EWG Evolution
P3412R3 String Interpolation Bengt Gustafsson 2025-12-14 2025-12 P3412R2 SG16 Unicode,EWG Evolution
P3424R1 Define Delete With Throwing Exception Specification Alisdair Meredith 2025-10-26 2025-12 P3424R0 CWG Core
P3505R2 Fix the default floating-point representation in std::format Victor Zverovich 2025-10-07 2025-12 P3505R1 LEWG Library Evolution
P3505R3 Fix the default floating-point representation in std::format Victor Zverovich 2025-10-08 2025-12 P3505R2 LWG Library
P3612R1 Harmonize proxy-reference operations (LWG 3638 and 4187) Arthur O'Dwyer 2025-11-06 2025-12 P3612R0 LWG Library
P3642R3 Carry-less product: std::clmul Jan Schultke 2025-11-14 2025-12 P3642R2 LEWG Library Evolution
P3657R1 A Grammar for Whitespace Characters Alisdair Meredith 2025-10-20 2025-12 P3657R0 CWG Core
P3657R2 A Grammar for Whitespace Characters Alisdair Meredith 2025-11-05 2025-12 P3657R1 CWG Core
P3666R2 Bit-precise integers Jan Schultke 2025-12-13 2025-12 P3666R1 EWG Evolution,LEWG Library Evolution
P3684R1 Fix erroneous behaviour termination semantics for C++26 Timur Doumler 2025-11-07 2025-12 P3684R0 EWG Evolution,CWG Core
P3688R5 ASCII character utilities Jan Schultke 2025-12-13 2025-12 P3688R4 SG16 Unicode
P3692R3 How to Avoid OOTA Without Really Trying Paul E. McKenney 2025-11-13 2025-12 P3692R2 SG1 Concurrency and Parallelism,EWG Evolution
P3695R3 Deprecate implicit conversions between char8_t and char16_t or char32_t Jan Schultke 2025-11-20 2025-12 P3695R2 EWG Evolution
P3724R2 Integer division Jan Schultke 2025-12-13 2025-12 P3724R1 LEWG Library Evolution
P3726R1 Adjustments to Union Lifetime Rules Barry Revzin 2025-12-14 2025-12 P3726R0 EWG Evolution,LEWG Library Evolution,CWG Core
P3735R1 partial_sort_at_most, nth_element_at_most Jan Schultke 2025-11-17 2025-12 P3735R0 LEWG Library Evolution
P3737R2 std::array is a wrapper for an array! Jan Schultke 2025-11-20 2025-12 P3737R1 LEWG Library Evolution
P3739R4 Standard Library Hardening - using std::optional Jarrad J Waterloo 2025-11-06 2025-12 P3739R3 LWG Library
P3744R0 Explicit Provenance APIs Gonzalo Brito Gadeschi 2025-12-02 2025-12   SG1 Concurrency and Parallelism
P3751R0 A gentle introduction to pointer authentication Oliver Hunt 2025-11-04 2025-12   SG23 Safety and Security
P3751R1 A gentle introduction to pointer authentication Oliver Hunt 2025-11-04 2025-12 P3751R0 SG23 Safety and Security
P3763R1 Remove redundant reserve_hint members from view classes Hewill Kang 2025-11-04 2025-12 P3763R0 SG9 Ranges,LEWG Library Evolution,LWG Library
P3772R1 std::simd overloads for bit permutations Jan Schultke 2025-11-13 2025-12 P3772R0 LEWG Library Evolution
P3793R1 Better shifting Brian Bi 2025-11-19 2025-12 P3793R0 SG6 Numerics
P3804R1 Iterating on parallel_scheduler Lucian Radu Teodorescu 2025-12-15 2025-12 P3804R0 LWG Library
P3815R1 Add scope_association concept to P3149 Jessica Wong 2025-11-07 2025-12 P3815R0 All of WG21
P3816R1 Hashing meta::info Matt Cummins 2025-12-15 2025-12 P3816R0 SG7 Reflection
P3824R2 Static storage for braced initializers NBC examples Jarrad J Waterloo 2025-11-01 2025-12 P3824R1 SG23 Safety and Security,CWG Core
P3826R1 Fix or Remove Sender Algorithm Customization Eric Niebler 2025-11-03 2025-12 P3826R0 SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library
P3826R2 Fix or Remove Sender Algorithm Customization Eric Niebler 2025-11-07 2025-12 P3826R1 SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library
P3833R0 std::unique_multilock Ted Lyngmo 2025-12-09 2025-12   SG1 Concurrency and Parallelism,LEWGI SG18: LEWG Incubator
P3834R2 Defaulting the Compound Assignment Operators Matthew Taylor 2025-12-14 2025-12 P3834R1 EWGI SG17: EWG Incubator
P3836R2 Make optional<T&> trivially copyable (NB comment US 134-215) Jan Schultke 2025-11-05 2025-12 P3836R1 LEWG Library Evolution,LWG Library
P3843R1 Reconsider R0 of P3774 (Rename std::nontype) for C++26 Jonathan Müller 2025-11-17 2025-12 P3843R0 LEWG Library Evolution
P3843R2 std::function_wrapper Jonathan Müller 2025-11-17 2025-12 P3843R1 LEWG Library Evolution
P3844R1 Restore simd::vec broadcast from int Matthias Kretz 2025-11-07 2025-12 P3844R0 LEWG Library Evolution
P3844R2 Restore simd::vec broadcast from int Matthias Kretz 2025-11-19 2025-12 P3844R1 LWG Library
P3847R0 Lambdas capture left to right S. Davis Herring 2025-10-08 2025-12   EWG Evolution
P3849R1 SIS/TK611 considerations on Contract Assertions Harald Achitz 2025-10-12 2025-12 P3849R0 SG21 Contracts
P3852R0 a (constexpr) utility to check if pointer points between two related pointers Hana Dusíková 2025-12-13 2025-12   EWG Evolution,LEWG Library Evolution
P3856R1 New reflection metafunctions - is_structural_type (US NB comment 49) and is_destructurable_type Jagrut Dave 2025-11-01 2025-12 P3856R0 SG7 Reflection,LEWG Library Evolution
P3856R2 New reflection metafunctions - is_structural_type (US NB comment 49) and is_destructurable_type Jagrut Dave 2025-11-01 2025-12 P3856R1 SG7 Reflection,LEWG Library Evolution
P3856R3 New reflection metafunctions - is_structural_type (US NB comment 49) and is_destructurable_type Jagrut Dave 2025-11-01 2025-12 P3856R2 SG7 Reflection,LEWG Library Evolution
P3858R1 A Lifetime-Management Primitive for Trivially Relocatable Types David Sankel 2025-11-03 2025-12 P3858R0 LEWG Library Evolution
P3860R1 Proposed Resolution for NB Comment GB13-309 atomic_ref is not convertible to atomic_ref Hui Xie 2025-11-04 2025-12 P3860R0 LEWG Library Evolution
P3868R1 Allow #line before module declarations Michael Spencer 2025-10-30 2025-12 P3868R0 EWG Evolution
P3869R0 Slides for P3666R1 Bit-precise integers Jan Schultke 2025-10-26 2025-12   SG22 Compatibility
P3869R1 Slides for P3666R1 Bit-precise integers Jan Schultke 2025-11-02 2025-12 P3869R0 SG6 Numerics
P3876R0 Extending <charconv> support to more character types Jan Schultke 2025-11-13 2025-12   SG16 Unicode
P3878R0 C++26 Contracts are not a good fit for standard library hardening Ville Voutilainen 2025-10-23 2025-12   LEWG Library Evolution,LWG Library
P3878R1 Standard library hardening should not use the 'observe' semantic Ville Voutilainen 2025-11-07 2025-12 P3878R0 LWG Library
P3880R0 Make subspan aware of compile-time constants Hewill Kang 2025-11-11 2025-12   LEWG Library Evolution
P3881R0 Forward-progress for all infinite loops Simon Cooksey 2025-11-06 2025-12   SG1 Concurrency and Parallelism
P3883R0 A Proposal for a Boolean Flip Operator in C++ Muhammad Taaha 2025-11-07 2025-12   EWGI SG17: EWG Incubator
P3884R0 Slides for P3505R2 Fix the default floating-point representation in std::format Victor Zverovich 2025-10-19 2025-12   LEWG Library Evolution
P3885R0 Add a formatter for std::error_category Victor Zverovich 2025-10-19 2025-12   SG16 Unicode
P3886R0 Wording for AT1-057 Michael Florian Hava 2025-10-21 2025-12   EWG Evolution
P3887R0 Make when_all a Ronseal Algorithm Robert Leahy 2025-10-21 2025-12   SG1 Concurrency and Parallelism,LEWG Library Evolution
P3887R1 Make when_all a Ronseal Algorithm Robert Leahy 2025-11-07 2025-12 P3887R0 SG1 Concurrency and Parallelism,LEWG Library Evolution
P3889R0 A minimal solution for contracts, or, what is an MVP? Harald Achitz 2025-10-25 2025-12   EWG Evolution
P3890R0 Add description for parallel memory algorithms Ruslan Arutyunyan 2025-11-07 2025-12   LWG Library
P3891R0 Improve readability of the C++ grammar by adding a syntax for groups and repetitions Jan Schultke 2025-11-22 2025-12   CWG Core,LWG Library
P3892R0 unless_stop_requested Robert Leahy 2025-10-27 2025-12   SG1 Concurrency and Parallelism,LEWG Library Evolution
P3893R0 The CppCon 2025 Talk on Contracts and CodeQL in Context Mike Fairhurst 2025-10-24 2025-12   EWG Evolution,LEWG Library Evolution
P3895R0 Slides for P3724R1 - Integer division Jan Schultke 2025-11-03 2025-12   SG6 Numerics
P3896R0 Design goals for a contract support facility Andrzej Krzemieński 2025-10-30 2025-12   EWG Evolution
P3897R0 Slides for P3776R1 - More trailing commas Jan Schultke 2025-10-31 2025-12   EWG Evolution
P3898R0 Slides for P3793R0 - Better shifting Jan Schultke 2025-11-02 2025-12   SG6 Numerics
P3899R0 Clarify the behavior of floating-point overflow Jan Schultke 2025-12-13 2025-12   SG6 Numerics
P3902R0 Against implicit conversions for indirect Jonathan Coe 2025-10-31 2025-12   LEWG Library Evolution
P3902R1 Against implicit conversions for indirect Jonathan Coe 2025-11-06 2025-12 P3902R0 LEWG Library Evolution
P3902R2 Against implicit conversions for indirect Jonathan Coe 2025-11-06 2025-12 P3902R1 LEWG Library Evolution
P3904R0 When paths go WTF: making formatting lossless Victor Zverovich 2025-11-05 2025-12   SG16 Unicode
P3905R0 C++ Standard Library Ready Issues to be moved in Kona, Nov. 2025 Jonathan Wakely 2025-10-30 2025-12   All of WG21
P3906R0 C++ Standard Library Immediate Issues to be moved in Kona, Nov. 2025 Jonathan Wakely 2025-11-28 2025-12   All of WG21
P3907R0 Waving more ::result_type goodbye Zhihao Yuan 2025-11-03 2025-12   LEWG Library Evolution
P3908R0 constexpr from_chars<float> / to_chars<float> Hana Dusíková 2025-12-14 2025-12   LEWG Library Evolution
P3909R0 Contracts should go into a White Paper - even at this late point Ville Voutilainen 2025-11-02 2025-12   EWG Evolution
P3910R0 Improving safety of C++26 contracts Bengt Gustafsson 2025-11-02 2025-12   SG21 Contracts,EWG Evolution
P3911R0 RO 2-056 6.11.2 [basic.contract.eval] Make Contracts Reliably Non-Ignorable Darius Neațu 2025-12-10 2025-12   SG21 Contracts,EWG Evolution
P3912R0 Design considerations for always-enforced contract assertions Timur Doumler 2025-12-15 2025-12   EWG Evolution
P3913R0 Optimize for std::optional in range adaptors Steve Downey 2025-11-05 2025-12   LEWG Library Evolution,LWG Library
P3913R1 Optimize for std::optional in range adaptors Steve Downey 2025-11-07 2025-12 P3913R0 LWG Library
P3914R0 Assorted NB comment resolutions for Kona 2025 Tim Song 2025-11-07 2025-12   LWG Library
P3915R0 Responses to Trivial Relocation NB Comments Pablo Halpern 2025-11-07 2025-12   EWG Evolution,LEWG Library Evolution
P3917R0 A Lifetime-Management Primitive for Trivially Relocatable Types (Presentation) David Sankel 2025-11-05 2025-12   EWG Evolution,LEWG Library Evolution
P3919R0 Guaranteed-(quick-)enforced contracts Ville Voutilainen 2025-12-15 2025-12   EWG Evolution
P3920R0 Wording for NB comment resolution on trivial relocation Louis Dionne 2025-11-07 2025-12   EWG Evolution,CWG Core,LWG Library
P3921R0 Core Language Working Group "ready" Issues for the November, 2025 meeting Jens Maurer 2025-11-07 2025-12   CWG Core
P3922R0 Missing deduction guide from simd::mask to simd::vec Matthias Kretz 2025-11-06 2025-12   LEWG Library Evolution,LWG Library
P3922R1 Missing deduction guide from simd::mask to simd::vec Matthias Kretz 2025-11-07 2025-12 P3922R0 LWG Library
P3923R0 Additional NB comment resolutions for Kona 2025 Tim Song 2025-11-07 2025-12   LWG Library
P3924R0 Fix inappropriate font choices for "declaration" Jan Schultke 2025-12-13 2025-12   CWG Core
P3925R0 RO 3-292 29.10.8.3 [simd.comparison] Make `basic_simd` a Regular Type (with Boolean `operator==`) Darius Neațu 2025-11-07 2025-12   LEWG Library Evolution
P3926R0 Slides: operator T& on indirect (in defense of US 77-140) Zhihao Yuan 2025-11-07 2025-12   LEWG Library Evolution
P3928R0 static_sized_range Hewill Kang 2025-12-04 2025-12   SG9 Ranges,LEWG Library Evolution,LWG Library
P3929R0 Fix safety hazard in std::function_ref Jonathan Müller 2025-11-17 2025-12   LEWG Library Evolution
P3931R0 consteval all the non-allocating operator"" things Hana Dusíková 2025-12-14 2025-12   LEWG Library Evolution
P3933R0 constexpr std::hive Hana Dusíková 2025-12-14 2025-12   LEWG Library Evolution
P3935R0 Rebasing <cmath> on C23 Jan Schultke 2025-12-13 2025-12   SG6 Numerics,SG22 Compatibility
P3936R0 Safer atomic_ref::address (FR-030-310) Corentin Jabot 2025-12-14 2025-12   LEWG Library Evolution
P3937R0 Type Erasure Requirements For Future Trivial Relocation Design Mingxin Wang 2025-12-14 2025-12   EWG Evolution
P3938R0 Values of floating-point types Jan Schultke 2025-12-14 2025-12   SG6 Numerics
P3940R0 Rename concept tags for C++26: sender_t to sender_tag Arthur O'Dwyer 2025-12-09 2025-12   LEWG Library Evolution
P3941R0 Scheduler Affinity Dietmar Kühl 2025-12-14 2025-12   SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library
P3945R0 Comments on D3933R0 (constexpr hive) Matt Bentley 2025-12-14 2025-12   LEWG Library Evolution,LWG Library
P3946R0 Designing enforced assertions Andrzej Krzemieński 2025-12-14 2025-12   EWG Evolution
P3947R0 identifier_of Should Return std::string Eddie Nolan 2025-12-14 2025-12   EWG Evolution,LEWG Library Evolution
P3948R0 constant_wrapper is the only tool needed for passing constant expressions Matthias Kretz 2025-12-15 2025-12   LEWG Library Evolution

2025-09 Mailing Available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N5020 2026-11 Rio De Janeiro, Brazil Matheus Izvekov 2025-09-10 2025-09 All of WG21
P2953R2 Forbid defaulting operator=(X&&) && Arthur O'Dwyer 2025-09-02 2025-09 P2953R1 EWGI SG17: EWG Incubator
P3347R5 Invalid/Prospective Pointer Operations Paul E. McKenney 2025-08-27 2025-09 P3347R4 CWG Core
P3567R1 `flat_meow` Fixes Hui Xie 2025-09-06 2025-09 P3567R0 LWG Library
P3579R2 Fix matching of constant template parameters when matching template template parameters Matheus Izvekov 2025-09-10 2025-09 P3579R1 CWG Core
P3612R0 Harmonize proxy-reference operations (LWG 3638 and 4187) Arthur O'Dwyer 2025-09-02 2025-09 LWG Library
P3666r0 Bit-precise integers Jan Schultke 2025-09-11 2025-09 SG6 Numerics,SG22 Compatibility,EWG Evolution,LEWG Library Evolution
P3688R3 ASCII character utilities Jan Schultke 2025-09-09 2025-09 P3688R2 SG16 Unicode
P3695R1 Deprecate implicit conversions between Unicode character types Jan Schultke 2025-09-09 2025-09 P3695R0 SG16 Unicode,EWG Evolution
P3702R2 Stricter requirements for document submissions (SD-7) Jan Schultke 2025-09-10 2025-09 P3702R1 All of WG21
P3754R1 Slides for P3100R2 presentation to EWG Timur Doumler 2025-08-21 2025-09 P3754R0 EWG Evolution
P3776R0 More trailing commas Jan Schultke 2025-08-26 2025-09 EWG Evolution
P3776R1 More trailing commas Jan Schultke 2025-09-09 2025-09 P3776R0 EWG Evolution
P3784R1 range-if Michael Florian Hava 2025-09-10 2025-09 P3784R0 EWGI SG17: EWG Incubator
P3786R0 Tuple protocol for fixed-size spans Michael Florian Hava 2025-08-21 2025-09 LEWG Library Evolution
P3811R0 default comparison memory safety Jarrad J Waterloo 2025-08-15 2025-09 SG23 Safety and Security
P3812R0 const and & in default member functions Jarrad J Waterloo 2025-08-16 2025-09 EWG Evolution,CWG Core
P3813R0 execution::task::valueless() Michael Florian Hava 2025-09-10 2025-09 LEWG Library Evolution
P3815R0 Add scope_association concept to P3149 Jessica Wong 2025-09-01 2025-09 All of WG21
P3816R0 Hashing meta::info Matt Cummins 2025-09-01 2025-09 SG7 Reflection,LEWG Library Evolution,LWG Library,All of WG21
P3818R0 constexpr exception fix for potentially constant initialization Hana Dusíková 2025-08-31 2025-09 LEWG Library Evolution
P3818R1 constexpr exception fix for potentially constant initialization Hana Dusíková 2025-09-09 2025-09 P3818R0 LEWG Library Evolution
P3819R0 Remove evaluation_exception() from contract-violation handling for C++26 Peter Bindels 2025-09-05 2025-09 LEWG Library Evolution
P3820R0 Split constexpr uncaught_exceptions into distinct runtime and consteval functions Lénárd Szolnoki 2025-08-31 2025-09 LEWG Library Evolution
P3820R1 Fix constexpr uncaught_exceptions and current_exception Lénárd Szolnoki 2025-09-06 2025-09 P3820R0 LEWG Library Evolution
P3822R0 Conditional noexcept specifiers in compound requirements Viacheslav Luchkin 2025-09-01 2025-09 EWGI SG17: EWG Incubator,EWG Evolution
P3823R0 Wording for US NB comment 10 Arthur O'Dwyer 2025-09-10 2025-09 EWG Evolution
P3824R0 Static storage for braced initializers NBC examples Jarrad J Waterloo 2025-09-06 2025-09 SG23 Safety and Security,CWG Core
P3827R0 Wording for US NB comment 9 Arthur O'Dwyer 2025-09-10 2025-09 EWG Evolution
P3829R0 Contracts do not belong in the language David Chisnall 2025-09-03 2025-09 EWG Evolution,CWG Core,LWG Library
P3830R0 NB-Commenting is Not a Vehicle for Redesigning inplace_vector Nevin Liber 2025-09-03 2025-09 LEWG Library Evolution
P3831R0 Contract Labels Should Use Annotation Syntax Yihe Li 2025-09-06 2025-09 SG21 Contracts
P3832R0 Timed lock algorithms for multiple lockables Ted Lyngmo 2025-09-06 2025-09 LEWGI SG18: LEWG Incubator
P3834R0 Defaulting the Compound Assignment Operators Matthew Taylor 2025-09-10 2025-09 EWGI SG17: EWG Incubator
P3835R0 Contracts make C++ less safe -- full stop John Spicer 2025-09-08 2025-09 EWG Evolution,CWG Core,LWG Library
P3836R0 Make optional<T&> trivially copyable Jan Schultke 2025-09-11 2025-09 LEWG Library Evolution
P3838R0 Restoring Private Module Fragments Alisdair Meredith 2025-09-10 2025-09 CWG Core

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