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

In C++, it's common to use RAII types like
JSON is a widely-used format for data exchange, but in C++, handling JSON efficiently can be challenging. While current solutions like simdjson offer high-speed processing, upcoming features in C++26, such as powerful reflection, promise to simplify and accelerate the serialization and deserialization of JSON, making it both faster and more convenient for developers.
We’ve seen formatting for simple classes and more complicated types. Spencer Collyer finishes his series by showing us how to apply specific formatting to existing classes.