Standardization

2026 Annual C++ Developer Survey "Lite"

cpp_logo.png

The annual global C++ developer survey is now open:

2026 Annual C++ Developer Survey "Lite"

Please share your feedback in this annual 10-minute survey to help inform C++ standardization and C++ tool vendors. This is the biggest opportunity we all have each year to make our voices heard and help improve our industry and community!

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 and C++ tool vendors to help inform C++ evolution and tooling.

The survey closes in one week.

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

CppCon 2025 How C++ Finally Beats Rust at JSON Serialization -- Lemire & Thiesen

beatsrust-lemire.pngRegistration is now open for CppCon 2026! The conference starts on September 12 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from last year's conference. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2026!

How C++ Finally Beats Rust at JSON Serialization

by Daniel Lemire & Francisco Geiman Thiesen

Summary of the talk:

JSON, or JavaScript Object Notation, has become a cornerstone for storing and exchanging data. Its appeal lies in its simplicity—human-readable text that elegantly captures structured data through attribute-value pairs and arrays: {"age": 5, "name": "Daniel", "toys": ["wooden dog", "little car"]}. JSON is intuitive yet powerful. But ingesting and producing JSON can turn into a performance choke point. In C++, it can be a tedious, error-prone task. Programmers wrestle with unexpected content, manually mapping data to and from native structures, all while striving for speed and safety.

With languages like Java, C#, Zig, Rust, or Python, JSON serialization and deserialization typically requires far less work. In particular, Rust's serde library blends convenience with high speed. We wish for a C++ library to automatically handle JSON production and consumption, seamlessly tied to native data structures. It is not merely to simplify life for developers; it is also about crafting code that is both fast and solid, generated at compile time by a battle-tested library.

Thankfully, C++ might soon be getting reflective metaprogramming (  PR2996  ). Leveraging the  experimental Bloomberg LLVM fork  with reflective metaprogramming, we have built a full-fledged implementation—complete with tests, benchmarks, and documentation. Our goal is to have production-ready code the moment mainstream compilers catch up. The results speak for themselves: we are parsing JSON directly into C++ structures at gigabytes per second, outpacing even mature heavyweights like Rust's serde. Better yet, the conversion between C++ data structures and JSON is fully automated, thanks to metaprogramming. It has the potential to be a leap forward for C++ in the data-driven age. Unfortunately, there are still problems and limitations: we present them and provide some solutions.

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