A post I wrote back in 2023 When an empty destructor is required resulted in feedback that I'd like to address in today's post.
Smart Pointers and the Pointer to Implementation Idiom
by Andreas Fertig
From the article:
In the 2023 post, I briefly mentioned PImpl idiom. I did not intend to make it the theme of the post. However, I got various questions about PImpl and smart pointers.
The goal of PImpl is to hide implementation details from clients. Since you can declare a pointer of an unknown class, you can shift the entire implementation of such an anonymous class into a
.cpp
file. That way, no client can see any details. Another benefit is that changes to that.cpp
file result in only minor recompiles. Maintaining the same in a header file would cause all.cpp
files, including this header, to recompile. At least the speed-up part is since C++20's modules are no longer necessary. And as long as you don't want to hide classified implementation in the.cpp
file modules, it also gives you the ability to mark constructs as private.
]]>
The 2024-10 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4991 | 2025 Sofia Meeting Invitation and Information | Vassil Vassilev | 2024-10-16 | 2024-10 | All of WG21 | |
N4993 | Working Draft, Programming Languages -- C++ | Thomas Köppe | 2024-10-16 | 2024-10 | All of WG21 | |
N4994 | Editors' Report, Programming Languages -- C++ | Thomas Köppe | 2024-10-16 | 2024-10 | All of WG21 | |
P0260R11 | C++ Concurrent Queues | Detlef Vollmann | 2024-10-12 | 2024-10 | P0260R10 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P0707R5 | Metaclass functions for generative C++ | Herb Sutter | 2024-10-15 | 2024-10 | P0707R4 | SG7 Reflection,EWG Evolution |
P0876R18 | fiber_context - fibers without scheduler | Oliver Kowalke | 2024-10-16 | 2024-10 | P0876R17 | EWG Evolution,CWG Core,LWG Library |
P1144R12 | std::is_trivially_relocatable | Arthur O'Dwyer | 2024-10-14 | 2024-10 | P1144R11 | EWGI SG17: EWG Incubator |
P1255R14 | A view of 0 or 1 elements: views::nullable And a concept to constrain maybes | Steve Downey | 2024-10-16 | 2024-10 | P1255R13 | LEWG Library Evolution,LWG Library |
P1306R3 | Expansion statements | Dan Katz | 2024-10-14 | 2024-10 | P1306R2 | EWG Evolution |
P1494R4 | Partial program correctness | S. Davis Herring | 2024-10-15 | 2024-10 | P1494R3 | SG22 Compatibility,EWG Evolution,LEWG Library Evolution,CWG Core |
P1708R9 | Basic Statistics | Richard Dosselmann | 2024-10-14 | 2024-10 | P1708R8 | SG6 Numerics,SG14 Low Latency,SG19 Machine Learning,LEWG Library Evolution,LWG Library |
P1729R5 | Text Parsing | Elias Kosunen | 2024-10-15 | 2024-10 | P1729R4 | SG16 Unicode,LEWG Library Evolution |
P1839R6 | Accessing object representations | Brian Bi | 2024-10-14 | 2024-10 | P1839R5 | CWG Core |
P1928R12 | std::simd - Merge data-parallel types from the Parallelism TS 2 | Matthias Kretz | 2024-10-11 | 2024-10 | P1928R11 | LWG Library |
P2079R5 | System execution context | Lucian Radu Teodorescu | 2024-10-16 | 2024-10 | P2079R4 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2319R2 | Prevent path presentation problems | Victor Zverovich | 2024-09-28 | 2024-10 | P2319R1 | LEWG Library Evolution |
P2392R3 | Pattern matching using is and as | Herb Sutter | 2024-10-16 | 2024-10 | P2392R2 | EWG Evolution |
P2434R2 | Nondeterministic pointer provenance | S. Davis Herring | 2024-10-15 | 2024-10 | P2434R1 | SG22 Compatibility,EWG Evolution,CWG Core |
P2645R0 | path_view: a design that took a wrong turn | Victor Zverovich | 2024-10-12 | 2024-10 | LEWG Library Evolution | |
P2664R8 | Proposal to extend std::simd with permutation API | Daniel Towner | 2024-10-15 | 2024-10 | P2664R7 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2688R3 | Pattern Matching: `match` Expression | Michael Park | 2024-10-16 | 2024-10 | P2688R2 | EWG Evolution |
P2719R1 | Type-aware allocation and deallocation functions | Louis Dionne | 2024-10-16 | 2024-10 | P2719R0 | EWG Evolution |
P2728R7 | Unicode in the Library, Part 1: UTF Transcoding | Zach Laine | 2024-10-07 | 2024-10 | P2728R6 | SG9 Ranges,SG16 Unicode,LEWG Library Evolution |
P2746R6 | Deprecate and Replace Fenv Rounding Modes | Hans Boehm | 2024-10-14 | 2024-10 | P2746R5 | SG6 Numerics,LEWG Library Evolution |
P2769R3 | get_element customization point object | Ruslan Arutyunyan | 2024-10-16 | 2024-10 | P2769R2 | LEWG Library Evolution |
P2786R8 | Trivial Relocatability For C++26 | Mungo Gill | 2024-10-16 | 2024-10 | P2786R7 | EWG Evolution,LEWG Library Evolution |
P2841R5 | Concept and variable-template template-parameters | Corentin Jabot | 2024-10-16 | 2024-10 | P2841R4 | CWG Core |
P2846R4 | reserve_hint: Eagerly reserving memory for not-quite-sized lazy ranges | Corentin Jabot | 2024-10-15 | 2024-10 | P2846R3 | LEWG Library Evolution |
P2900R10 | Contracts for C++ | Joshua Berne | 2024-10-13 | 2024-10 | P2900R9 | EWG Evolution,LEWG Library Evolution |
P2900R9 | Contracts for C++ | Joshua Berne | 2024-10-13 | 2024-10 | P2900R8 | EWG Evolution,LEWG Library Evolution |
P2933R2 | std::simd overloads for <bit> header | Daniel Towner | 2024-10-16 | 2024-10 | P2933R1 | LWG Library |
P2957R2 | Contracts and coroutines | Andrzej Krzemieński | 2024-10-14 | 2024-10 | P2957R1 | SG21 Contracts,EWG Evolution |
P2977R2 | Build database files | Ben Boeckel | 2024-10-15 | 2024-10 | P2977R1 | SG15 Tooling |
P2988R8 | std::optional<T&> | Steve Downey | 2024-10-15 | 2024-10 | P2988R7 | LEWG Library Evolution,LWG Library |
P2996R6 | Reflection for C++26 | Barry Revzin | 2024-10-09 | 2024-10 | P2996R5 | EWG Evolution |
P2996R7 | Reflection for C++26 | Barry Revzin | 2024-10-12 | 2024-10 | P2996R6 | EWG Evolution |
P2998R0 | CTAD for function parameter types | James Touton | 2024-10-15 | 2024-10 | EWGI SG17: EWG Incubator,EWG Evolution | |
P3019R10 | Vocabulary Types for Composite Class Design | Jonathan Coe | 2024-09-30 | 2024-10 | P3019R9 | LEWG Library Evolution,LWG Library |
P3045R2 | Quantities and units library | Mateusz Pusz | 2024-10-09 | 2024-10 | P3045R1 | SG6 Numerics,SG16 Unicode,LEWG Library Evolution |
P3045R3 | Quantities and units library | Mateusz Pusz | 2024-10-15 | 2024-10 | P3045R2 | SG6 Numerics,SG16 Unicode,LEWG Library Evolution |
P3049R1 | node-handles for lists | Michael Florian Hava | 2024-10-15 | 2024-10 | P3049R0 | LEWG Library Evolution |
P3070R1 | Formatting enums | Victor Zverovich | 2024-10-13 | 2024-10 | P3070R0 | LEWG Library Evolution |
P3081R0 | Core safety Profiles: Specification, adoptability, and impact | Herb Sutter | 2024-10-15 | 2024-10 | SG15 Tooling,SG23 Safety and Security,EWG Evolution | |
P3091R3 | Better lookups for `map` and `unordered_map` | Pablo Halpern | 2024-10-14 | 2024-10 | P3091R2 | LEWG Library Evolution |
P3094R4 | std::basic_fixed_string | Mateusz Pusz | 2024-10-09 | 2024-10 | P3094R3 | SG16 Unicode,LEWG Library Evolution |
P3094R5 | std::basic_fixed_string | Mateusz Pusz | 2024-10-15 | 2024-10 | P3094R4 | LEWG Library Evolution |
P3098R0 | Contracts for C++: Postcondition captures | Timur Doumler | 2024-10-14 | 2024-10 | SG21 Contracts,EWG Evolution | |
P3100R1 | Undefined and erroneous behaviour are contract violations | Timur Doumler | 2024-10-16 | 2024-10 | P3100R0 | SG21 Contracts,SG23 Safety and Security,EWG Evolution |
P3100R1 | Undefined and erroneous behaviour are contract violations | Timur Doumler | 2024-10-16 | 2024-10 | P3100R0 | SG21 Contracts,SG23 Safety and Security,EWG Evolution |
P3125R1 | constexpr pointer tagging | Hana Dusíková | 2024-10-16 | 2024-10 | P3125R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P3138R3 | views::cache_latest | Tim Song | 2024-10-15 | 2024-10 | P3138R2 | LEWG Library Evolution |
P3149R6 | async_scope -- Creating scopes for non-sequential concurrency | Ian Petersen | 2024-10-15 | 2024-10 | P3149R5 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P3152R0 | Add missing constructors and assignment for indirect and polymorphic | Jonathan Coe | 2024-09-30 | 2024-10 | LEWG Library Evolution | |
P3160R2 | An allocator-aware `inplace_vector` | Pablo Halpern | 2024-10-14 | 2024-10 | P3160R1 | LEWG Library Evolution |
P3179R3 | C++ parallel range algorithms | Ruslan Arutyunyan | 2024-10-16 | 2024-10 | P3179R2 | SG1 Concurrency and Parallelism,SG9 Ranges,LEWG Library Evolution |
P3227R0 | Contracts for C++: Fixing the contract violation handling API | Gašper Ažman | 2024-10-16 | 2024-10 | SG21 Contracts,LEWG Library Evolution | |
P3237R1 | Matrix Representation of Contract Semantics | Andrei Zissu | 2024-10-16 | 2024-10 | P3237R0 | SG21 Contracts |
P3261R0 | Revisiting `const`-ification in Contract Assertions | Joshua Berne | 2024-10-02 | 2024-10 | SG21 Contracts,EWG Evolution | |
P3261R1 | Revisiting `const`-ification in Contract Assertions | Joshua Berne | 2024-10-13 | 2024-10 | P3261R0 | SG21 Contracts,EWG Evolution |
P3271R1 | Function Types with Usage (Contracts for Function Pointers) | Lisa Lippincott | 2024-10-14 | 2024-10 | P3271R0 | SG21 Contracts |
P3287R1 | Exploration of namespaces for std::simd | Matthias Kretz | 2024-10-15 | 2024-10 | P3287R0 | LEWG Library Evolution |
P3293R1 | Splicing a base class subobject | Barry Revzin | 2024-10-13 | 2024-10 | P3293R0 | EWG Evolution |
P3294R2 | Code Injection with Token Sequences | Barry Revzin | 2024-10-15 | 2024-10 | P3294R1 | SG7 Reflection,EWG Evolution |
P3295R2 | Freestanding constexpr containers and constexpr exception types | Ben Craig | 2024-10-12 | 2024-10 | P3295R1 | LEWG Library Evolution |
P3296R2 | let_async_scope | Anthony Williams | 2024-10-14 | 2024-10 | P3296R1 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P3298R1 | Implicit user-defined conversion functions as operator.() | Bengt Gustafsson | 2024-10-15 | 2024-10 | P3298R0 | EWG Evolution |
P3299R2 | Range constructors for std::simd | Daniel Towner | 2024-10-16 | 2024-10 | P3299R1 | LEWG Library Evolution |
P3310R3 | Solving partial ordering issues introduced by P0522R0 | Matheus Izvekov | 2024-10-14 | 2024-10 | P3310R2 | EWG Evolution,CWG Core |
P3310R4 | Solving issues introduced by P0522R0 | Matheus Izvekov | 2024-10-15 | 2024-10 | P3310R3 | EWG Evolution,CWG Core |
P3324R0 | Attributes for namespace aliases, template parameters, and lambda captures | Tom Honermann | 2024-10-14 | 2024-10 | EWG Evolution | |
P3327R0 | Contract assertions on function pointers | Timur Doumler | 2024-10-16 | 2024-10 | SG21 Contracts,EWG Evolution | |
P3334R0 | Cross Static Variables | Coral Kashri | 2024-10-15 | 2024-10 | SG7 Reflection,EWGI SG17: EWG Incubator | |
P3335R2 | Structured Core Options | René Ferdinand Rivera Morell | 2024-10-15 | 2024-10 | P3335R1 | SG15 Tooling |
P3346R0 | thread_local means fiber-specific | Nat Goodspeed | 2024-10-16 | 2024-10 | EWG Evolution,LEWG Library Evolution | |
P3348R1 | C++26 should refer to C23 not C17 | Jonathan Wakely | 2024-10-14 | 2024-10 | P3348R0 | SG6 Numerics,LEWG Library Evolution |
P3349R0 | Converting contiguous iterators to pointers | Jonathan Wakely | 2024-10-16 | 2024-10 | LEWG Library Evolution | |
P3351R1 | views::scan | Yihe Li | 2024-10-09 | 2024-10 | P3351R0 | SG9 Ranges |
P3352R0 | Taming the Demons (C++ version) - Undefined Behavior and Partial Program Correctness | Andrew Tomazos, Martin Uecker | 2024-09-19 | 2024-10 | SG22 Compatibility,EWG Evolution | |
P3355R1 | Fix submdspan for C++26 | Mark Hoemmen | 2024-10-15 | 2024-10 | P3355R0 | LWG Library |
P3367R0 | constexpr coroutines | Hana Dusíková | 2024-10-16 | 2024-10 | EWG Evolution,LEWG Library Evolution | |
P3370R1 | Add new library headers from C23 | Jens Maurer | 2024-10-06 | 2024-10 | P3370R0 | LEWG Library Evolution |
P3371R2 | Fix C++26 by making the rank-1, rank-2, rank-k, and rank-2k updates consistent with the BLAS | Mark Hoemmen | 2024-10-14 | 2024-10 | P3371R1 | LEWG Library Evolution |
P3372R2 | constexpr containers and adapters | Hana Dusíková | 2024-10-08 | 2024-10 | P3372R1 | LEWG Library Evolution |
P3375R1 | Reproducible floating-point results | Guy Davidson | 2024-10-08 | 2024-10 | P3375R0 | SG6 Numerics,SG14 Low Latency,LEWG Library Evolution |
P3376R0 | Contract assertions versus static analysis and 'safety' | Andrzej Krzemieński | 2024-10-14 | 2024-10 | SG21 Contracts,EWG Evolution | |
P3378R0 | constexpr exception types | Hana Dusíková | 2024-10-14 | 2024-10 | LEWG Library Evolution | |
P3385R1 | Attributes reflection | Aurelien Cassagnes | 2024-10-14 | 2024-10 | P3385R0 | SG7 Reflection |
P3386R0 | Static Analysis of Contracts with P2900 | Joshua Berne | 2024-10-15 | 2024-10 | EWG Evolution | |
P3387R0 | Contract assertions on coroutines | Timur Doumler | 2024-10-09 | 2024-10 | SG21 Contracts,EWG Evolution | |
P3394R0 | Annotations for Reflection | Daveed Vandevoorde | 2024-10-14 | 2024-10 | SG7 Reflection,EWG Evolution | |
P3399R0 | Adjusting Electronic Polls to a Hybrid Workflow | Inbal Levi | 2024-10-16 | 2024-10 | LEWG Library Evolution,All of WG21 | |
P3402R1 | A Safety Profile Verifying Class Initialization | Marc-André Laverdière | 2024-10-14 | 2024-10 | P3402R0 | SG23 Safety and Security |
P3403R0 | The Undefined Behavior Question | Andrew Tomazos | 2024-09-19 | 2024-10 | EWG Evolution | |
P3404R0 | std::at : Range-checked accesses to arbitrary containers | Andre Kostur | 2024-10-11 | 2024-10 | SG9 Ranges,SG23 Safety and Security | |
P3405R0 | Out-of-order designated initializers | Elias Kosunen | 2024-09-28 | 2024-10 | EWG Evolution | |
P3406R0 | We need better performance testing | Bjarne Stroustrup | 2024-09-24 | 2024-10 | All of WG21 | |
P3407R0 | Make idiomatic usage of `offsetof` well-defined | Brian Bi | 2024-10-14 | 2024-10 | EWG Evolution | |
P3409R0 | Enabling more efficient stop-token based cancellation of senders | Lewis Baker | 2024-10-16 | 2024-10 | SG1 Concurrency and Parallelism | |
P3411R0 | `any_view` | Hui Xie | 2024-09-29 | 2024-10 | SG9 Ranges,LEWG Library Evolution | |
P3412R0 | String interpolation | Bengt Gustafsson | 2024-10-15 | 2024-10 | EWGI SG17: EWG Incubator,EWG Evolution | |
P3413R0 | A more flexible optional::value_or (else!) | Corentin Jabot | 2024-10-15 | 2024-10 | LEWG Library Evolution | |
P3415R0 | Range interface in std::optional breaks code! | Andrzej Krzemieński | 2024-10-10 | 2024-10 | LEWG Library Evolution | |
P3416R0 | exception_ptr_cast: Add && = delete overload | Gor Nishanov | 2024-10-14 | 2024-10 | LEWG Library Evolution | |
P3417R0 | Improving the handling of exceptions thrown from contract predicates | Gašper Ažman | 2024-10-16 | 2024-10 | SG21 Contracts,EWG Evolution | |
P3419R0 | Reflection Syntax Options Summary | Michael Levine | 2024-10-11 | 2024-10 | SG7 Reflection,EWGI SG17: EWG Incubator,EWG Evolution | |
P3420R0 | Reflection of Templates | Andrei Alexandrescu | 2024-10-16 | 2024-10 | SG7 Reflection | |
P3421R0 | Consteval destructors | Ben Craig | 2024-10-12 | 2024-10 | SG7 Reflection,EWG Evolution | |
P3422R0 | Allow main function in named modules | 2024-10-09 | 2024-10 | EWG Evolution | ||
P3423R0 | Extending User-Generated Diagnostic Messages | Yihe Li | 2024-10-15 | 2024-10 | EWG Evolution | |
P3425R0 | Reducing operation-state sizes for subobject child operations | Lewis Baker | 2024-10-16 | 2024-10 | LEWG Library Evolution | |
P3427R0 | Hazard Pointer Synchronous Reclamation | Maged Michael | 2024-10-11 | 2024-10 | SG1 Concurrency and Parallelism | |
P3428R0 | Hazard Pointer Batches | Maged Michael | 2024-10-11 | 2024-10 | SG1 Concurrency and Parallelism | |
P3429R0 | Reflection header should minimize standard library dependencies | Jonathan Müller | 2024-10-16 | 2024-10 | LEWG Library Evolution | |
P3430R0 | simd issues: explicit, unsequenced, identity-element position, and members of disabled simd | Matthias Kretz | 2024-10-15 | 2024-10 | LEWG Library Evolution | |
P3433R0 | Allocator Support for Operation States | Dietmar Kuehl | 2024-10-14 | 2024-10 | LEWG Library Evolution | |
P3435R0 | Reflection and meta-programming | Jean-Baptiste VALLON HOARAU | 2024-10-14 | 2024-10 | SG7 Reflection | |
P3436R0 | Strategy for removing safety-related undefined behavior by default | Herb Sutter | 2024-10-16 | 2024-10 | SG23 Safety and Security,EWG Evolution | |
P3437R0 | Proposed default principles: Reflect C++, Generate C++ | Herb Sutter | 2024-10-16 | 2024-10 | SG7 Reflection,EWG Evolution | |
P3438R0 | Make integral overloads of std::to_string constexpr | Andreas Fertig | 2024-10-13 | 2024-10 | LEWG Library Evolution | |
P3439R0 | Chained comparisons: Safe, correct, efficient | Herb Sutter | 2024-10-15 | 2024-10 | EWG Evolution | |
P3440R0 | Add n_elements named constructor to std::simd | Daniel Towner | 2024-10-15 | 2024-10 | LEWG Library Evolution | |
P3441R0 | Rename simd_split to simd_chunk | Daniel Towner | 2024-10-15 | 2024-10 | LEWG Library Evolution | |
P3442R0 | [[invalidate_dereferencing]] attribute | Patrice Roy | 2024-10-14 | 2024-10 | SG14 Low Latency,LEWG Library Evolution | |
P3443R0 | Reflection on SG21 2024 Process | Ran Regev | 2024-10-14 | 2024-10 | SG21 Contracts,EWG Evolution | |
P3444R0 | Memory safety without lifetime parameters | Sean Baxter | 2024-10-14 | 2024-10 | SG23 Safety and Security | |
P3445R0 | Add utilities for easier type/bit casting in std::simd | Daniel Towner | 2024-10-16 | 2024-10 | LEWG Library Evolution | |
P3446R0 | Profile invalidation - eliminating dangling pointers | Bjarne Stroustrup | 2024-10-14 | 2024-10 | SG23 Safety and Security | |
P3447R0 | Profiles syntax | Bjarne Stroustrup | 2024-10-14 | 2024-10 | SG23 Safety and Security | |
P3449R0 | constexpr std::generator | Hana Dusíková | 2024-10-14 | 2024-10 | LEWG Library Evolution | |
P3450R0 | Extending is_within_lifetime | Barry Revzin | 2024-10-14 | 2024-10 | LEWG Library Evolution | |
P3451R0 | A Suggestion for Reflection Access Control | Barry Revzin | 2024-10-14 | 2024-10 | EWG Evolution | |
P3454R0 | Revising Atomic Max/Min Operations | Michael Wong | 2024-10-15 | 2024-10 | SG1 Concurrency and Parallelism | |
P3455R0 | SG14: Low Latency/Games/Embedded/Financial Trading virtual Meeting Minutes 2024/6/12-2024/10/9 | Michael Wong | 2024-10-14 | 2024-10 | SG14 Low Latency | |
P3456R0 | system_scheduler on Win32, Darwin and Linux | Gor Nishanov | 2024-10-15 | 2024-10 | SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library | |
P3457R0 | SG19: Machine Learning virtual Meeting Minutes to 2024/06/13-2024/10/10 | Michael Wong | 2024-10-14 | 2024-10 | SG19 Machine Learning | |
P3460R0 | Contracts Implementors Report | Eric Fiselier, Nina Dinka Ranns, Iain Sandoe | 2024-10-16 | 2024-10 | SG21 Contracts,EWG Evolution,CWG Core | |
P3465R0 | Pursue P1179 as a Lifetime TS | Herb Sutter | 2024-10-15 | 2024-10 | SG23 Safety and Security,EWG Evolution | |
P3466R0 | (Re)affirm design principles for future C++ evolution | Herb Sutter | 2024-10-16 | 2024-10 | EWG Evolution | |
P3467R0 | 2024-10 Library Evolution Polls | Inbal Levi | 2024-10-16 | 2024-10 | LEWG Library Evolution | |
P3469R0 | Virtual deducing this | Mike Spertus | 2024-10-16 | 2024-10 | EWG Evolution | |
P3470R0 | Interface-Unit-Only Module Library Support | Daniel Ruoso | 2024-10-15 | 2024-10 | SG15 Tooling,EWG Evolution | |
P3471R0 | Standard library hardening | Konstantin Varlamov | 2024-10-15 | 2024-10 | SG23 Safety and Security,LEWG Library Evolution | |
P3472R0 | Make fiber_context::can_resume() const | Andrzej Krzemieński | 2024-10-15 | 2024-10 | LEWG Library Evolution | |
P3473R0 | Splicing Should Respect Access Control | Steve Downey | 2024-10-16 | 2024-10 | EWG Evolution | |
P3474R0 | std::arguments | Jeremy Rifkin | 2024-10-15 | 2024-10 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator | |
P3475R0 | Defang and deprecate memory_order::consume | Hans Boehm | 2024-10-15 | 2024-10 | SG1 Concurrency and Parallelism,EWG Evolution,LEWG Library Evolution,CWG Core,LWG Library | |
P3476R0 | Slides for P2688R2 - Pattern Matching: `match` Expression | Michael Park | 2024-10-16 | 2024-10 | EWG Evolution | |
P3477R0 | There are exactly 8 bits in a byte | JF Bastien | 2024-10-16 | 2024-10 | SG22 Compatibility,EWG Evolution,LEWG Library Evolution | |
P3478R0 | Constification should not be part of the MVP | John Spicer | 2024-10-16 | 2024-10 | SG21 Contracts,EWG Evolution | |
P3479R0 | Enabling C pragma support in C++ | Joshua Cranmer | 2024-10-16 | 2024-10 | SG6 Numerics,EWGI SG17: EWG Incubator,SG22 Compatibility | |
P3480R0 | std::simd is a range | Matthias Kretz | 2024-10-16 | 2024-10 | SG9 Ranges,LEWG Library Evolution | |
P3481R0 | Summarizing std::execution::bulk() issues | Lucian Radu Teodorescu | 2024-10-16 | 2024-10 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
Meeting C++ hosted an online AMA with Herb Sutter on Friday.
AMA with Herb Sutter - Meeting C++ live
by Jens Weller & Herb Sutter
Video:
]]>
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 |
The 2024-08 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4988 | Working Draft, Programming Languages -- C++ | Thomas Köppe | 2024-08-05 | 2024-08 | All of WG21 | |
N4989 | Editors' Report, Programming Languages -- C++ | Thomas Köppe | 2024-08-05 | 2024-08 | All of WG21 | |
P2414R4 | Pointer lifetime-end zap proposed solutions | Paul E. McKenney | 2024-08-12 | 2024-08 | P2414R3 | SG1 Concurrency and Parallelism |
P2822R2 | Providing user control of associated entities of class types | Lewis Baker | 2024-08-07 | 2024-08 | P2822R1 | EWG Evolution |
P2897R4 | aligned_accessor: An mdspan accessor expressing pointer overalignment | Mark Hoemmen | 2024-07-24 | 2024-08 | P2897R3 | LEWG Library Evolution,LWG Library |
P2897R5 | aligned_accessor: An mdspan accessor expressing pointer overalignment | Mark Hoemmen | 2024-08-11 | 2024-08 | P2897R4 | LEWG Library Evolution,LWG Library |
P2900R8 | Contracts for C++ | Joshua Berne | 2024-07-27 | 2024-08 | P2900R7 | EWG Evolution,LEWG Library Evolution |
P2988R6 | std::optional<T&> | Steve Downey | 2024-08-15 | 2024-08 | P2988R5 | LEWG Library Evolution,LWG Library |
P2996R5 | Reflection for C++26 | Barry Revzin | 2024-08-14 | 2024-08 | P2996R4 | EWG Evolution |
P3050R2 | Fix C++26 by optimizing linalg::conjugated for noncomplex value types | Mark Hoemmen | 2024-08-12 | 2024-08 | P3050R1 | LEWG Library Evolution |
P3068R4 | Allowing exception throwing in constant-evaluation | Hana Dusíková | 2024-08-15 | 2024-08 | P3068R3 | LEWG Library Evolution,CWG Core |
P3126R2 | Graph Library: Overview | Phil Ratzloff | 2024-08-05 | 2024-08 | P3126R1 | SG14 Low Latency,SG19 Machine Learning |
P3130R2 | Graph Library: Graph Container Interface | Phil Ratzloff | 2024-08-05 | 2024-08 | P3130R1 | SG14 Low Latency,SG19 Machine Learning |
P3131R2 | Graph Library: Graph Containers | Phil Ratzloff | 2024-08-05 | 2024-08 | P3131R1 | SG14 Low Latency,SG19 Machine Learning |
P3284R1 | `finally`, `write_env`, and `unstoppable` Sender Adaptors | Eric Niebler | 2024-07-16 | 2024-08 | P3284R0 | LEWG Library Evolution |
P3315R0 | 2024-07 Library Evolution Poll Outcomes | Inbal Levi | 2024-08-15 | 2024-08 | LEWG Library Evolution | |
P3325R3 | A Utility for Creating Execution Environments | Eric Niebler | 2024-07-23 | 2024-08 | P3325R2 | LEWG Library Evolution |
P3347R0 | Invalid/Prospective Pointer Operations | Paul E. McKenney | 2024-08-09 | 2024-08 | EWG Evolution | |
P3348R0 | C++26 should refer to C23 not C17 | Jonathan Wakely | 2024-08-02 | 2024-08 | SG6 Numerics,LEWG Library Evolution | |
P3361R0 | Class invariants and contract checking philosophy | Esa Pulkkinen | 2024-07-18 | 2024-08 | SG21 Contracts | |
P3361R1 | Class invariants and contract checking philosophy | Esa Pulkkinen | 2024-07-23 | 2024-08 | P3361R0 | SG21 Contracts |
P3362R0 | Static analysis and 'safety' of Contracts, P2900 vs. P2680/P3285 | Ville Voutilainen | 2024-08-13 | 2024-08 | EWG Evolution | |
P3364R0 | Remove Deprecated u8path overloads From C++26 | Alisdair Meredith | 2024-08-15 | 2024-08 | SG16 Unicode | |
P3365R0 | Remove the Deprecated iterator Class Template from C++26 | Alisdair Meredith | 2024-08-15 | 2024-08 | LEWG Library Evolution | |
P3366R0 | Remove Deprecated Atomic Initialization API from C++26 | Alisdair Meredith | 2024-08-15 | 2024-08 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P3369R0 | constexpr for uninitialized_default_construct | Giuseppe D'Angelo | 2024-07-28 | 2024-08 | LEWG Library Evolution | |
P3370R0 | Add new library headers from C23 | Jens Maurer | 2024-08-15 | 2024-08 | LEWG Library Evolution | |
P3371R0 | Fix C++26 by making the symmetric and Hermitian rank-k and rank-2k updates consistent with the BLAS | Mark Hoemmen | 2024-08-11 | 2024-08 | LEWG Library Evolution,LWG Library | |
P3372R0 | constexpr containers and adapters | Hana Dusíková | 2024-08-15 | 2024-08 | LEWG Library Evolution | |
P3373R0 | Of Operation States and Their Lifetimes | Robert Leahy | 2024-08-14 | 2024-08 | LEWG Library Evolution | |
P3374R0 | Adding formatter for fpos | Liang Jiaming | 2024-08-14 | 2024-08 | LEWGI SG18: LEWG Incubator |
The 2024-07 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4984 | WG21 June 2024 Admin Minutes of Meeting | Nina Ranns | 2024-06-17 | 2024-07 | All of WG21 | |
N4985 | WG21 2024-06 St Louis Minutes of Meeting | Nina Ranns | 2024-07-11 | 2024-07 | All of WG21 | |
N4986 | Working Draft, Programming Languages -- C++ | Thomas Köppe | 2024-07-16 | 2024-07 | All of WG21 | |
N4987 | Editors' Report, Programming Languages -- C++ | Thomas Köppe | 2024-07-16 | 2024-07 | All of WG21 | |
P0260R10 | C++ Concurrent Queues | Detlef Vollmann | 2024-06-27 | 2024-07 | P0260R9 | LEWG Library Evolution |
P0472R1 | Put std::monostate in <utility> | David Sankel | 2024-06-05 | 2024-07 | P0472R0 | LEWG Library Evolution |
P0843R13 | inplace_vector | Gonzalo Brito Gadeschi | 2024-06-17 | 2024-07 | P0843R12 | LEWG Library Evolution,LWG Library |
P0843R14 | inplace_vector | Gonzalo Brito Gadeschi | 2024-06-26 | 2024-07 | P0843R13 | LWG Library |
P0876R17 | fiber_context - fibers without scheduler | Oliver Kowalke | 2024-07-03 | 2024-07 | P0876R16 | EWG Evolution,CWG Core,LWG Library |
P0963R3 | Structured binding declaration as a condition | Zhihao Yuan | 2024-06-28 | 2024-07 | P0963R2 | CWG Core |
P1928R10 | std::simd - Merge data-parallel types from the Parallelism TS 2 | Matthias Kretz | 2024-06-28 | 2024-07 | P1928R9 | LWG Library |
P1928R11 | std::simd - Merge data-parallel types from the Parallelism TS 2 | Matthias Kretz | 2024-07-16 | 2024-07 | P1928R10 | LWG Library |
P2075R6 | Philox as an extension of the C++ RNG engines | Ilya Burylov | 2024-06-28 | 2024-07 | P2075R5 | LWG Library |
P2300R10 | `std::execution` | Eric Niebler | 2024-06-28 | 2024-07 | P2300R9 | LEWG Library Evolution,LWG Library |
P2319R0 | Prevent path presentation problems | Victor Zverovich | 2024-07-06 | 2024-07 | SG16 Unicode | |
P2389R2 | `dextents` Index Type Parameter | Bryce Adelstein Lelbach | 2024-06-24 | 2024-07 | P2389R1 | LEWG Library Evolution |
P2422R1 | Remove nodiscard annotations from the standard library specification | Ville Voutilainen | 2024-06-28 | 2024-07 | P2422R0 | LEWG Library Evolution,LWG Library |
P2642R6 | Padded mdspan layouts | Christian Trott | 2024-06-18 | 2024-07 | P2642R5 | LEWG Library Evolution,LWG Library |
P2656R3 | C++ Ecosystem International Standard | René Ferdinand Rivera Morell | 2024-07-11 | 2024-07 | P2656R2 | EWG Evolution,LEWG Library Evolution |
P2664R7 | Proposal to extend std::simd with permutation API | Daniel Towner | 2024-06-25 | 2024-07 | P2664R6 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2686R4 | constexpr structured bindings and references to constexpr variables | Corentin Jabot | 2024-07-05 | 2024-07 | P2686R3 | EWG Evolution,LEWG Library Evolution,CWG Core |
P2761R2 | Slides: Evaluating structured binding as a condition (P0963R2 presentation) | Zhihao Yuan | 2024-06-13 | 2024-07 | P2761R1 | EWG Evolution |
P2761R3 | Slides: Structured binding declaration as a condition (P0963R2 presentation) | Zhihao Yuan | 2024-06-26 | 2024-07 | P2761R2 | EWG Evolution |
P2769R2 | get_element customization point object | Ruslan Arutyunyan | 2024-06-25 | 2024-07 | P2769R1 | SG9 Ranges,LEWG Library Evolution |
P2848R1 | std::is_uniqued | Arthur O'Dwyer | 2024-07-14 | 2024-07 | P2848R0 | LEWG Library Evolution |
P2863R6 | Review Annex D for C++26 | Alisdair Meredith | 2024-06-23 | 2024-07 | P2863R5 | EWG Evolution,LEWG Library Evolution |
P2863R7 | Review Annex D for C++26 | Alisdair Meredith | 2024-07-09 | 2024-07 | P2863R6 | SG22 Compatibility,EWG Evolution,LEWG Library Evolution |
P2865R5 | Remove Deprecated Array Comparisons from C++26 | Alisdair Meredith | 2024-07-09 | 2024-07 | P2865R4 | SG22 Compatibility |
P2866R3 | Remove Deprecated Volatile Features From C++26 | Alisdair Meredith | 2024-06-28 | 2024-07 | P2866R2 | CWG Core,LWG Library |
P2866R4 | Remove Deprecated Volatile Features From C++26 | Alisdair Meredith | 2024-07-15 | 2024-07 | P2866R3 | SG22 Compatibility,CWG Core,LWG Library |
P2873R2 | Remove Deprecated locale category facets for Unicode from C++26 | Alisdair Meredith | 2024-07-06 | 2024-07 | P2873R1 | LEWG Library Evolution |
P2897R2 | aligned_accessor: An mdspan accessor expressing pointer overalignment | Mark Hoemmen | 2024-07-12 | 2024-07 | P2897R1 | LEWG Library Evolution |
P2897R3 | aligned_accessor: An mdspan accessor expressing pointer overalignment | Mark Hoemmen | 2024-07-15 | 2024-07 | P2897R2 | LEWG Library Evolution,LWG Library |
P2963R3 | Ordering of constraints involving fold expressions | Corentin Jabot | 2024-06-28 | 2024-07 | P2963R2 | CWG Core |
P2989R2 | A Simple Approach to Universal Template Parameters | Corentin Jabot | 2024-06-16 | 2024-07 | P2989R1 | EWG Evolution |
P2996R4 | Reflection for C++26 | Barry Revzin | 2024-06-26 | 2024-07 | P2996R3 | EWG Evolution |
P3006R1 | Launder less | Antony Polukhin | 2024-07-11 | 2024-07 | P3006R0 | SG12 Undefined and Unspecified Behavior,EWG Evolution,CWG Core |
P3037R2 | constexpr std::shared_ptr | Paul Keir | 2024-05-24 | 2024-07 | P3037R1 | LEWG Library Evolution |
P3044R1 | sub-string_view from string | Michael Florian Hava | 2024-07-15 | 2024-07 | P3044R0 | LEWG Library Evolution |
P3051R2 | Structured Response Files | René Ferdinand Rivera Morell | 2024-07-11 | 2024-07 | P3051R1 | EWG Evolution,LEWG Library Evolution |
P3064R2 | How to Avoid OOTA Without Really Trying | Paul E. McKenney | 2024-07-12 | 2024-07 | P3064R1 | SG1 Concurrency and Parallelism |
P3068R3 | Allowing exception throwing in constant-evaluation | Hana Dusíková | 2024-06-27 | 2024-07 | P3068R2 | EWG Evolution,LEWG Library Evolution |
P3085R3 | `noexcept` policy for SD-9 (throws nothing) | Ben Craig | 2024-07-04 | 2024-07 | P3085R2 | LEWG Library Evolution |
P3087R1 | Make direct-initialization for enumeration types at least as permissive as direct-list-initializatio | Jan Schultke | 2024-05-29 | 2024-07 | P3087R0 | EWG Evolution |
P3094R3 | std::basic_fixed_string | Mateusz Pusz | 2024-06-30 | 2024-07 | P3094R2 | SG16 Unicode,LEWG Library Evolution |
P3096R2 | Function Parameter Reflection in Reflection for C++26 | Adam Lach | 2024-07-16 | 2024-07 | P3096R1 | EWG Evolution,LEWG Library Evolution |
P3124R0 | 2024-02 Library Evolution Poll Outcomes | 2024-06-14 | 2024-07 | LEWG Library Evolution | ||
P3137R2 | views::to_input | Tim Song | 2024-07-16 | 2024-07 | P3137R1 | LEWG Library Evolution |
P3138R2 | views::cache_last | Tim Song | 2024-07-16 | 2024-07 | P3138R1 | LEWG Library Evolution |
P3144R1 | Deprecate Delete of Incomplete Class Type | Alisdair Meredith | 2024-05-23 | 2024-07 | P3144R0 | CWG Core |
P3144R2 | Deleting a Pointer to an Incomplete Type Should be Ill-formed | Alisdair Meredith | 2024-06-25 | 2024-07 | P3144R1 | CWG Core |
P3149R4 | async_scope -- Creating scopes for non-sequential concurrency | Ian Petersen | 2024-06-23 | 2024-07 | P3149R3 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P3149R5 | async_scope -- Creating scopes for non-sequential concurrency | Ian Petersen | 2024-06-25 | 2024-07 | P3149R4 | LEWG Library Evolution |
P3161R2 | Unified integer overflow arithmetic | Tiago Freire | 2024-07-15 | 2024-07 | P3161R1 | SG6 Numerics |
P3164R1 | Improving diagnostics for sender expressions | Eric Niebler | 2024-06-15 | 2024-07 | P3164R0 | LEWG Library Evolution |
P3164R2 | Improving diagnostics for sender expressions | Eric Niebler | 2024-06-24 | 2024-07 | P3164R1 | LEWG Library Evolution |
P3168R2 | Give std::optional Range Support | David Sankel | 2024-06-25 | 2024-07 | P3168R1 | LEWG Library Evolution |
P3175R3 | Reconsidering the `std::execution::on` algorithm | Eric Niebler | 2024-06-24 | 2024-07 | P3175R2 | LEWG Library Evolution |
P3178R0 | Retrieval of Exception Information | TPK Healy | 2024-05-23 | 2024-07 | LEWGI SG18: LEWG Incubator | |
P3178R1 | Retrieval of Exception Information | TPK Healy | 2024-05-30 | 2024-07 | P3178R0 | LEWGI SG18: LEWG Incubator |
P3179R2 | C++ parallel range algorithms | Ruslan Arutyunyan | 2024-06-25 | 2024-07 | P3179R1 | SG1 Concurrency and Parallelism,SG9 Ranges |
P3182R1 | Add container pop methods that return the popped value | Brian Bi | 2024-07-16 | 2024-07 | P3182R0 | LEWG Library Evolution |
P3212R0 | The contract of sort() | Andrzej Krzemieński | 2024-07-03 | 2024-07 | SG21 Contracts,EWG Evolution,LEWG Library Evolution | |
P3223R1 | Making std::istream::ignore less surprising | Jonathan Wakely | 2024-07-03 | 2024-07 | P3223R0 | LEWG Library Evolution |
P3235R1 | std::print more types faster with less memory | Victor Zverovich | 2024-06-15 | 2024-07 | P3235R0 | LEWG Library Evolution |
P3235R2 | std::print more types faster with less memory | Victor Zverovich | 2024-06-25 | 2024-07 | P3235R1 | LWG Library |
P3235R3 | std::print more types faster with less memory | Victor Zverovich | 2024-06-26 | 2024-07 | P3235R2 | LWG Library |
P3245R1 | Allow `[[nodiscard]]` in type alias declarations | Xavier Bonaventura | 2024-07-15 | 2024-07 | P3245R0 | EWGI SG17: EWG Incubator |
P3248R1 | Require [u]intptr_t | Gonzalo Brito Gadeschi | 2024-06-16 | 2024-07 | P3248R0 | SG1 Concurrency and Parallelism,SG22 Compatibility,EWG Evolution,LEWG Library Evolution |
P3255R1 | Expose whether atomic notifying operations are lock-free | Brian Bi | 2024-07-16 | 2024-07 | P3255R0 | LEWG Library Evolution |
P3265R2 | Ship Contracts in a TS | Ville Voutilainen | 2024-05-27 | 2024-07 | P3265R1 | EWG Evolution |
P3265R3 | Ship Contracts in a TS | Ville Voutilainen | 2024-05-28 | 2024-07 | P3265R2 | EWG Evolution |
P3288R1 | std::elide | Thomas P. K. Healy | 2024-05-28 | 2024-07 | P3288R0 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator |
P3288R2 | std::elide | Thomas P. K. Healy | 2024-05-29 | 2024-07 | P3288R1 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator |
P3288R3 | std::elide | Thomas P. K. Healy | 2024-06-27 | 2024-07 | P3288R2 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator |
P3290R1 | Integrating Existing Assertions With Contracts | Joshua Berne | 2024-07-12 | 2024-07 | P3290R0 | SG21 Contracts,EWG Evolution |
P3294R1 | Code Injection with Token Sequences | Barry Revzin | 2024-07-16 | 2024-07 | P3294R0 | SG7 Reflection,EWG Evolution |
P3296R1 | let_with_async_scope | Anthony Williams | 2024-06-24 | 2024-07 | P3296R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P3297R1 | C++26 Needs Contract Checking | Ryan McDougall | 2024-06-21 | 2024-07 | P3297R0 | SG21 Contracts,SG23 Safety and Security,EWG Evolution |
P3303R1 | Fixing Lazy Sender Algorithm Customization | Eric Niebler | 2024-06-24 | 2024-07 | P3303R0 | LEWG Library Evolution |
P3309R1 | constexpr atomic and atomic_ref | Hana Dusíková | 2024-07-14 | 2024-07 | P3309R0 | LEWG Library Evolution |
P3310R1 | Solving partial ordering issues introduced by P0522R0 | Matheus Izvekov | 2024-06-21 | 2024-07 | P3310R0 | EWG Evolution,CWG Core |
P3310R2 | Solving partial ordering issues introduced by P0522R0 | Matheus Izvekov | 2024-06-21 | 2024-07 | P3310R1 | EWG Evolution,CWG Core |
P3314R0 | 2024-07 Library Evolution Polls | Inbal Levi | 2024-07-16 | 2024-07 | LEWG Library Evolution | |
P3319R1 | Add an iota object for simd (and more) | Matthias Kretz | 2024-06-28 | 2024-07 | P3319R0 | LEWG Library Evolution |
P3321R0 | Contracts Interaction With Tooling | Joshua Berne | 2024-07-12 | 2024-07 | SG15 Tooling,SG21 Contracts,EWG Evolution | |
P3323R0 | cv-qualified types in atomic and atomic_ref | Gonzalo Brito Gadeschi | 2024-06-16 | 2024-07 | SG1 Concurrency and Parallelism | |
P3325R0 | A Utility for Creating Execution Environments | Eric Niebler | 2024-06-13 | 2024-07 | LEWG Library Evolution | |
P3325R1 | A Utility for Creating Execution Environments | Eric Niebler | 2024-07-13 | 2024-07 | P3325R0 | LEWG Library Evolution |
P3325R2 | A Utility for Creating Execution Environments | Eric Niebler | 2024-07-16 | 2024-07 | P3325R1 | LEWG Library Evolution |
P3326R0 | favor ease of use | Jarrad J. Waterloo | 2024-06-13 | 2024-07 | LEWG Library Evolution | |
P3328R0 | Observable Checkpoints During Contract Evaluation | Joshua Berne | 2024-06-13 | 2024-07 | SG21 Contracts | |
P3330R0 | User-defined Atomic Read-Modify-Write Operations | Gonzalo Brito | 2024-06-17 | 2024-07 | SG1 Concurrency and Parallelism | |
P3331R0 | Accessing The First and Last Elements in Associative Containers | Nikita Sakharin | 2024-06-18 | 2024-07 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library | |
P3332R0 | A simpler notation for PM | Bjarne Stroustrup | 2024-06-18 | 2024-07 | EWG Evolution | |
P3335R0 | Structured Core Options | René Ferdinand Rivera Morell | 2024-07-11 | 2024-07 | SG15 Tooling | |
P3336R0 | Usage Experience for Contracts with BDE | Joshua Berne | 2024-06-23 | 2024-07 | SG21 Contracts,EWG Evolution | |
P3338R0 | Observe and ignore semantics in constant evaluation | Ville Voutilainen | 2024-06-23 | 2024-07 | EWG Evolution | |
P3339R0 | C++ Ecosystem IS Open License | René Ferdinand Rivera Morell | 2024-06-23 | 2024-07 | All of WG21 | |
P3340R0 | A Consistent Grammar for Sequences | Alisdair Meredith | 2024-06-24 | 2024-07 | CWG Core | |
P3341R0 | C++ Standard Library Ready Issues to be moved in St Louis, Jun. 2024 | Jonathan Wakely | 2024-06-24 | 2024-07 | All of WG21 | |
P3342R0 | Working Draft, Standard for C++ Ecosystem | René Ferdinand Rivera Morell | 2024-07-11 | 2024-07 | EWG Evolution,LEWG Library Evolution | |
P3343R0 | Contracts - What are we doing here (EWG Presentation) | Joshua Berne | 2024-06-25 | 2024-07 | EWG Evolution | |
P3344R0 | Virtual Functions on Contracts (EWG - Presentation for P3097) | Joshua Berne | 2024-06-28 | 2024-07 | EWG Evolution | |
P3345R0 | Core Language Working Group "ready" Issues for the June, 2024 meeting | Jens Maurer | 2024-06-28 | 2024-07 | CWG Core | |
P3351R0 | views::scan | Yihe Li | 2024-07-08 | 2024-07 | SG9 Ranges | |
P3354R0 | Slides for P3233R0 | Giuseppe D'Angelo | 2024-07-09 | 2024-07 | SG12 Undefined and Unspecified Behavior,EWG Evolution | |
P3355R0 | Fix submdspan for C++26 | Mark Hoemmen | 2024-07-14 | 2024-07 | LEWG Library Evolution | |
P3356R0 | non_invalidating_vector | Jarrad J Waterloo | 2024-07-13 | 2024-07 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P3357R0 | NRVO with factory and after_factory | TPK Healy | 2024-07-15 | 2024-07 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator | |
P3358R0 | SARIF for Structured Diagnostics | Sy Brand | 2024-07-16 | 2024-07 | SG15 Tooling | |
P3359R0 | Slides for P3298R0 - Implicit conversion functions | Bengt Gustafsson | 2024-07-15 | 2024-07 | EWGI SG17: EWG Incubator,EWG Evolution | |
P3360R0 | Slides for P3312R0 - Overload Set Types | Bengt Gustafsson | 2024-07-15 | 2024-07 | EWGI SG17: EWG Incubator |
The 2024-05 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4983 | WG21 agenda: 24-29 June 2024, St. Louis, MO, USA | John Spicer | 2024-05-19 | 2024-05 | All of WG21 | |
P0260R9 | C++ Concurrent Queues | Detlef Vollmann | 2024-05-22 | 2024-05 | P0260R8 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P0843R12 | inplace_vector | Gonzalo Brito Gadeschi | 2024-05-21 | 2024-05 | P0843R11 | LWG Library |
P0963R2 | Structured binding declaration as a condition | Zhihao Yuan | 2024-05-14 | 2024-05 | P0963R1 | EWG Evolution,CWG Core |
P1000R6 | C++ IS schedule | Herb Sutter | 2024-05-19 | 2024-05 | P1000R5 | All of WG21 |
P1083R8 | Move resource_adaptor from Library TS to the C++ WP | Pablo Halpern | 2024-05-22 | 2024-05 | P1083R7 | LEWG Library Evolution,LWG Library |
P1112R5 | Language support for class layout control | Pal Balog | 2024-05-21 | 2024-05 | P1112R4 | EWG Evolution |
P1144R11 | std::is_trivially_relocatable | Arthur O'Dwyer | 2024-05-15 | 2024-05 | P1144R10 | EWGI SG17: EWG Incubator |
P1255R13 | A view of 0 or 1 elements: views::nullable And a concept to constrain maybes | Steve Downey | 2024-05-22 | 2024-05 | P1255R12 | LEWG Library Evolution,LWG Library |
P1306R2 | Expansion statements | Dan Katz | 2024-05-07 | 2024-05 | P1306R1 | EWG Evolution |
P1494R3 | Partial program correctness | S. Davis Herring | 2024-05-21 | 2024-05 | P1494R2 | SG22 Compatibility,EWG Evolution,LEWG Library Evolution,CWG Core |
P1928R9 | std::simd - Merge data-parallel types from the Parallelism TS 2 | Matthias Kretz | 2024-05-22 | 2024-05 | P1928R8 | LWG Library |
P2019R6 | Thread attributes | Corentin Jabot | 2024-05-22 | 2024-05 | P2019R5 | LWG Library |
P2034R4 | Partially Mutable Lambda Captures | Ryan McDougall | 2024-04-22 | 2024-05 | P2034R3 | SG23 Safety and Security,EWG Evolution,CWG Core |
P2079R4 | System execution context | Lee Howes | 2024-05-22 | 2024-05 | P2079R3 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2413R1 | Remove unsafe conversions of unique_ptr | Lénárd Szolnoki | 2024-05-22 | 2024-05 | P2413R0 | LEWG Library Evolution |
P2434R1 | Nondeterministic pointer provenance | S. Davis Herring | 2024-05-21 | 2024-05 | P2434R0 | SG22 Compatibility,EWG Evolution |
P2689R3 | Atomic Refs Bound to Memory Orderings & Atomic Accessors | Christian Trott | 2024-04-29 | 2024-05 | P2689R2 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2719R0 | Type-aware allocation and deallocation functions | Louis Dionne | 2024-05-18 | 2024-05 | EWGI SG17: EWG Incubator,EWG Evolution | |
P2758R3 | Emitting messages at compile time | Barry Revzin | 2024-05-19 | 2024-05 | P2758R2 | EWG Evolution,LEWG Library Evolution |
P2761R1 | Slides: If structured binding (P0963R1 presentation) | Zhihao Yuan | 2024-05-01 | 2024-05 | P2761R0 | EWG Evolution |
P2786R6 | Trivial Relocatability For C++26 | Mungo Gill | 2024-05-21 | 2024-05 | P2786R5 | EWG Evolution,LEWG Library Evolution |
P2822R1 | Providing user control of associated entities of class types | Lewis Baker | 2024-05-08 | 2024-05 | P2822R0 | EWG Evolution |
P2830R4 | Standardized Constexpr Type Ordering | Gašper Ažman | 2024-05-21 | 2024-05 | P2830R3 | EWG Evolution |
P2835R4 | Expose std::atomic_ref's object address | Gonzalo Brito Gadeschi | 2024-05-21 | 2024-05 | P2835R3 | LEWG Library Evolution |
P2841R3 | Concept and variable-template template-parameters | Corentin Jabot | 2024-05-22 | 2024-05 | P2841R2 | CWG Core |
P2846R2 | reserve_hint: Eagerly reserving memory for not-quite-sized lazy ranges | Corentin Jabot | 2024-05-22 | 2024-05 | P2846R1 | LEWG Library Evolution |
P2849R0 | async-object - aka async-RAII objects | Kirk Shoop | 2024-05-21 | 2024-05 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P2876R1 | Proposal to extend std::simd with more constructors and accessors | Daniel Towner | 2024-05-22 | 2024-05 | P2876R0 | LEWG Library Evolution |
P2900R7 | Contracts for C++ | Joshua Berne | 2024-05-22 | 2024-05 | P2900R6 | EWG Evolution,LEWG Library Evolution |
P2963R2 | Ordering of constraints involving fold expressions | Corentin Jabot | 2024-05-22 | 2024-05 | P2963R1 | CWG Core |
P2964R1 | Allowing user-defined types in std::simd | Daniel Towner | 2024-05-22 | 2024-05 | P2964R0 | SG6 Numerics,LEWG Library Evolution |
P2967R1 | Relocation Is A Library Interface | Alisdair Meredith | 2024-05-22 | 2024-05 | P2967R0 | LEWG Library Evolution |
P2971R2 | Implication for C++ | Walter E Brown | 2024-05-21 | 2024-05 | P2971R1 | EWG Evolution,LEWG Library Evolution |
P2976R1 | Freestanding Library: algorithm, numeric, and random | Ben Craig | 2024-05-05 | 2024-05 | P2976R0 | LWG Library |
P2988R5 | std::optional<T&> | Steve Downey | 2024-05-22 | 2024-05 | P2988R4 | LEWG Library Evolution,LWG Library |
P2996R3 | Reflection for C++26 | Barry Revzin | 2024-05-22 | 2024-05 | P2996R2 | EWG Evolution |
P3045R1 | Quantities and units library | Mateusz Pusz | 2024-05-22 | 2024-05 | P3045R0 | SG6 Numerics,SG16 Unicode,LEWGI SG18: LEWG Incubator,LEWG Library Evolution |
P3051R1 | Structured Response Files | René Ferdinand Rivera Morell | 2024-05-20 | 2024-05 | P3051R0 | SG15 Tooling |
P3059R1 | Making user-defined constructors of view iterators/sentinels private | Hewill Kang | 2024-05-16 | 2024-05 | P3059R0 | SG9 Ranges,LEWG Library Evolution |
P3064R1 | How to Avoid OOTA Without Really Trying | Paul E. McKenney | 2024-05-14 | 2024-05 | P3064R0 | SG1 Concurrency and Parallelism |
P3067R0 | Provide predefined simd permute generator functions for common operations | Daniel Towner | 2024-05-22 | 2024-05 | LEWG Library Evolution | |
P3068R2 | Allowing exception throwing in constant-evaluation | Hana Dusíková | 2024-05-22 | 2024-05 | P3068R1 | EWG Evolution,LEWG Library Evolution |
P3085R2 | `noexcept` policy for SD-9 (throws nothing) | Ben Craig | 2024-05-18 | 2024-05 | P3085R1 | LEWG Library Evolution |
P3091R2 | Better lookups for `map` and `unordered_map` | Pablo Halpern | 2024-05-21 | 2024-05 | P3091R1 | LEWG Library Evolution |
P3094R2 | std::basic_fixed_string | Mateusz Pusz | 2024-05-22 | 2024-05 | P3094R1 | SG16 Unicode,LEWGI SG18: LEWG Incubator,LEWG Library Evolution |
P3096R1 | Function Parameter Reflection in Reflection for C++26 | Adam Lach | 2024-05-15 | 2024-05 | P3096R0 | EWG Evolution,LEWG Library Evolution |
P3100R0 | Undefined and erroneous behaviour are contract violations | Timur Doumler | 2024-05-21 | 2024-05 | SG21 Contracts,SG23 Safety and Security,EWG Evolution | |
P3103R2 | More bitset operations | Jan Schultke | 2024-05-22 | 2024-05 | P3103R1 | LEWGI SG18: LEWG Incubator |
P3111R0 | Atomic Reduction Operations | Gonzalo Brito Gadeschi | 2024-05-22 | 2024-05 | SG1 Concurrency and Parallelism,SG6 Numerics | |
P3119R1 | Tokyo Technical Fixes to Contracts | Joshua Berne | 2024-05-09 | 2024-05 | P3119R0 | SG21 Contracts |
P3125R0 | Pointer tagging | Hana Dusíková | 2024-05-22 | 2024-05 | SG1 Concurrency and Parallelism | |
P3126R1 | Graph Library: Overview | Phil Ratzloff | 2024-05-20 | 2024-05 | P3126R0 | SG14 Low Latency,SG19 Machine Learning |
P3130R1 | Graph Library: Graph Container Interface | Phil Ratzloff | 2024-05-20 | 2024-05 | P3130R0 | SG14 Low Latency,SG19 Machine Learning |
P3131R1 | Graph Library: Containers | Phil Ratzloff | 2024-05-20 | 2024-05 | P3131R0 | SG14 Low Latency,SG19 Machine Learning |
P3137R1 | views::to_input | Tim Song | 2024-05-21 | 2024-05 | P3137R0 | SG9 Ranges |
P3138R1 | views::cache_last | Tim Song | 2024-05-21 | 2024-05 | P3138R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P3139R0 | Pointer cast for unique_ptr | Zhihao Yuan | 2024-05-20 | 2024-05 | LEWG Library Evolution | |
P3149R3 | async_scope -- Creating scopes for non-sequential concurrency | Ian Petersen | 2024-05-21 | 2024-05 | P3149R2 | LEWG Library Evolution |
P3154R1 | Deprecating signed character types in iostreams | Elias Kosunen | 2024-05-20 | 2024-05 | P3154R0 | LEWG Library Evolution |
P3157R1 | Generative Extensions for Reflection | Andrei Alexandrescu | 2024-05-22 | 2024-05 | P3157R0 | SG7 Reflection |
P3175R1 | Reconsidering the `std::execution::on` algorithm | Eric Niebler | 2024-05-14 | 2024-05 | P3175R0 | LEWG Library Evolution |
P3175R2 | Reconsidering the `std::execution::on` algorithm | Eric Niebler | 2024-05-21 | 2024-05 | P3175R1 | LEWG Library Evolution |
P3179R1 | C++ parallel range algorithms | Ruslan Arutyunyan | 2024-05-22 | 2024-05 | P3179R0 | SG1 Concurrency and Parallelism,SG9 Ranges |
P3183R1 | Contract testing support | Bengt Gustafsson | 2024-05-22 | 2024-05 | P3183R0 | SG21 Contracts |
P3210R1 | A Postcondition *is* a Pattern Match | Andrew Tomazos | 2024-04-20 | 2024-05 | P3210R0 | SG21 Contracts,EWG Evolution |
P3214R0 | 2024-04 Library Evolution Poll Outcomes | Inbal Levi | 2024-05-22 | 2024-05 | LEWG Library Evolution | |
P3228R1 | Contracts for C++: Revisiting contract check elision and duplication | Timur Doumler | 2024-05-21 | 2024-05 | P3228R0 | SG21 Contracts,EWG Evolution |
P3234R1 | Utility to check if a pointer is in a given range | Glen Joseph Fernandes | 2024-04-29 | 2024-05 | P3234R0 | EWG Evolution,LEWG Library Evolution |
P3235R0 | std::print more types faster with less memory | Victor Zverovich | 2024-05-11 | 2024-05 | LEWG Library Evolution | |
P3236R1 | Please reject P2786 and adopt P1144 | Alan de Freitas | 2024-05-21 | 2024-05 | P3236R0 | All of WG21 |
P3238R0 | An alternate proposal for naming contract semantics | Ville Voutilainen | 2024-05-06 | 2024-05 | SG21 Contracts | |
P3239R0 | A Relocating Swap | Alisdair Meredith | 2024-05-22 | 2024-05 | EWG Evolution,LEWG Library Evolution | |
P3247R1 | Deprecate the notion of trivial types | Jens Maurer | 2024-05-19 | 2024-05 | P3247R0 | LEWG Library Evolution,CWG Core |
P3248R0 | Require [u]intptr_t | Gonzalo Brito Gadeschi | 2024-05-20 | 2024-05 | SG1 Concurrency and Parallelism,SG22 Compatibility,EWG Evolution,LEWG Library Evolution | |
P3249R0 | A unified syntax for Pattern Matching and Contracts when introducing a new name | Ran Regev | 2024-04-22 | 2024-05 | SG21 Contracts,EWG Evolution | |
P3250R0 | C++ contracts with regards to function pointers | Peter Bindels | 2024-05-07 | 2024-05 | SG21 Contracts | |
P3251R0 | C++ contracts and coroutines | Peter Bindels | 2024-05-07 | 2024-05 | SG21 Contracts | |
P3253R0 | Distinguishing between member and free coroutines | Brian Bi | 2024-05-22 | 2024-05 | EWG Evolution,LEWG Library Evolution | |
P3254R0 | Reserve identifiers preceded by @ for non-ignorable annotation tokens | Brian Bi | 2024-05-22 | 2024-05 | EWG Evolution | |
P3255R0 | Expose whether atomic notifying operations are lock-free | Brian Bi | 2024-05-22 | 2024-05 | SG1 Concurrency and Parallelism | |
P3257R0 | Make the predicate of contract_assert more regular | Jens Maurer | 2024-04-26 | 2024-05 | SG21 Contracts,EWG Evolution | |
P3258R0 | Formatting charN_t | Corentin Jabot | 2024-05-22 | 2024-05 | SG16 Unicode,LEWG Library Evolution | |
P3259R0 | const by default | Jarrad J Waterloo | 2024-05-09 | 2024-05 | EWG Evolution | |
P3263R0 | Encoded annotated char | Tiago Freire | 2024-05-03 | 2024-05 | SG16 Unicode,LEWGI SG18: LEWG Incubator | |
P3264R0 | Double-evaluation of preconditions | Ville Voutilainen | 2024-05-17 | 2024-05 | EWG Evolution | |
P3264R1 | Double-evaluation of preconditions | Ville Voutilainen | 2024-05-17 | 2024-05 | P3264R0 | EWG Evolution |
P3265R0 | Ship Contracts in a TS | Ville Voutilainen | 2024-05-07 | 2024-05 | EWG Evolution | |
P3265R1 | Ship Contracts in a TS | Ville Voutilainen | 2024-05-22 | 2024-05 | P3265R0 | EWG Evolution |
P3266R0 | non referenceable types | Jarrad J Waterloo | 2024-05-05 | 2024-05 | EWG Evolution | |
P3267R0 | C++ contracts implementation strategies | Peter Bindels | 2024-05-16 | 2024-05 | SG15 Tooling,SG21 Contracts | |
P3267R1 | Approaches to C++ Contracts | Peter Bindels | 2024-05-22 | 2024-05 | P3267R0 | SG15 Tooling,SG21 Contracts |
P3268R0 | C++ Contracts Constification Challenges Concerning Current Code | Peter Bindels | 2024-05-07 | 2024-05 | SG21 Contracts,EWG Evolution | |
P3269R0 | Do Not Ship Contracts as a TS | Timur Doumler | 2024-05-21 | 2024-05 | SG21 Contracts,EWG Evolution | |
P3270R0 | Repetition, Elision, and Constification w.r.t. contract_assert | John Lakos | 2024-05-22 | 2024-05 | SG21 Contracts | |
P3271R0 | Function Usage Types (Contracts for Function Pointers) | Lisa Lippincott | 2024-05-20 | 2024-05 | SG21 Contracts | |
P3273R0 | Introspection of Closure Types | Andrei Alexandrescu | 2024-05-22 | 2024-05 | SG7 Reflection | |
P3274R0 | A framework for Profiles development | Bjarne Stroustrup | 2024-05-09 | 2024-05 | SG23 Safety and Security,EWG Evolution,LEWG Library Evolution | |
P3275R0 | Replace simd operator[] with getter and setter functions - or not | Matthias Kretz | 2024-05-22 | 2024-05 | LEWG Library Evolution | |
P3276R0 | P2900 Is Superior to a Contracts TS | Joshua Berne | 2024-05-17 | 2024-05 | SG21 Contracts,EWG Evolution | |
P3278R0 | Analysis of interaction between relocation, assignment, and swap | Nina Ranns | 2024-05-22 | 2024-05 | EWG Evolution,LEWG Library Evolution | |
P3279R0 | CWG2463: What 'trivially fooable' should mean | Arthur O'Dwyer | 2024-05-15 | 2024-05 | EWGI SG17: EWG Incubator | |
P3281R0 | Contact checks should be regular C++ | John Spicer | 2024-05-15 | 2024-05 | SG21 Contracts,EWG Evolution | |
P3282R0 | Static Storage for C++ Concurrent bounded_queue | Detlef Vollmann | 2024-05-19 | 2024-05 | SG1 Concurrency and Parallelism,SG14 Low Latency,LEWG Library Evolution | |
P3283R0 | Adding .first() and .last() to strings | Rhidian De Wit | 2024-05-16 | 2024-05 | LEWGI SG18: LEWG Incubator | |
P3284R0 | `finally`, `write_env`, and `unstoppable` Sender Adaptors | Eric Niebler | 2024-05-15 | 2024-05 | LEWG Library Evolution | |
P3285R0 | Contracts: Protecting The Protector | Gabriel Dos Reis | 2024-05-15 | 2024-05 | SG23 Safety and Security,EWG Evolution | |
P3286R0 | Module Metadata Format for Distribution with Pre-Built Libraries | Daniel Ruoso | 2024-05-22 | 2024-05 | SG15 Tooling | |
P3287R0 | Exploration of namespaces for std::simd | Matthias Kretz | 2024-05-22 | 2024-05 | LEWG Library Evolution | |
P3288R0 | std::elide | Thomas P. K. Healy | 2024-05-22 | 2024-05 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator | |
P3289R0 | Consteval blocks | Daveed Vandevoorde | 2024-05-21 | 2024-05 | EWG Evolution | |
P3290R0 | Integrating Existing Assertions With Contracts | Joshua Berne | 2024-05-22 | 2024-05 | SG21 Contracts | |
P3292R0 | Provenance and Concurrency | David Goldblatt | 2024-05-17 | 2024-05 | SG1 Concurrency and Parallelism | |
P3293R0 | Splicing a base class subobject | Barry Revzin | 2024-05-19 | 2024-05 | EWG Evolution | |
P3294R0 | Code Injection with Token Sequences | Barry Revzin | 2024-05-22 | 2024-05 | SG7 Reflection,EWG Evolution | |
P3295R0 | Freestanding constexpr containers and constexpr exception types | Ben Craig | 2024-05-21 | 2024-05 | SG7 Reflection,LEWG Library Evolution | |
P3296R0 | let_with_async_scope | Anthony Williams | 2024-05-22 | 2024-05 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P3297R0 | C++26 Needs Contract Checking | Ryan McDougall | 2024-05-20 | 2024-05 | SG21 Contracts,SG23 Safety and Security,EWG Evolution | |
P3298R0 | Implicit user-defined conversion functions as operator.() | Bengt Gustafsson | 2024-05-22 | 2024-05 | EWGI SG17: EWG Incubator | |
P3299R0 | Range constructors for std::simd | Daniel Towner | 2024-05-22 | 2024-05 | LEWG Library Evolution | |
P3301R0 | inplace_stoppable_base | Lauri Vasama | 2024-05-21 | 2024-05 | LEWG Library Evolution | |
P3302R0 | SG16: Unicode meeting summaries 2024-03-13 through 2024-05-08 | Tom Honermann | 2024-05-21 | 2024-05 | SG16 Unicode | |
P3303R0 | Fixing Lazy Sender Algorithm Customization | Eric Niebler | 2024-05-21 | 2024-05 | LEWG Library Evolution | |
P3304R0 | SG14: Low Latency/Games/Embedded/Financial Trading virtual Meeting Minutes 2024/04/10 | Michael Wong | 2024-05-21 | 2024-05 | SG14 Low Latency | |
P3305R0 | SG19: Machine Learning virtual Meeting Minutes to 2024/04/11-2024/05/09 | Michael Wong | 2024-05-21 | 2024-05 | SG19 Machine Learning | |
P3306R0 | Atomic Read-Modify-Write Improvements | Gonzalo Brito Gadeschi | 2024-05-22 | 2024-05 | SG1 Concurrency and Parallelism,SG6 Numerics | |
P3307R0 | Floating-Point Maximum/Minimum Function Objects | Gonzalo Brito Gadeschi | 2024-05-21 | 2024-05 | SG6 Numerics | |
P3308R0 | mdarray design questions and answers | Mark Hoemmen | 2024-05-21 | 2024-05 | LEWG Library Evolution | |
P3309R0 | constexpr atomic and atomic_ref | Hana Dusíková | 2024-05-22 | 2024-05 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P3310R0 | Solving partial ordering issues introduced by P0522R0 | Matheus Izvekov | 2024-05-22 | 2024-05 | EWG Evolution,CWG Core | |
P3311R0 | An opt-in approach for integration of traditional assert facilities in C++ contracts | Tom Honermann | 2024-05-22 | 2024-05 | SG21 Contracts | |
P3312R0 | Overload Set Types | Bengt Gustafsson | 2024-05-22 | 2024-05 | EWGI SG17: EWG Incubator | |
P3313R0 | Impacts of noexept on ARM table based exception metadata | Khalil Estell | 2024-05-22 | 2024-05 | EWG Evolution,LEWG Library Evolution | |
P3316R0 | A more predictable unchecked semantic | Jonas Persson | 2024-05-22 | 2024-05 | SG21 Contracts | |
P3317R0 | Compile time resolved contracts | Jonas Persson | 2024-05-22 | 2024-05 | SG21 Contracts | |
P3318R0 | Throwing violation handlers, from an application programming perspective | Ville Voutilainen | 2024-05-22 | 2024-05 | LEWG Library Evolution | |
P3319R0 | Add an iota object for simd (and more) | Matthias Kretz | 2024-05-22 | 2024-05 | LEWG Library Evolution | |
P3320R0 | EWG slides for P3144 "Delete if Incomplete" | Alisdair Meredith | 2024-05-22 | 2024-05 | EWG Evolution | |
P4000R0 | To TS or not to TS: that is the question | Michael Wong | 2024-05-22 | 2024-05 | All of WG21 |
The 2024-04 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4974 | 2024-11 Wroclaw meeting information | Herb Sutter | 2024-03-18 | 2024-04 | All of WG21 | |
N4975 | 2024 WG21 admin telecon meetings | Herb Sutter | 2024-02-21 | 2024-04 | All of WG21 | |
N4976 | WG21 agenda: 18-23 March 2024, Tokyo, Japan | John Spicer | 2024-02-26 | 2024-04 | All of WG21 | |
N4978 | WG21 2024-03 Admin telecon minutes | Nina Ranns | 2024-03-11 | 2024-04 | All of WG21 | |
N4979 | Hagenberg Meeting Invitation and Information | Peter Kulczycki | 2024-03-22 | 2024-04 | All of WG21 | |
N4980 | WG21 2024-03 Tokyo Minutes of Meeting | Nina Ranns | 2024-04-05 | 2024-04 | All of WG21 | |
N4981 | Working Draft, Programming Languages -- C++ | Thomas Köppe | 2024-04-16 | 2024-04 | All of WG21 | |
N4982 | Editors' Report, Programming Languages -- C++ | Thomas Köppe | 2024-04-16 | 2024-04 | All of WG21 | |
P0260R8 | C++ Concurrent Queues | Detlef Vollmann | 2024-03-09 | 2024-04 | P0260R7 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P0562R1 | Initialization List Symmetry | Alan Talbot | 2024-03-21 | 2024-04 | P0562R0 | EWG Evolution |
P0562R2 | Trailing Commas in Base-clauses and Ctor-initializers | Alan Talbot | 2024-04-15 | 2024-04 | P0562R1 | CWG Core |
P0609R3 | Attributes for Structured Bindings | Aaron Ballman | 2024-03-21 | 2024-04 | P0609R2 | CWG Core |
P0843R11 | inplace_vector | Gonzalo Brito Gadeschi | 2024-03-21 | 2024-04 | P0843R10 | LWG Library |
P0876R16 | fiber_context - fibers without scheduler | Oliver Kowalke | 2024-03-22 | 2024-04 | P0876R15 | EWG Evolution,CWG Core,LWG Library |
P1061R8 | Structured Bindings can introduce a Pack | Barry Revzin | 2024-04-14 | 2024-04 | P1061R7 | CWG Core |
P1068R11 | Vector API for random number generation | Ilya Burylov | 2024-04-01 | 2024-04 | P1068R10 | LWG Library |
P1317R1 | Remove return type deduction in std::apply | Aaryaman Sagar | 2024-04-03 | 2024-04 | P1317R0 | LEWG Library Evolution |
P2034R3 | Partially Mutable Lambda Captures | Ryan McDougall | 2024-03-20 | 2024-04 | P2034R2 | EWGI SG17: EWG Incubator,EWG Evolution,CWG Core |
P2075R5 | Philox as an extension of the C++ RNG engines | Ilya Burylov | 2024-04-01 | 2024-04 | P2075R4 | LEWG Library Evolution,LWG Library |
P2127R0 | Making C++ Software Allocator Aware | Pablo Halpern | 2024-03-11 | 2024-04 | LEWG Library Evolution | |
P2135R1 | P2055R1: A Relaxed Guide to memory_order_relaxed | Paul E. McKenney | 2024-04-09 | 2024-04 | P2135R0 | SG1 Concurrency and Parallelism |
P2141R2 | Aggregates are named tuples | Antony Polukhin | 2024-03-06 | 2024-04 | P2141R1 | LEWG Library Evolution,LWG Library |
P2248R8 | Enabling list-initialization for algorithms | Giuseppe D'Angelo | 2024-03-20 | 2024-04 | P2248R7 | LWG Library |
P2300R8 | `std::execution` | Eric Niebler | 2024-04-02 | 2024-04 | P2300R7 | LEWG Library Evolution,LWG Library |
P2300R9 | `std::execution` | Eric Niebler | 2024-04-02 | 2024-04 | P2300R8 | LEWG Library Evolution,LWG Library |
P2355R2 | Postfix fold expressions | S. Davis Herring | 2024-03-20 | 2024-04 | P2355R1 | EWG Evolution |
P2389R1 | `dextents` Index Type Parameter | Bryce Adelstein Lelbach | 2024-04-12 | 2024-04 | P2389R0 | LEWG Library Evolution |
P2414R3 | Pointer lifetime-end zap proposed solutions | Paul E. McKenney | 2024-04-08 | 2024-04 | P2414R2 | SG1 Concurrency and Parallelism,EWG Evolution |
P2542R8 | views::concat | Hui Xie | 2024-03-20 | 2024-04 | P2542R7 | SG9 Ranges,LEWG Library Evolution,LWG Library |
P2573R2 | = delete("should have a reason"); | Yihe Li | 2024-03-21 | 2024-04 | P2573R1 | CWG Core |
P2591R5 | Concatenation of strings and string views | Giuseppe D'Angelo | 2024-03-20 | 2024-04 | P2591R4 | LWG Library |
P2746R5 | Deprecate and Replace Fenv Rounding Modes | Hans Boehm | 2024-04-15 | 2024-04 | P2746R4 | SG6 Numerics,LEWG Library Evolution |
P2747R2 | constexpr placement new | Barry Revzin | 2024-03-18 | 2024-04 | P2747R1 | EWG Evolution |
P2748R5 | Disallow Binding a Returned Glvalue to a Temporary | Brian Bi | 2024-03-22 | 2024-04 | P2748R4 | CWG Core |
P2755R1 | A Bold Plan for a Complete Contracts Facility | Joshua Berne, Jake Fevold, John Lakos | 2024-04-10 | 2024-04 | P2755R0 | SG21 Contracts |
P2786R5 | Trivial Relocatability For C++26 | Mungo Gill | 2024-04-09 | 2024-04 | P2786R4 | EWG Evolution,LEWG Library Evolution |
P2795R5 | Erroneous behaviour for uninitialized reads | Thomas Köppe | 2024-03-21 | 2024-04 | P2795R4 | SG12 Undefined and Unspecified Behavior,SG23 Safety and Security,EWG Evolution,CWG Core,LWG Library |
P2809R3 | Trivial infinite loops are not Undefined Behavior | JF Bastien | 2024-03-21 | 2024-04 | P2809R2 | SG22 Compatibility,CWG Core |
P2810R4 | is_debugger_present is_replaceable | René Ferdinand Rivera Morell | 2024-03-20 | 2024-04 | P2810R3 | LWG Library |
P2825R1 | Overload Resolution hook: declcall(unevaluated-postfix-expression) | Gašper Ažman | 2024-03-20 | 2024-04 | P2825R0 | EWGI SG17: EWG Incubator,EWG Evolution |
P2825R2 | Overload Resolution hook: declcall(unevaluated-postfix-expression) | Gašper Ažman | 2024-04-16 | 2024-04 | P2825R1 | EWG Evolution |
P2826R2 | Replacement functions | Gašper Ažman | 2024-03-17 | 2024-04 | P2826R1 | EWG Evolution |
P2830R2 | Standardized Constexpr Type Ordering | Gašper Ažman | 2024-03-17 | 2024-04 | P2830R1 | EWG Evolution |
P2830R3 | Standardized Constexpr Type Ordering | Gašper Ažman | 2024-04-16 | 2024-04 | P2830R2 | EWG Evolution |
P2841R2 | Concept and variable-template template-parameters | Corentin Jabot | 2024-02-22 | 2024-04 | P2841R1 | EWG Evolution |
P2845R7 | Formatting of std::filesystem::path | Victor Zverovich | 2024-03-10 | 2024-04 | P2845R6 | LEWG Library Evolution,LWG Library |
P2845R8 | Formatting of std::filesystem::path | Victor Zverovich | 2024-03-20 | 2024-04 | P2845R7 | LWG Library |
P2855R1 | Member customization points for Senders and Receivers | Ville Voutilainen | 2024-02-22 | 2024-04 | P2855R0 | LEWG Library Evolution |
P2863R5 | Review Annex D for C++26 | Alisdair Meredith | 2024-04-16 | 2024-04 | P2863R4 | EWG Evolution,LEWG Library Evolution |
P2866R2 | Remove Deprecated Volatile Features From C++26 | Alisdair Meredith | 2024-04-16 | 2024-04 | P2866R1 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2867R2 | Remove Deprecated strstreams From C++26 | Alisdair Meredith | 2024-03-19 | 2024-04 | P2867R1 | LWG Library |
P2869R4 | Remove Deprecated `shared_ptr` Atomic Access APIs From C++26 | Alisdair Meredith | 2024-03-20 | 2024-04 | P2869R3 | LWG Library |
P2872R3 | Remove `wstring_convert` From C++26 | Alisdair Meredith | 2024-03-19 | 2024-04 | P2872R2 | LWG Library |
P2873R1 | Remove Deprecated locale category facets for Unicode from C++26 | Alisdair Meredith | 2024-04-08 | 2024-04 | P2873R0 | LEWG Library Evolution |
P2875R4 | Undeprecate `polymorphic_allocator::destroy` For C++26 | Alisdair Meredith | 2024-03-20 | 2024-04 | P2875R3 | LWG Library |
P2893R3 | Variadic Friends | Jody Hagins | 2024-03-21 | 2024-04 | P2893R2 | CWG Core |
P2900R6 | Contracts for C++ | Joshua Berne | 2024-02-29 | 2024-04 | P2900R5 | EWG Evolution,LEWG Library Evolution |
P2927R2 | Observing exceptions stored in exception_ptr | Gor Nishanov | 2024-04-15 | 2024-04 | P2927R1 | LEWG Library Evolution |
P2944R3 | Comparisons for reference_wrapper | Barry Revzin | 2024-03-20 | 2024-04 | P2944R2 | EWG Evolution,LEWG Library Evolution |
P2977R1 | Build database files | Ben Boeckel | 2024-03-25 | 2024-04 | P2977R0 | SG15 Tooling |
P2988R4 | std::optional<T&> | Steve Downey | 2024-04-16 | 2024-04 | P2988R3 | LEWG Library Evolution,LWG Library |
P2993R0 | Constrained Numbers | Luke Valenty | 2024-03-21 | 2024-04 | SG6 Numerics,SG23 Safety and Security | |
P2997R1 | Removing the common reference requirement from the indirectly invocable concepts | Barry Revzin | 2024-03-21 | 2024-04 | P2997R0 | SG9 Ranges,LEWG Library Evolution |
P3008R2 | Atomic floating-point min/max | Gonzalo Brito Gadeschi | 2024-03-18 | 2024-04 | P3008R1 | LEWG Library Evolution |
P3016R3 | Resolve inconsistencies in begin/end for valarray and braced initializer lists | Arthur O'Dwyer | 2024-03-22 | 2024-04 | P3016R2 | LWG Library |
P3019R7 | Vocabulary Types for Composite Class Design | Jonathan Coe | 2024-03-18 | 2024-04 | P3019R6 | LEWG Library Evolution,LWG Library |
P3019R8 | Vocabulary Types for Composite Class Design | Jonathan Coe | 2024-03-22 | 2024-04 | P3019R7 | LEWG Library Evolution,LWG Library |
P3029R1 | Better mdspan's CTAD | Hewill Kang | 2024-03-20 | 2024-04 | P3029R0 | LEWG Library Evolution |
P3032R1 | Less transient constexpr allocation | Barry Revzin | 2024-03-21 | 2024-04 | P3032R0 | EWG Evolution |
P3032R2 | Less transient constexpr allocation | Barry Revzin | 2024-04-16 | 2024-04 | P3032R1 | EWG Evolution |
P3034R1 | Module Declarations Shouldn't be Macros | Michael Spencer | 2024-03-20 | 2024-04 | P3034R0 | All of WG21 |
P3037R1 | constexpr std::shared_ptr | Paul Keir | 2024-03-05 | 2024-04 | P3037R0 | SG7 Reflection,LEWG Library Evolution |
P3049R0 | node-handles for lists | Michael Florian Hava | 2024-04-03 | 2024-04 | LEWG Library Evolution | |
P3050R1 | Fix C++26 by optimizing linalg::conjugated for noncomplex value types | Mark Hoemmen | 2024-04-08 | 2024-04 | P3050R0 | LEWG Library Evolution |
P3064R0 | How to Avoid OOTA Without Really Trying | Paul E. McKenney | 2024-04-05 | 2024-04 | SG1 Concurrency and Parallelism | |
P3068R1 | Allowing exception throwing in constant-evaluation. | Hana Dusíková | 2024-03-30 | 2024-04 | P3068R0 | EWG Evolution |
P3072R2 | Hassle-free thread attributes | Zhihao Yuan | 2024-03-17 | 2024-04 | P3072R1 | LEWG Library Evolution |
P3074R3 | trivial union (was std::uninitialized<T>) | Barry Revzin | 2024-04-14 | 2024-04 | P3074R2 | EWG Evolution |
P3085R1 | `noexcept` policy for SD-9 (throws nothing) | Ben Craig | 2024-03-17 | 2024-04 | P3085R0 | LEWG Library Evolution |
P3086R1 | Proxy: A Pointer-Semantics-Based Polymorphism Library | Mingxin Wang | 2024-03-18 | 2024-04 | P3086R0 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution |
P3086R2 | Proxy: A Pointer-Semantics-Based Polymorphism Library | Mingxin Wang | 2024-04-16 | 2024-04 | P3086R1 | LEWG Library Evolution |
P3091R1 | Better lookups for `map` and `unordered_map` | Pablo Halpern | 2024-03-22 | 2024-04 | P3091R0 | LEWGI SG18: LEWG Incubator |
P3094R1 | std::basic_fixed_string | Mateusz Pusz | 2024-03-20 | 2024-04 | P3094R0 | SG16 Unicode,LEWG Library Evolution |
P3097R0 | Contracts for C++: Support for virtual functions | Timur Doumler | 2024-04-15 | 2024-04 | SG21 Contracts | |
P3103R1 | More bitset operations | Jan Schultke | 2024-03-07 | 2024-04 | P3103R0 | LEWGI SG18: LEWG Incubator |
P3104R1 | Bit permutations | Jan Schultke | 2024-03-07 | 2024-04 | P3104R0 | LEWGI SG18: LEWG Incubator |
P3104R2 | Bit permutations | Jan Schultke | 2024-04-04 | 2024-04 | P3104R1 | LEWGI SG18: LEWG Incubator |
P3105R1 | constexpr std::uncaught_exceptions() | Jan Schultke | 2024-03-07 | 2024-04 | P3105R0 | LEWGI SG18: LEWG Incubator |
P3105R2 | constexpr std::uncaught_exceptions() | Jan Schultke | 2024-04-04 | 2024-04 | P3105R1 | LEWGI SG18: LEWG Incubator |
P3106R1 | Clarifying rules for brace elision in aggregate initialization | James Touton | 2024-03-20 | 2024-04 | P3106R0 | CWG Core |
P3107R1 | Permit an efficient implementation of std::print | Victor Zverovich | 2024-02-25 | 2024-04 | P3107R0 | LEWG Library Evolution |
P3107R2 | Permit an efficient implementation of std::print | Victor Zverovich | 2024-03-17 | 2024-04 | P3107R1 | LEWG Library Evolution |
P3107R3 | Permit an efficient implementation of std::print | Victor Zverovich | 2024-03-18 | 2024-04 | P3107R2 | LEWG Library Evolution |
P3107R4 | Permit an efficient implementation of std::print | Victor Zverovich | 2024-03-19 | 2024-04 | P3107R3 | LEWG Library Evolution |
P3107R5 | Permit an efficient implementation of std::print | Victor Zverovich | 2024-03-21 | 2024-04 | P3107R4 | LWG Library |
P3119R0 | Tokyo Technical Fixes to Contracts | Joshua Berne | 2024-04-04 | 2024-04 | SG21 Contracts | |
P3122R1 | [[nodiscard]] should be Recommended Practice | Jonathan Wakely | 2024-03-12 | 2024-04 | P3122R0 | LEWG Library Evolution,LWG Library |
P3135R1 | Hazard Pointer Extensions | Maged Michael | 2024-04-12 | 2024-04 | P3135R0 | SG1 Concurrency and Parallelism |
P3146R1 | Clarifying std::variant converting construction | Giuseppe D'Angelo | 2024-02-20 | 2024-04 | P3146R0 | LEWG Library Evolution,LWG Library |
P3147R1 | A Direction for Vector | Alan Talbot | 2024-03-17 | 2024-04 | P3147R0 | LEWG Library Evolution |
P3149R1 | async_scope -- Creating scopes for non-sequential concurrency | Ian Petersen | 2024-03-13 | 2024-04 | P3149R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P3149R2 | async_scope -- Creating scopes for non-sequential concurrency | Ian Petersen | 2024-03-20 | 2024-04 | P3149R1 | LEWG Library Evolution |
P3159R0 | C++ Range Adaptors and Parallel Algorithms | Bryce Adelstein Lelbach | 2024-03-17 | 2024-04 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P3160R1 | An allocator-aware `inplace_vector` | Pablo Halpern | 2024-03-08 | 2024-04 | P3160R0 | LEWG Library Evolution |
P3161R0 | Unified integer overflow arithmetic | Tiago Freire | 2024-02-17 | 2024-04 | SG6 Numerics | |
P3161R1 | Unified integer overflow arithmetic | Tiago Freire | 2024-03-13 | 2024-04 | P3161R0 | SG6 Numerics |
P3162R0 | LEWG [[nodiscard]] policy | Darius Neațu | 2024-02-22 | 2024-04 | LEWG Library Evolution | |
P3164R0 | Improving diagnostics for sender expressions | Eric Niebler | 2024-02-29 | 2024-04 | LEWG Library Evolution | |
P3165R0 | Contracts on virtual functions for the Contracts MVP | Ville Voutilainen | 2024-02-26 | 2024-04 | SG21 Contracts | |
P3166R0 | Static Exception Specifications | Lewis Baker | 2024-03-16 | 2024-04 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator | |
P3167R0 | Attributes for the result name in a postcondition assertion | Tom Honermann | 2024-02-28 | 2024-04 | SG21 Contracts | |
P3168R0 | Give std::optional Range Support | David Sankel | 2024-02-28 | 2024-04 | LEWG Library Evolution | |
P3168R1 | Give std::optional Range Support | David Sankel | 2024-04-11 | 2024-04 | P3168R0 | LEWG Library Evolution |
P3169R0 | Inherited contracts | Jonas Persson | 2024-04-13 | 2024-04 | SG21 Contracts | |
P3170R0 | sinkable exception error message | Jarrad J Waterloo | 2024-02-29 | 2024-04 | LEWG Library Evolution | |
P3171R0 | Adding functionality to placeholder types | Barry Revzin | 2024-03-04 | 2024-04 | LEWG Library Evolution | |
P3172R0 | Using `this` in constructor preconditions | Andrzej Krzemieński | 2024-03-08 | 2024-04 | SG21 Contracts | |
P3173R0 | P2900R6 may be minimimal, but it is not viable | Gabriel Dos Reis | 2024-03-15 | 2024-04 | EWG Evolution | |
P3174R0 | SG16: Unicode meeting summaries 2023-10-11 through 2024-02-21 | Tom Honermann | 2024-03-09 | 2024-04 | SG16 Unicode | |
P3175R0 | Reconsidering the `std::execution::on` algorithm | Eric Niebler | 2024-03-14 | 2024-04 | LEWG Library Evolution | |
P3176R0 | The Oxford variadic comma | Jan Schultke | 2024-03-07 | 2024-04 | EWGI SG17: EWG Incubator | |
P3177R0 | const prvalues in the conditional operator | Barry Revzin | 2024-03-17 | 2024-04 | EWG Evolution | |
P3179R0 | C++ parallel range algorithms | Ruslan Arutyunyan | 2024-03-14 | 2024-04 | SG1 Concurrency and Parallelism,SG9 Ranges | |
P3180R0 | C++ Standard Library Ready Issues to be moved in Tokyo, Mar. 2024 | Jonathan Wakely | 2024-03-15 | 2024-04 | All of WG21 | |
P3181R0 | Atomic stores and object lifetimes | Hans Boehm | 2024-04-15 | 2024-04 | SG1 Concurrency and Parallelism | |
P3182R0 | Add pop_value methods to container adaptors | Brian Bi | 2024-04-16 | 2024-04 | LEWG Library Evolution | |
P3183R0 | Contract testing support | Bengt Gustafsson | 2024-04-15 | 2024-04 | SG21 Contracts | |
P3187R1 | remove ensure_started and start_detached from P2300 | Kirk Shoop | 2024-03-20 | 2024-04 | P3187R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P3187R1 | remove ensure_started and start_detached from P2300 | Kirk Shoop | 2024-03-20 | 2024-04 | P3187R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P3188R0 | Proxy: A Pointer-Semantics-Based Polymorphism Library - Presentation slides for P3086R1 | Mingxin Wang | 2024-04-16 | 2024-04 | LEWGI SG18: LEWG Incubator | |
P3189R0 | Slides for LEWG presentation of P2900R6: Contracts for C++ | Timur Doumler | 2024-03-18 | 2024-04 | LEWG Library Evolution | |
P3190R0 | Slides for EWG presentation of D2900R7: Contracts for C++ | Timur Doumler | 2024-03-19 | 2024-04 | EWG Evolution | |
P3191R0 | Feedback on the scalability of contract violation handlers in P2900 | Louis Dionne | 2024-03-20 | 2024-04 | SG21 Contracts,EWG Evolution | |
P3192R0 | LEWGI/SG18 Presentation of P3104R1 Bit Permutations | Jan Schultke | 2024-03-19 | 2024-04 | LEWGI SG18: LEWG Incubator | |
P3194R0 | LEWGI/SG18 Presentation of P3105R1 constexpr std::uncaught_exceptions() | Jan Schultke | 2024-03-19 | 2024-04 | LEWGI SG18: LEWG Incubator | |
P3196R0 | Core Language Working Group "ready" Issues for the March, 2024 meeting | Jens Maurer | 2024-03-22 | 2024-04 | CWG Core | |
P3197R0 | A response to the Tokyo EWG polls on the Contracts MVP (P2900R6) | Timur Doumler | 2024-04-12 | 2024-04 | SG21 Contracts,EWG Evolution | |
P3198R0 | A takeaway from the Tokyo LEWG meeting on Contracts MVP | Andrzej Krzemieński | 2024-03-29 | 2024-04 | SG21 Contracts | |
P3199R0 | Choices for make_optional and value() | Steve Downey | 2024-03-22 | 2024-04 | LEWG Library Evolution | |
P3201R0 | LEWG [[nodiscard]] policy | Jonathan Wakely | 2024-03-21 | 2024-04 | LEWG Library Evolution | |
P3201R1 | LEWG [[nodiscard]] policy | Jonathan Wakely | 2024-03-21 | 2024-04 | P3201R0 | LEWG Library Evolution |
P3203R0 | Implementation defined coroutine extensions | Klemens Morgenstern | 2024-03-22 | 2024-04 | EWGI SG17: EWG Incubator | |
P3205R0 | Throwing from a `noexcept` function should be a contract violation. | Gašper Ažman | 2024-04-15 | 2024-04 | SG21 Contracts,EWG Evolution,LEWG Library Evolution | |
P3207R0 | More & like | Jarrad J Waterloo | 2024-03-24 | 2024-04 | LEWG Library Evolution | |
P3208R0 | import std; and stream macros | Sunghyun Min | 2024-04-16 | 2024-04 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator | |
P3210R0 | A Postcondition *is* a Pattern Match | Andrew Tomazos | 2024-03-28 | 2024-04 | SG21 Contracts,EWG Evolution | |
P3211R0 | views::transform_join | Hewill Kang | 2024-04-07 | 2024-04 | SG9 Ranges,LEWG Library Evolution,LWG Library,Direction Group | |
P3213R0 | 2024-04 Library Evolution Polls | Inbal Levi | 2024-04-16 | 2024-04 | LEWG Library Evolution | |
P3215R0 | Slides: Thread Attributes as Designators (P3072R2 presentation) | Zhihao Yuan | 2024-03-29 | 2024-04 | LEWG Library Evolution | |
P3216R0 | views::slice | Hewill Kang | 2024-04-07 | 2024-04 | SG9 Ranges,LEWG Library Evolution,LWG Library,Direction Group | |
P3217R0 | Adjoints to "Enabling list-initialization for algorithms": find_last | Giuseppe D'Angelo | 2024-03-31 | 2024-04 | LEWG Library Evolution,LWG Library | |
P3218R0 | const references to constexpr variables | Jarrad J Waterloo | 2024-04-09 | 2024-04 | EWG Evolution,CWG Core | |
P3220R0 | views::delimit | Hewill Kang | 2024-04-16 | 2024-04 | SG9 Ranges,LEWG Library Evolution,LWG Library,Direction Group | |
P3221R0 | Disable pointers to contracted functions | Jonas Persson | 2024-04-15 | 2024-04 | SG21 Contracts | |
P3222R0 | Fix C++26 by adding transposed special cases for P2642 layouts | Mark Hoemmen | 2024-04-08 | 2024-04 | LEWG Library Evolution | |
P3223R0 | Making std::basic_istream::ignore less surprising | Jonathan Wakely | 2024-04-12 | 2024-04 | LEWG Library Evolution | |
P3224R0 | Slides for P3087 - Make direct-initialization for enumeration types at least as permissive as direct | Jan Schultke | 2024-04-04 | 2024-04 | EWGI SG17: EWG Incubator | |
P3225R0 | Slides for P3140 std::int_least128_t | Jan Schultke | 2024-04-04 | 2024-04 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator | |
P3226R0 | Contracts for C++: Naming the "Louis semantic" | Timur Doumler | 2024-04-12 | 2024-04 | SG21 Contracts | |
P3228R0 | Contracts for C++: Revisiting contract check elision and duplication | Timur Doumler | 2024-04-16 | 2024-04 | SG21 Contracts |
Over the past week, we ran our 2024 annual global C++ developer survey. Thank you to everyone who responded. As promised, here is a summary of the results:
CppDevSurvey-2024-summary.pdf
The results have now been forwarded to the C++ standards committee to help inform C++ evolution. Your feedback will be very helpful, and thank you again for your participation! Stay safe, everyone.
Update to add note: We discovered after the survey went live that SurveyMonkey has started rejecting responses from some countries. They did not notify us this was going to happen, and it means we don't have responses this year from countries that were included in all previous years. We'll look into fixing that for next year because we do want to hear from all C++ programmers worldwide.
]]>
Last week, the annual global C++ developer survey opened. If you haven't already, please take 10 minutes or so to participate!
2024 Annual C++ Developer Survey "Lite"
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 on Wednesday.
Thank you for participating and helping to inform our committee and community!
]]>
The annual global C++ developer survey is now open. As the name suggests, it's a one-pager:
2024 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!
]]>The 2024-02 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
P0493R5 | Atomic maximum/minimum | Al Grant | 2024-02-12 | 2024-02 | P0493R4 | SG1 Concurrency and Parallelism,LWG Library |
P0843R10 | inplace_vector | Gonzalo Brito Gadeschi | 2024-02-12 | 2024-02 | P0843R9 | LWG Library |
P0876R15 | fiber_context - fibers without scheduler | Oliver Kowalke | 2024-02-14 | 2024-02 | P0876R14 | CWG Core,LWG Library |
P1061R7 | Structured Bindings can introduce a Pack | Barry Revzin | 2024-02-14 | 2024-02 | P1061R6 | EWG Evolution |
P1144R10 | std::is_trivially_relocatable | Arthur O'Dwyer | 2024-02-15 | 2024-02 | P1144R9 | EWG Evolution,LEWG Library Evolution |
P1729R4 | Text Parsing | Elias Kosunen | 2024-02-11 | 2024-02 | P1729R3 | SG9 Ranges,SG16 Unicode,LEWG Library Evolution |
P2047R7 | An allocator-aware optional type | Nina Ranns | 2024-02-15 | 2024-02 | P2047R6 | LEWG Library Evolution |
P2075R4 | Philox as an extension of the C++ RNG engines | Ilya Burylov | 2024-02-14 | 2024-02 | P2075R3 | LEWG Library Evolution |
P2249R5 | Mixed comparisons for smart pointers | Giuseppe D'Angelo | 2024-02-15 | 2024-02 | P2249R4 | LEWG Library Evolution |
P2249R6 | Mixed comparisons for smart pointers | Giuseppe D'Angelo | 2024-02-15 | 2024-02 | P2249R5 | LEWG Library Evolution |
P2299R4 | `mdspan`s of All Dynamic Extents | Bryce Adelstein Lelbach | 2024-02-15 | 2024-02 | P2299R3 | LEWG Library Evolution |
P2389R0 | `dextents` Index Type Parameter | Nevin Liber | 2024-02-15 | 2024-02 | LEWG Library Evolution | |
P2422R0 | Remove nodiscard annotations from the standard library specification | Ville Voutilainen | 2024-02-09 | 2024-02 | LEWG Library Evolution,LWG Library | |
P2643R2 | Improving C++ concurrency features | Gonzalo Brito Gadeschi | 2024-01-31 | 2024-02 | P2643R1 | LEWG Library Evolution |
P2686R3 | constexpr structured bindings and references to constexpr variables | Corentin Jabot | 2024-02-15 | 2024-02 | P2686R2 | EWG Evolution,CWG Core |
P2688R1 | Pattern Matching: `match` Expression | Michael Park | 2024-02-15 | 2024-02 | P2688R0 | EWG Evolution |
P2721R0 | Deprecating function | Michael Florian Hava | 2024-02-14 | 2024-02 | LEWG Library Evolution | |
P2727R4 | std::iterator_interface | Zach Laine | 2024-02-05 | 2024-02 | P2727R3 | LEWG Library Evolution |
P2746R4 | Deprecate and Replace Fenv Rounding Modes | Hans Boehm | 2024-02-14 | 2024-02 | P2746R3 | SG6 Numerics,LEWG Library Evolution |
P2758R2 | Emitting messages at compile time | Barry Revzin | 2024-02-14 | 2024-02 | P2758R1 | EWG Evolution,LEWG Library Evolution |
P2781R4 | std::constexpr_wrapper | Zach Laine | 2024-02-11 | 2024-02 | P2781R3 | LEWG Library Evolution |
P2786R4 | Trivial Relocatability For C++26 | Mungo Gill | 2024-02-09 | 2024-02 | P2786R3 | EWG Evolution,LEWG Library Evolution |
P2822R0 | Providing user control of associated entities of class types | Lewis Baker | 2024-02-15 | 2024-02 | EWG Evolution | |
P2835R3 | Expose std::atomic_ref's object address | Gonzalo Brito Gadeschi | 2024-01-31 | 2024-02 | P2835R2 | LEWG Library Evolution |
P2845R6 | Formatting of std::filesystem::path | Victor Zverovich | 2024-01-27 | 2024-02 | P2845R5 | SG16 Unicode,LEWG Library Evolution,LWG Library |
P2863R4 | Review Annex D for C++26 | Alisdair Meredith | 2024-02-15 | 2024-02 | P2863R3 | EWG Evolution,LEWG Library Evolution |
P2875R3 | Undeprecate `polymorphic_allocator::destroy` For C++26 | Alisdair Meredith | 2024-02-15 | 2024-02 | P2875R2 | LEWG Library Evolution |
P2893R2 | Variadic Friends | Jody Hagins | 2024-02-12 | 2024-02 | P2893R1 | CWG Core |
P2900R5 | Contracts for C++ | Joshua Berne | 2024-02-15 | 2024-02 | P2900R4 | EWG Evolution,LEWG Library Evolution |
P2927R1 | Observing exceptions stored in exception_ptr | Gor Nishanov | 2024-02-15 | 2024-02 | P2927R0 | LEWG Library Evolution |
P2964R0 | Allowing user-defined types in std::simd | Daniel Towner | 2024-02-09 | 2024-02 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P2988R2 | std::optional\ | Steve Downey | 2024-02-15 | 2024-02 | P2988R1 | LEWG Library Evolution,LWG Library |
P2988R3 | std::optional<T&> | Steve Downey | 2024-02-15 | 2024-02 | P2988R2 | LEWG Library Evolution,LWG Library |
P2989R1 | A Simple Approach to Universal Template Parameters | Corentin Jabot | 2024-02-15 | 2024-02 | P2989R0 | EWG Evolution |
P2992R1 | Attribute [[discard("reason")]] | Giuseppe D'Angelo | 2024-02-02 | 2024-02 | P2992R0 | SG22 Compatibility,EWG Evolution |
P2994R1 | On the Naming of Packs | Barry Revzin | 2024-02-14 | 2024-02 | P2994R0 | EWG Evolution |
P2996R2 | Reflection for C++26 | Barry Revzin | 2024-02-15 | 2024-02 | P2996R1 | EWG Evolution |
P3002R1 | Policies for Using Allocators in New Library Classes | Pablo Halpern | 2024-02-15 | 2024-02 | P3002R0 | LEWG Library Evolution |
P3004R0 | Principled Design for WG21 | John Lakos | 2024-02-15 | 2024-02 | EWG Evolution,LEWG Library Evolution | |
P3005R0 | Memorializing Principled-Design Policies for WG21 | John Lakos | 2024-02-14 | 2024-02 | EWG Evolution,LEWG Library Evolution | |
P3008R1 | Atomic floating-point min/max | Gonzalo Brito Gadeschi | 2024-01-31 | 2024-02 | P3008R0 | SG6 Numerics,LEWG Library Evolution |
P3016R2 | Resolve inconsistencies in begin/end for valarray and braced initializer lists | Arthur O'Dwyer | 2024-02-12 | 2024-02 | P3016R1 | LEWG Library Evolution |
P3019R4 | Vocabulary Types for Composite Class Design | Jonathan Coe | 2024-02-05 | 2024-02 | P3019R3 | LEWG Library Evolution |
P3019R5 | Vocabulary Types for Composite Class Design | Jonathan Coe | 2024-02-07 | 2024-02 | P3019R4 | LEWG Library Evolution |
P3019R6 | Vocabulary Types for Composite Class Design | Jonathan Coe | 2024-02-11 | 2024-02 | P3019R5 | LEWG Library Evolution |
P3032R0 | Less transient constexpr allocation | Barry Revzin | 2024-02-13 | 2024-02 | EWG Evolution | |
P3045R0 | Quantities and units library | Mateusz Pusz | 2024-02-15 | 2024-02 | SG6 Numerics,SG16 Unicode,LEWGI SG18: LEWG Incubator | |
P3047R0 | Remove deprecated namespace `relops` from C++26 | Alisdair Meredith | 2024-02-15 | 2024-02 | LEWG Library Evolution | |
P3052R1 | view_interface::at() | Hewill Kang | 2024-01-29 | 2024-02 | P3052R0 | SG9 Ranges,SG23 Safety and Security |
P3055R1 | Relax wording to permit relocation optimizations in the STL | Arthur O'Dwyer | 2024-02-12 | 2024-02 | P3055R0 | LEWG Library Evolution |
P3060R1 | Add std::views::upto(n) | Weile Wei | 2024-02-15 | 2024-02 | P3060R0 | SG9 Ranges,LEWG Library Evolution,LWG Library |
P3068R0 | Allowing exception throwing in constant-evaluation. | Hana Dusíková | 2024-02-11 | 2024-02 | EWG Evolution | |
P3072R1 | Hassle-free thread attributes | Zhihao Yuan | 2024-02-15 | 2024-02 | P3072R0 | LEWG Library Evolution |
P3073R0 | Remove evaluation_undefined_behavior and will_continue from the Contracts MVP | Timur Doumler | 2024-01-27 | 2024-02 | SG21 Contracts | |
P3074R1 | std::uninitialized<T> | Barry Revzin | 2024-01-30 | 2024-02 | P3074R0 | EWG Evolution |
P3074R2 | std::uninitialized<T> | Barry Revzin | 2024-02-13 | 2024-02 | P3074R1 | EWG Evolution |
P3085R0 | `noexcept` policy for SD-9 (throws nothing) | Ben Craig | 2024-02-10 | 2024-02 | LEWG Library Evolution | |
P3088R0 | Attributes for contract assertions | Timur Doumler | 2024-02-12 | 2024-02 | SG21 Contracts | |
P3088R1 | Attributes for contract assertions | Timur Doumler | 2024-02-13 | 2024-02 | P3088R0 | SG21 Contracts |
P3090R0 | std::execution Introduction | Inbal Levi, Eric Niebler | 2024-02-14 | 2024-02 | LEWG Library Evolution | |
P3091R0 | Better lookups for `map` and `unordered_map` | Pablo Halpern | 2024-02-06 | 2024-02 | LEWGI SG18: LEWG Incubator | |
P3092R0 | Modules ABI requirement | Chuanqi Xu | 2024-01-28 | 2024-02 | SG15 Tooling,ARG ABI Review Group | |
P3093R0 | Attributes on expressions | Giuseppe D'Angelo | 2024-02-02 | 2024-02 | SG22 Compatibility,EWG Evolution | |
P3094R0 | std::basic_fixed_string | Mateusz Pusz | 2024-02-05 | 2024-02 | SG16 Unicode,LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P3095R0 | ABI comparison with reflection | Saksham Sharma | 2024-02-15 | 2024-02 | SG7 Reflection,LEWG Library Evolution | |
P3096R0 | Function Parameter Reflection in Reflection for C++26 | Adam Lach | 2024-02-14 | 2024-02 | SG7 Reflection | |
P3101R0 | Differentiating potentially throwing and nonthrowing violation handlers | Ran Regev | 2024-01-22 | 2024-02 | SG21 Contracts | |
P3102R0 | Refining Contract Violation Detection Modes | Joshua Berne | 2024-02-05 | 2024-02 | SG21 Contracts | |
P3103R0 | More bitset operations | Jan Schultke | 2024-01-24 | 2024-02 | LEWGI SG18: LEWG Incubator | |
P3104R0 | Bit permutations | Jan Schultke | 2024-01-25 | 2024-02 | LEWGI SG18: LEWG Incubator | |
P3105R0 | constexpr std::uncaught_exceptions() | Jan Schultke | 2024-01-25 | 2024-02 | LEWGI SG18: LEWG Incubator | |
P3106R0 | Clarifying rules for brace elision in aggregate initialization | James Touton | 2024-02-03 | 2024-02 | CWG Core | |
P3107R0 | Permit an efficient implementation of std::print | Victor Zverovich | 2024-02-03 | 2024-02 | LEWG Library Evolution | |
P3109R0 | A plan for std::execution for C++26 | Lewis Baker | 2024-02-12 | 2024-02 | LEWG Library Evolution | |
P3110R0 | Array element initialization via pattern expansion | James Touton | 2024-02-04 | 2024-02 | EWGI SG17: EWG Incubator,EWG Evolution | |
P3112R0 | Specify Constructor of std::nullopt_t | Brian Bi | 2024-02-14 | 2024-02 | LEWG Library Evolution,LWG Library | |
P3113R0 | Slides: Contract assertions, the noexcept operator, and deduced exception specifications | Timur Doumler | 2024-02-02 | 2024-02 | SG21 Contracts | |
P3114R0 | noexcept(contract_assert(_)) -- slides | Andrzej Krzemieński | 2024-02-02 | 2024-02 | SG21 Contracts | |
P3115R0 | Data Member, Variable and Alias Declarations Can Introduce A Pack | Corentin Jabot | 2024-02-15 | 2024-02 | EWG Evolution | |
P3116R0 | Policy for explicit | Zach Laine | 2024-02-08 | 2024-02 | LEWG Library Evolution | |
P3117R0 | Extending Conditionally Borrowed | Zach Laine | 2024-02-14 | 2024-02 | SG9 Ranges,LEWG Library Evolution | |
P3122R0 | [[nodiscard]] should be Recommended Practice | Jonathan Wakely | 2024-02-15 | 2024-02 | LEWG Library Evolution,LWG Library | |
P3123R0 | 2024-02 Library Evolution Polls | Inbal Levi | 2024-02-15 | 2024-02 | LEWG Library Evolution | |
P3126R0 | Graph Library: Overview | Phil Ratzloff | 2024-02-12 | 2024-02 | SG14 Low Latency,SG19 Machine Learning,LEWG Library Evolution | |
P3127R0 | Graph Library: Background and Terminology | Phil Ratzloff | 2024-02-12 | 2024-02 | SG14 Low Latency,SG19 Machine Learning,LEWG Library Evolution | |
P3128R0 | Graph Library: Algorithms | Phil Ratzloff | 2024-02-12 | 2024-02 | SG14 Low Latency,SG19 Machine Learning,LEWG Library Evolution | |
P3129R0 | Graph Library: Views | Phil Ratzloff | 2024-02-12 | 2024-02 | SG14 Low Latency,SG19 Machine Learning,LEWG Library Evolution | |
P3130R0 | Graph Library: Graph Container Interface | Phil Ratzloff | 2024-02-12 | 2024-02 | SG6 Numerics,SG14 Low Latency,SG19 Machine Learning,LEWG Library Evolution | |
P3131R0 | Graph Library: Graph Containers | Phil Ratzloff | 2024-02-12 | 2024-02 | SG6 Numerics,SG14 Low Latency,SG19 Machine Learning,LEWG Library Evolution | |
P3133R0 | Fast first-factor finding function | Chip Hogg | 2024-02-14 | 2024-02 | SG6 Numerics,LEWG Library Evolution | |
P3135R0 | Hazard Pointer Extensions | Maged Michael | 2024-02-11 | 2024-02 | SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library | |
P3136R0 | Retiring niebloids | Tim Song | 2024-02-14 | 2024-02 | SG9 Ranges | |
P3137R0 | views::to_input | Tim Song | 2024-02-14 | 2024-02 | SG9 Ranges | |
P3138R0 | views::cache_last | Tim Song | 2024-02-14 | 2024-02 | SG1 Concurrency and Parallelism,SG9 Ranges | |
P3140R0 | std::int_least128_t | Jan Schultke | 2024-02-14 | 2024-02 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator | |
P3142R0 | Printing Blank Lines with println | Alan Talbot | 2024-02-12 | 2024-02 | LEWG Library Evolution | |
P3143R0 | An in-depth walk through of the example in P3090R0 | Lewis Baker | 2024-02-13 | 2024-02 | LEWG Library Evolution | |
P3144R0 | Deprecate Delete of Incomplete Class Type | Alisdair Meredith | 2024-02-15 | 2024-02 | SG12 Undefined and Unspecified Behavior,EWGI SG17: EWG Incubator | |
P3146R0 | Clarifying std::variant converting construction | Giuseppe D'Angelo | 2024-02-13 | 2024-02 | LEWG Library Evolution,LWG Library | |
P3147R0 | A Direction for Vector | Alan Talbot | 2024-02-14 | 2024-02 | LEWG Library Evolution | |
P3148R0 | Formatting of chrono Time Values | Alan Talbot | 2024-02-14 | 2024-02 | LEWG Library Evolution | |
P3149R0 | async_scope -- Creating scopes for non-sequential concurrency | Ian Petersen | 2024-02-14 | 2024-02 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P3150R0 | SG14: Low Latency/Games/Embedded/Financial Trading virtual Meeting Minutes 2023/12/13-2024/2/14 | Michael Wong | 2024-02-14 | 2024-02 | SG14 Low Latency | |
P3151R0 | SG19: Machine Learning virtual Meeting Minutes to 2023/12/14-2024/02/8 | Michael Wong | 2024-02-14 | 2024-02 | SG19 Machine Learning | |
P3153R0 | An allocator-aware variant type | Nina Ranns | 2024-02-15 | 2024-02 | LEWG Library Evolution | |
P3154R0 | Deprecating signed character types in iostreams | Elias Kosunen | 2024-02-15 | 2024-02 | SG16 Unicode,LEWG Library Evolution | |
P3155R0 | noexcept policy for SD-9 (The Lakos Rule) | Timur Doumler | 2024-02-15 | 2024-02 | LEWG Library Evolution | |
P3156R0 | empty_checkable_range | Hewill Kang | 2024-02-15 | 2024-02 | LEWGI SG18: LEWG Incubator | |
P3157R0 | Generative Extensions for Reflection | Andrei Alexandrescu | 2024-02-15 | 2024-02 | SG7 Reflection | |
P3158R0 | Headless Template Template Parameters | James Touton | 2024-02-15 | 2024-02 | EWGI SG17: EWG Incubator,EWG Evolution | |
P3160R0 | An allocator-aware `inplace_vector` | Pablo Halpern | 2024-02-15 | 2024-02 | LEWG Library Evolution | |
P3300R0 | C++ Asynchronous Parallel Algorithms | Bryce Adelstein Lelbach | 2024-02-15 | 2024-02 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
In a recent blog post, Eric Niebler gets inside the soon-to-be-standard async programming model and shows why you should care.
What are senders good for, anyway?
by Eric Niebler
From the article:
]]>At the heart of P2300 is a simple, elegant (IMHO) core that brings many benefits, but it’s hard to see that forest for all the trees.
So let’s make this concrete. In this post, I’ll show how to bring a crusty old C-style async API into the world of senders, and why you might want to do that.
The 2024-01 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
P1255R11 | A view of 0 or 1 elements: views::maybe | Steve Downey | 2024-01-12 | 2024-01 | P1255R10 | SG9 Ranges,LEWG Library Evolution |
P1255R12 | A view of 0 or 1 elements: views::maybe | Steve Downey | 2024-01-16 | 2024-01 | P1255R11 | SG9 Ranges,LEWG Library Evolution,LWG Library |
P1709R5 | Graph Library | Phillip Ratzloff | 2024-01-15 | 2024-01 | P1709R4 | SG6 Numerics,SG14 Low Latency,SG19 Machine Learning |
P2019R5 | Thread attributes | Corentin Jabot | 2024-01-13 | 2024-01 | P2019R4 | LEWG Library Evolution |
P2527R3 | std::variant_alternative_index and std::tuple_element_index | Alex Christensen | 2024-01-02 | 2024-01 | P2527R2 | LEWG Library Evolution |
P2664R6 | Proposal to extend std::simd with permutation API | Daniel Towner | 2024-01-16 | 2024-01 | P2664R5 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2748R3 | Disallow Binding a Returned Glvalue to a Temporary | Brian Bi | 2024-01-08 | 2024-01 | P2748R2 | CWG Core |
P2748R4 | Disallow Binding a Returned Glvalue to a Temporary | Brian Bi | 2024-01-08 | 2024-01 | P2748R3 | CWG Core |
P2835R2 | Expose std::atomic_ref's object address | Gonzalo Brito Gadeschi | 2024-01-10 | 2024-01 | P2835R1 | LEWG Library Evolution |
P2894R2 | Constant evaluation of Contracts | Timur Doumler | 2024-01-11 | 2024-01 | P2894R1 | SG21 Contracts |
P2900R4 | Contracts for C++ | Joshua Berne | 2024-01-16 | 2024-01 | P2900R3 | SG21 Contracts |
P2932R3 | A Principled Approach to Open Design Questions for Contracts | Joshua Berne | 2024-01-15 | 2024-01 | P2932R2 | SG21 Contracts |
P2946R1 | A flexible solution to the problems of `noexcept` | Pablo Halpern | 2024-01-15 | 2024-01 | P2946R0 | EWGI SG17: EWG Incubator,EWG Evolution |
P2957R1 | Contracts and coroutines | Andrzej Krzemieński | 2024-01-13 | 2024-01 | P2957R0 | SG21 Contracts |
P2963R1 | Ordering of constraints involving fold expressions | Corentin Jabot | 2024-01-13 | 2024-01 | P2963R0 | EWG Evolution |
P2988R1 | std::optional<T&> | Steve Downey | 2024-01-05 | 2024-01 | P2988R0 | LEWG Library Evolution,LWG Library |
P3044R0 | sub-string_view from string | Michael Florian Hava | 2024-01-15 | 2024-01 | LEWG Library Evolution | |
P3054R0 | 2023-12 Library Evolution Poll Outcomes | Inbal Levi | 2024-01-13 | 2024-01 | All of WG21 | |
P3079R0 | Should ignore and observe exist for constant evaluation of contracts? | Oliver Rosten | 2024-01-11 | 2024-01 | SG21 Contracts | |
P3084R0 | Slides for LEWG views::maybe 20240109 | Steve Downey | 2024-01-12 | 2024-01 | LEWG Library Evolution | |
P3086R0 | Proxy: A Pointer-Semantics-Based Polymorphism Library | Mingxin Wang | 2024-01-16 | 2024-01 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P3087R0 | Make direct-initialization for enumeration types at least as permissive as direct-list-initializatio | Jan Schultke | 2024-01-16 | 2024-01 | LEWGI SG18: LEWG Incubator |
The 2023-12 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4966 | St. Louis Meeting Invitation and Information | Bill Seymour | 2023-10-19 | 2023-12 | All of WG21 | |
N4967 | WG21 2023-10 Admin telecon minutes | Nina Ranns | 2023-10-30 | 2023-12 | All of WG21 | |
N4970 | WG21 2023-11 Kona Minutes of Meeting | Nina Ranns | 2023-11-28 | 2023-12 | All of WG21 | |
N4971 | Working Draft, Programming Languages -- C++ | Thomas Köppe | 2023-12-17 | 2023-12 | All of WG21 | |
N4972 | Editors' Report, Programming Languages -- C++ | Thomas Köppe | 2023-12-17 | 2023-12 | All of WG21 | |
P0447R24 | Introduction of std::hive to the standard library | Matt Bentley | 2023-10-25 | 2023-12 | P0447R23 | SG14 Low Latency,LEWG Library Evolution,All of WG21 |
P0447R25 | Introduction of std::hive to the standard library | Matt Bentley | 2023-12-03 | 2023-12 | P0447R24 | SG14 Low Latency,LEWG Library Evolution,All of WG21 |
P0447R26 | Introduction of std::hive to the standard library | Matt Bentley | 2023-12-17 | 2023-12 | P0447R25 | SG14 Low Latency,LEWG Library Evolution,All of WG21 |
P0609R2 | Attributes for Structured Bindings | Aaron Ballman | 2023-11-27 | 2023-12 | P0609R1 | CWG Core |
P0952R2 | A new specification for std::generate_canonical | Thomas Köppe | 2023-12-18 | 2023-12 | P0952R1 | LWG Library |
P1028R6 | SG14 status_code and standard error object | Niall Douglas | 2023-12-10 | 2023-12 | P1028R5 | LEWG Library Evolution |
P1061R6 | Structured Bindings can introduce a Pack | Barry Revzin | 2023-12-10 | 2023-12 | P1061R5 | EWG Evolution |
P1068R10 | Vector API for random number generation | Ilya Burylov | 2023-12-09 | 2023-12 | P1068R9 | LWG Library |
P1673R13 | A free function linear algebra interface based on the BLAS | Mark Hoemmen | 2023-12-18 | 2023-12 | P1673R12 | All of WG21 |
P1708R8 | Basic Statistics | Richard Dosselmann | 2023-12-17 | 2023-12 | P1708R7 | SG6 Numerics,SG14 Low Latency,LEWG Library Evolution,LWG Library |
P1709R4 | Graph Library | Phillip Ratzloff | 2023-12-18 | 2023-12 | P1709R3 | SG19 Machine Learning |
P1709R4 | Graph Library | Phillip Ratzloff | 2023-12-18 | 2023-12 | P1709R3 | SG19 Machine Learning |
P1928R8 | std::simd - Merge data-parallel types from the Parallelism TS 2 | Matthias Kretz | 2023-11-09 | 2023-12 | P1928R7 | LEWG Library Evolution,LWG Library |
P1967R12 | #embed - a simple, scannable preprocessor-based resource acquisition method | JeanHeyd Meneide | 2023-12-09 | 2023-12 | P1967R11 | CWG Core |
P2022R3 | Rangified version of lexicographical_compare_three_way | Ran Regev | 2023-12-17 | 2023-12 | P2022R2 | SG9 Ranges,LEWG Library Evolution |
P2264R6 | Make assert() macro user friendly for C and C++ | Peter Sommerlad | 2023-11-10 | 2023-12 | P2264R5 | LWG Library |
P2264R7 | Make assert() macro user friendly for C and C++ | Peter Sommerlad | 2023-12-18 | 2023-12 | P2264R6 | LWG Library |
P2267R1 | Library Evolution Policies | Inbal Levi | 2023-11-22 | 2023-12 | P2267R0 | LEWG Library Evolution |
P2308R1 | Template parameter initialization | S. Davis Herring | 2023-12-18 | 2023-12 | P2308R0 | CWG Core |
P2414R2 | Pointer lifetime-end zap proposed solutions | Paul E. McKenney | 2023-12-17 | 2023-12 | P2414R1 | SG1 Concurrency and Parallelism,EWG Evolution |
P2447R6 | std::span over an initializer list | Arthur O'Dwyer | 2023-12-18 | 2023-12 | P2447R5 | LWG Library |
P2481R2 | Forwarding reference to specific type/template | Barry Revzin | 2023-12-16 | 2023-12 | P2481R1 | EWG Evolution |
P2542R7 | views::concat | Hui Xie | 2023-12-02 | 2023-12 | P2542R6 | SG9 Ranges,LEWG Library Evolution,LWG Library |
P2573R1 | = delete("should have a reason"); | Yihe Li | 2023-11-10 | 2023-12 | P2573R0 | EWG Evolution |
P2642R5 | Padded mdspan layouts | Christian Trott | 2023-12-05 | 2023-12 | P2642R4 | LEWG Library Evolution,LWG Library |
P2662R3 | Pack Indexing | Corentin Jabot | 2023-12-18 | 2023-12 | P2662R2 | CWG Core |
P2663R5 | Proposal to support interleaved complex values in std::simd | Daniel Towner | 2023-12-08 | 2023-12 | P2663R4 | LEWG Library Evolution |
P2664R5 | Proposal to extend std::simd with permutation API | Daniel Towner | 2023-10-25 | 2023-12 | P2664R4 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2717R4 | Tool Introspection | René Ferdinand Rivera Morell | 2023-11-08 | 2023-12 | P2717R3 | SG15 Tooling |
P2717R5 | Tool Introspection | René Ferdinand Rivera Morell | 2023-11-10 | 2023-12 | P2717R4 | SG15 Tooling |
P2747R1 | constexpr placement new | Barry Revzin | 2023-12-10 | 2023-12 | P2747R0 | EWG Evolution |
P2758R1 | Emitting messages at compile time | Barry Revzin | 2023-12-09 | 2023-12 | P2758R0 | EWG Evolution,LEWG Library Evolution |
P2760R1 | A Plan for C++26 Ranges | Barry Revzin | 2023-12-14 | 2023-12 | P2760R0 | SG9 Ranges,LEWG Library Evolution |
P2761R0 | Slides: If structured binding (P0963R1 presentation) | Zhihao Yuan | 2023-11-08 | 2023-12 | EWGI SG17: EWG Incubator | |
P2767R2 | flat_map/flat_set omnibus | Arthur O'Dwyer | 2023-12-09 | 2023-12 | P2767R1 | LEWG Library Evolution,LWG Library |
P2795R4 | Erroneous behaviour for uninitialized reads | Thomas Köppe | 2023-11-10 | 2023-12 | P2795R3 | SG12 Undefined and Unspecified Behavior,SG23 Safety and Security,EWG Evolution,CWG Core,LWG Library |
P2806R2 | do expressions | Barry Revzin | 2023-11-16 | 2023-12 | P2806R1 | EWG Evolution |
P2810R2 | is_debugger_present is_replaceable | René Ferdinand Rivera Morell | 2023-12-02 | 2023-12 | P2810R1 | LEWG Library Evolution |
P2810R3 | is_debugger_present is_replaceable | René Ferdinand Rivera Morell | 2023-12-03 | 2023-12 | P2810R2 | LEWG Library Evolution |
P2819R2 | Add tuple protocol to complex | Michael Florian Hava | 2023-12-18 | 2023-12 | P2819R1 | LWG Library |
P2821R5 | span.at() | Jarrad J. Waterloo | 2023-12-18 | 2023-12 | P2821R4 | SG23 Safety and Security,LEWG Library Evolution |
P2826R1 | Replacement functions | Gašper Ažman | 2023-11-05 | 2023-12 | P2826R0 | EWG Evolution |
P2827R1 | Floating-point overflow and underflow in from_chars (LWG 3081) | Zhihao Yuan | 2023-11-20 | 2023-12 | P2827R0 | LEWG Library Evolution,LWG Library |
P2830R1 | constexpr type comparison | Gašper Ažman | 2023-11-05 | 2023-12 | P2830R0 | EWG Evolution |
P2845R5 | Formatting of std::filesystem::path | Victor Zverovich | 2023-11-24 | 2023-12 | P2845R4 | LWG Library |
P2863R3 | Review Annex D for C++26 | Alisdair Meredith | 2023-12-18 | 2023-12 | P2863R2 | EWG Evolution,LEWG Library Evolution |
P2864R2 | Remove Deprecated Arithmetic Conversion on Enumerations From C++26 | Alisdair Meredith | 2023-12-18 | 2023-12 | P2864R1 | CWG Core |
P2865R4 | Remove Deprecated Array Comparisons from C++26 | Alisdair Meredith | 2023-11-12 | 2023-12 | P2865R3 | SG22 Compatibility |
P2868R3 | Remove Deprecated `std::allocator` Typedef From C++26 | Alisdair Meredith | 2023-12-18 | 2023-12 | P2868R2 | LWG Library |
P2869R3 | Remove Deprecated `shared_ptr` Atomic Access APIs From C++26 | Alisdair Meredith | 2023-12-03 | 2023-12 | P2869R2 | LEWG Library Evolution,LWG Library |
P2870R3 | Remove `basic_string::reserve()` From C++26 | Alisdair Meredith | 2023-12-18 | 2023-12 | P2870R2 | LWG Library |
P2871R3 | Remove Deprecated Unicode Conversion Facets From C++26 | Alisdair Meredith | 2023-12-18 | 2023-12 | P2871R2 | LWG Library |
P2878R6 | Reference checking | Jarrad J. Waterloo | 2023-11-13 | 2023-12 | P2878R5 | SG23 Safety and Security |
P2890R1 | Contracts on lambdas | Timur Doumler | 2023-12-07 | 2023-12 | P2890R0 | SG21 Contracts |
P2890R2 | Contracts on lambdas | Timur Doumler | 2023-12-13 | 2023-12 | P2890R1 | SG21 Contracts |
P2894R1 | Constant evaluation of Contracts | Timur Doumler | 2023-12-07 | 2023-12 | P2894R0 | SG21 Contracts |
P2900R2 | Contracts for C++ | Joshua Berne | 2023-11-11 | 2023-12 | P2900R1 | SG21 Contracts |
P2900R3 | Contracts for C++ | Joshua Berne | 2023-12-17 | 2023-12 | P2900R2 | SG21 Contracts |
P2909R3 | Fix formatting of code units as integers (Dude, where's my char?) | Victor Zverovich | 2023-11-07 | 2023-12 | P2909R2 | LWG Library |
P2909R4 | Fix formatting of code units as integers (Dude, where's my char?) | Victor Zverovich | 2023-12-18 | 2023-12 | P2909R3 | LWG Library |
P2918R2 | Runtime format strings II | Victor Zverovich | 2023-12-18 | 2023-12 | P2918R1 | LWG Library |
P2932R2 | A Principled Approach to Open Design Questions for Contracts | Joshua Berne | 2023-11-14 | 2023-12 | P2932R1 | SG21 Contracts |
P2933R1 | std::simd overloads for <bit> header | Daniel Towner | 2023-12-08 | 2023-12 | P2933R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2935R4 | An Attribute-Like Syntax for Contracts | Joshua Berne | 2023-11-05 | 2023-12 | P2935R3 | SG21 Contracts |
P2952R1 | auto& operator=(X&&) = default | Arthur O'Dwyer | 2023-12-09 | 2023-12 | P2952R0 | EWG Evolution |
P2961R2 | A natural syntax for Contracts | Timur Doumler | 2023-11-08 | 2023-12 | P2961R1 | SG21 Contracts |
P2968R1 | Make std::ignore a first-class object | Peter Sommerlad | 2023-12-12 | 2023-12 | P2968R0 | LEWG Library Evolution,LWG Library |
P2968R2 | Make std::ignore a first-class object | Peter Sommerlad | 2023-12-13 | 2023-12 | P2968R1 | LWG Library |
P2969R0 | Contract annotations are potentially-throwing | Timur Doumler | 2023-12-04 | 2023-12 | SG21 Contracts | |
P2977R0 | Module commands database format | Ben Boeckel | 2023-11-14 | 2023-12 | SG15 Tooling | |
P2980R1 | A motivation, scope, and plan for a quantities and units library | Mateusz Pusz | 2023-11-28 | 2023-12 | P2980R0 | SG6 Numerics,SG23 Safety and Security,LEWG Library Evolution |
P2981R1 | Improving our safety with a physical quantities and units library | Mateusz Pusz | 2023-11-08 | 2023-12 | P2981R0 | SG23 Safety and Security,LEWG Library Evolution |
P2982R1 | `std::quantity` as a numeric type | Mateusz Pusz | 2023-11-08 | 2023-12 | P2982R0 | SG6 Numerics,LEWG Library Evolution |
P2984R1 | Reconsider Redeclaring static constexpr Data Members | Alisdair Meredith | 2023-11-12 | 2023-12 | P2984R0 | EWG Evolution |
P2996R1 | Reflection for C++26 | Barry Revzin | 2023-12-17 | 2023-12 | P2996R0 | EWG Evolution |
P2999R1 | Sender Algorithm Customization | Eric Niebler | 2023-11-09 | 2023-12 | P2999R0 | LEWG Library Evolution |
P2999R2 | Sender Algorithm Customization | Eric Niebler | 2023-12-12 | 2023-12 | P2999R1 | LEWG Library Evolution |
P2999R3 | Sender Algorithm Customization | Eric Niebler | 2023-12-12 | 2023-12 | P2999R2 | LEWG Library Evolution |
P3006R0 | Launder less | Antony Polukhin | 2023-10-19 | 2023-12 | SG12 Undefined and Unspecified Behavior,EWG Evolution,CWG Core | |
P3007R0 | Return object semantics in postconditions | Timur Doumler | 2023-12-11 | 2023-12 | SG21 Contracts | |
P3016R1 | Resolve inconsistencies in begin/end for valarray and braced initializer lists | Arthur O'Dwyer | 2023-12-09 | 2023-12 | P3016R0 | LEWGI SG18: LEWG Incubator |
P3019R1 | Vocabulary Types for Composite Class Design | Jonathan Coe | 2023-11-08 | 2023-12 | P3019R0 | LEWG Library Evolution,LWG Library |
P3019R2 | Vocabulary Types for Composite Class Design | Jonathan Coe | 2023-11-10 | 2023-12 | P3019R1 | LEWG Library Evolution,LWG Library |
P3019R3 | Vocabulary Types for Composite Class Design | Jonathan Coe | 2023-11-20 | 2023-12 | P3019R2 | LEWG Library Evolution |
P3022R1 | A Boring Thread Attributes Interface | David Sankel | 2023-11-28 | 2023-12 | P3022R0 | LEWG Library Evolution |
P3023R1 | C++ Should Be C++ | David Sankel | 2023-11-27 | 2023-12 | P3023R0 | EWG Evolution,LEWG Library Evolution |
P3024R0 | Interface Directions for std::simd | David Sankel | 2023-11-30 | 2023-12 | LEWG Library Evolution | |
P3025R0 | SG14: Low Latency/Games/Embedded/Financial trading/Simulation virtual Minutes to 2023/09/12 | Michael Wong | 2023-10-15 | 2023-12 | SG14 Low Latency | |
P3026R0 | SG19: Machine Learning virtual Meeting Minutes to 2023/07/13 | Michael Wong | 2023-10-15 | 2023-12 | SG19 Machine Learning | |
P3027R0 | UFCS is a breaking change, of the absolutely worst kind | Ville Voutilainen | 2023-10-26 | 2023-12 | EWG Evolution | |
P3028R0 | An Overview of Syntax Choices for Contracts | Joshua Berne | 2023-11-05 | 2023-12 | SG21 Contracts | |
P3029R0 | Better mdspan's CTAD | Hewill Kang | 2023-10-23 | 2023-12 | LEWGI SG18: LEWG Incubator | |
P3031R0 | Resolve CWG2561: conversion function for lambda with explicit object parameter | Arthur O'Dwyer | 2023-11-12 | 2023-12 | CWG Core | |
P3033R0 | Should we import function bodies to get the better optimizations? | Chuanqi Xu | 2023-10-31 | 2023-12 | SG15 Tooling | |
P3034R0 | Module Declarations Shouldn't be Macros | Michael Spencer | 2023-11-10 | 2023-12 | SG15 Tooling,EWG Evolution | |
P3037R0 | constexpr std::shared_ptr | Paul Keir | 2023-11-06 | 2023-12 | SG7 Reflection,LEWG Library Evolution | |
P3038R0 | Concrete suggestions for initial Profiles | Bjarne Stroustrup | 2023-12-16 | 2023-12 | SG23 Safety and Security | |
P3039R0 | Automatically Generate `operator->` | David Stone | 2023-11-07 | 2023-12 | EWG Evolution,LEWG Library Evolution | |
P3040R0 | C++ Standard Library Ready Issues to be moved in Kona, Nov. 2023 | Jonathan Wakely | 2023-12-18 | 2023-12 | All of WG21 | |
P3041R0 | Transitioning from "#include" World to Modules | Gabriel Dos Reis | 2023-11-15 | 2023-12 | SG15 Tooling | |
P3042R0 | Vocabulary Types for Composite Class Design | Jonathan Coe | 2023-11-08 | 2023-12 | LEWG Library Evolution | |
P3043R0 | Slides: Using variable template template without meta programming | Zhihao Yuan | 2023-12-11 | 2023-12 | EWG Evolution | |
P3046R0 | Core Language Working Group "ready" Issues for the November, 2023 meeting | Jens Maurer | 2023-12-18 | 2023-12 | CWG Core | |
P3050R0 | Optimize linalg::conjugated for noncomplex value types | Mark Hoemmen | 2023-11-15 | 2023-12 | LEWG Library Evolution | |
P3051R0 | Structured Response Files | René Ferdinand Rivera Morell | 2023-12-11 | 2023-12 | SG15 Tooling | |
P3052R0 | view_interface::at() | Hewill Kang | 2023-11-16 | 2023-12 | SG9 Ranges,LEWGI SG18: LEWG Incubator,SG23 Safety and Security | |
P3053R0 | 2023-12 Library Evolution Polls | Inbal Levi | 2023-12-15 | 2023-12 | All of WG21 | |
P3055R0 | Relax wording to permit relocation optimizations in the STL | Arthur O'Dwyer | 2023-12-17 | 2023-12 | LEWGI SG18: LEWG Incubator | |
P3056R0 | what ostream exception | Jarrad J. Waterloo | 2023-11-20 | 2023-12 | LEWG Library Evolution | |
P3057R0 | Two finer-grained compilation model for named modules | Chuanqi Xu | 2023-11-21 | 2023-12 | SG15 Tooling | |
P3059R0 | Making user-defined constructors of view iterators/sentinels private | Hewill Kang | 2023-11-30 | 2023-12 | SG9 Ranges,LEWG Library Evolution | |
P3060R0 | Add std::ranges::upto(n) | Weile Wei | 2023-11-22 | 2023-12 | LEWG Library Evolution | |
P3061R0 | WG21 2023-11 Kona Record of Discussion | Nina Ranns | 2023-11-28 | 2023-12 | All of WG21 | |
P3062R0 | C++ Should Be C++ - Presentation | David Sankel | 2023-11-27 | 2023-12 | EWG Evolution,LEWG Library Evolution | |
P3066R0 | Allow repeating contract annotations on non-first declarations | Timur Doumler | 2023-12-04 | 2023-12 | SG21 Contracts | |
P3070R0 | Formatting enums | Victor Zverovich | 2023-12-14 | 2023-12 | SG16 Unicode | |
P3071R0 | Protection against modifications in contracts | Jens Maurer | 2023-12-10 | 2023-12 | SG21 Contracts | |
P3071R1 | Protection against modifications in contracts | Jens Maurer | 2023-12-17 | 2023-12 | P3071R0 | SG21 Contracts |
P3072R0 | Hassle-free thread attributes | Zhihao Yuan | 2023-12-17 | 2023-12 | LEWG Library Evolution | |
P3074R0 | constexpr union lifetime | Barry Revzin | 2023-12-15 | 2023-12 | EWG Evolution | |
P3075R0 | Adding an Undefined Behavior and IFNDR Annex | Shafik Yaghmour | 2023-12-15 | 2023-12 | CWG Core |
A report out from this week's ISO C++ standards committee meeting, which just ended:
Trip report: Autumn ISO C++ standards meeting (Kona, HI, USA)
by Herb Sutter
From the article:
]]>This time, the committee adopted the next set of features for C++26. It also made significant progress on other features that are now expected to be complete in time for C++26 — including contracts and reflection.
David Sankel discusses about the developments at the June 2023 ISO C++ standardization meeting in Varna.
by David Sankel
About the report:
]]>In detail he speakes about std::simd, std::inplace_vector, and other developments.
The 2023-10 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4961 | 2024-03 Tokyo meeting information | JF Bastien | 2023-10-02 | 2023-10 | All of WG21 | |
N4962 | WG21 agenda: 6-11 November 2023, Kona, HI | John Spicer | 2023-10-07 | 2023-10 | All of WG21 | |
N4963 | 2023 WG21 admin telecon meetings, rev. 2 | Herb Sutter | 2023-09-30 | 2023-10 | All of WG21 | |
N4964 | Working Draft, Programming Languages -- C++ | Thomas Köppe | 2023-10-14 | 2023-10 | All of WG21 | |
N4965 | Editors' Report, Programming Languages -- C++ | Thomas Köppe | 2023-10-14 | 2023-10 | All of WG21 | |
P0447R23 | Introduction of std::hive to the standard library | Matt Bentley | 2023-10-14 | 2023-10 | P0447R22 | SG14 Low Latency,LEWG Library Evolution,All of WG21 |
P0876R14 | fiber_context - fibers without scheduler | Oliver Kowalke | 2023-10-13 | 2023-10 | P0876R13 | LWG Library |
P0952R1 | A new specification for std::generate_canonical | Thomas Koeppe | 2023-09-20 | 2023-10 | P0952R0 | LWG Library |
P1144R9 | std::is_trivially_relocatable | Arthur O'Dwyer | 2023-10-12 | 2023-10 | P1144R8 | EWG Evolution,LEWG Library Evolution |
P1729R3 | Text Parsing | Elias Kosunen | 2023-10-12 | 2023-10 | P1729R2 | SG9 Ranges,SG16 Unicode,LEWG Library Evolution |
P1928R7 | std::simd - Merge data-parallel types from the Parallelism TS 2 | Matthias Kretz | 2023-10-15 | 2023-10 | P1928R6 | LEWG Library Evolution,LWG Library |
P2019R4 | Thread attributes | Corentin Jabot | 2023-10-15 | 2023-10 | P2019R3 | LEWG Library Evolution |
P2075R3 | Philox as an extension of the C++ RNG engines | Ilya Burylov | 2023-10-13 | 2023-10 | P2075R2 | LEWG Library Evolution |
P2267R0 | Library Evolution Policies | Inbal Levi | 2023-10-15 | 2023-10 | LEWG Library Evolution | |
P2447R5 | std::span over an initializer list | Arthur O'Dwyer | 2023-10-11 | 2023-10 | P2447R4 | LWG Library |
P2500R2 | C++ parallel algorithms and P2300 | Ruslan Arutyunyan | 2023-10-15 | 2023-10 | P2500R1 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2542R6 | views::concat | Hui Xie | 2023-10-01 | 2023-10 | P2542R5 | SG9 Ranges,LEWG Library Evolution,LWG Library |
P2642R4 | Padded mdspan layouts | Christian Trott | 2023-10-15 | 2023-10 | P2642R3 | LEWG Library Evolution |
P2663R4 | Proposal to support interleaved complex values in std::simd | Daniel Towner | 2023-10-13 | 2023-10 | P2663R3 | LEWG Library Evolution |
P2664R4 | Proposal to extend std::simd with permutation API | Daniel Towner | 2023-10-13 | 2023-10 | P2664R3 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2717R3 | Tool Introspection | René Ferdinand Rivera Morell | 2023-10-14 | 2023-10 | P2717R2 | SG15 Tooling |
P2762R2 | Sender/Receiver Interface For Networking | Dietmar Kuhl | 2023-10-12 | 2023-10 | P2762R1 | SG4 Networking,LEWG Library Evolution |
P2774R1 | Concurrent object pool (was: Scoped thread-local storage) | Michael Florian Hava | 2023-09-30 | 2023-10 | P2774R0 | SG1 Concurrency and Parallelism |
P2786R3 | Trivial Relocatability For C++26 | Mungo Gill | 2023-10-14 | 2023-10 | P2786R2 | EWG Evolution,LEWG Library Evolution |
P2800R0 | Dependency flag soup needs some fiber | Ben Boeckel | 2023-09-20 | 2023-10 | SG15 Tooling | |
P2809R2 | Trivial infinite loops are not Undefined Behavior | JF Bastien | 2023-10-14 | 2023-10 | P2809R1 | SG1 Concurrency and Parallelism,SG22 Compatability,EWG Evolution,LEWG Library Evolution |
P2841R1 | Concept Template Parameters | Corentin Jabot | 2023-10-14 | 2023-10 | P2841R0 | EWG Evolution |
P2845R3 | Formatting of std::filesystem::path | Victor Zverovich | 2023-10-01 | 2023-10 | P2845R2 | LEWG Library Evolution |
P2845R4 | Formatting of std::filesystem::path | Victor Zverovich | 2023-10-07 | 2023-10 | P2845R3 | LEWG Library Evolution |
P2862R1 | text_encoding::name() should never return null values | Daniel Krügler | 2023-09-24 | 2023-10 | P2862R0 | LEWG Library Evolution,LWG Library |
P2863R2 | Review Annex D for C++26 | Alisdair Meredith | 2023-10-15 | 2023-10 | P2863R1 | EWG Evolution,LEWG Library Evolution |
P2885R3 | Requirements for a Contracts syntax | Timur Doumler | 2023-10-05 | 2023-10 | P2885R2 | SG21 Contracts |
P2893R1 | Variadic Friends | Jody Hagins | 2023-10-09 | 2023-10 | P2893R0 | EWG Evolution |
P2897R1 | aligned_accessor: An mdspan accessor expressing pointer overalignment | Mark Hoemmen | 2023-10-13 | 2023-10 | P2897R0 | LEWG Library Evolution |
P2900R0 | Contracts for C++ | Joshua Berne | 2023-10-12 | 2023-10 | SG21 Contracts | |
P2900R1 | Contracts for C++ | Joshua Berne | 2023-10-09 | 2023-10 | P2900R0 | SG21 Contracts |
P2911R1 | Python Bindings with Value-Based Reflection | Adam Lach | 2023-10-13 | 2023-10 | P2911R0 | SG7 Reflection |
P2927R0 | Observing exceptions stored in exception_ptr | Gor Nishanov | 2023-10-14 | 2023-10 | LEWGI SG18: LEWG Incubator,EWG Evolution,LEWG Library Evolution | |
P2932R1 | A Principled Approach to Open Design Questions for Contracts | Joshua Berne | 2023-10-04 | 2023-10 | P2932R0 | SG21 Contracts |
P2935R3 | An Attribute-Like Syntax for Contracts | Joshua Berne | 2023-10-05 | 2023-10 | P2935R2 | SG21 Contracts |
P2959R0 | Container Relocation | Alisdair Meredith | 2023-10-15 | 2023-10 | LEWG Library Evolution | |
P2961R1 | A natural syntax for Contracts | Timur Doumler | 2023-10-12 | 2023-10 | P2961R0 | SG21 Contracts |
P2962R0 | Communicating the Baseline Compile Command for C++ Modules support | Daniel Ruoso | 2023-10-13 | 2023-10 | SG15 Tooling | |
P2967R0 | Relocation Is A Library Interface | Alisdair Meredith | 2023-10-15 | 2023-10 | LEWG Library Evolution | |
P2971R1 | Implication for C++ | Walter E Brown | 2023-10-14 | 2023-10 | P2971R0 | EWG Evolution |
P2978R0 | A New Approach For Compiling C++ | Hassan Sajjad | 2023-09-26 | 2023-10 | SG15 Tooling | |
P2979R0 | The Need for Design Policies in WG21 | Alisdair Meredith | 2023-10-13 | 2023-10 | EWG Evolution,LEWG Library Evolution | |
P2980R0 | A motivation, scope, and plan for a physical quantities and units library | Mateusz Pusz | 2023-10-15 | 2023-10 | SG6 Numerics,LEWGI SG18: LEWG Incubator,SG23 Safety and Security,LEWG Library Evolution | |
P2981R0 | Improving our safety with a physical quantities and units library | Mateusz Pusz | 2023-10-15 | 2023-10 | SG23 Safety and Security,LEWG Library Evolution | |
P2982R0 | `std::quantity` as a numeric type | Mateusz Pusz | 2023-10-15 | 2023-10 | SG6 Numerics,LEWG Library Evolution | |
P2984R0 | Reconsider Redeclaring static constexpr Data Members | Alisdair Meredith | 2023-10-15 | 2023-10 | EWG Evolution | |
P2985R0 | A type trait for detecting virtual base classes | Giuseppe D'Angelo | 2023-10-09 | 2023-10 | LEWG Library Evolution | |
P2986R0 | Generic Function Pointer | Lauri Vasama | 2023-10-14 | 2023-10 | EWG Evolution | |
P2988R0 | std::optional<T&> | Steve Downey | 2023-10-15 | 2023-10 | LEWG Library Evolution | |
P2989R0 | A Simple Approach to Universal Template Parameters | Corentin Jabot | 2023-10-14 | 2023-10 | EWG Evolution | |
P2990R0 | C++ Modules Roadmap | Daniel Ruoso | 2023-10-14 | 2023-10 | SG15 Tooling | |
P2991R0 | Stop Forcing std::move to Pessimize | Brian Bi | 2023-10-11 | 2023-10 | SG20 Education | |
P2992R0 | Attribute [[discard]] and attributes on expressions | Giuseppe D'Angelo | 2023-10-10 | 2023-10 | EWGI SG17: EWG Incubator,SG22 Compatability,EWG Evolution | |
P2994R0 | On the Naming of Packs | Barry Revzin | 2023-10-13 | 2023-10 | EWG Evolution | |
P2995R0 | SG16: Unicode meeting summaries 2023-05-24 through 2023-09-27 | Tom Honermann | 2023-10-08 | 2023-10 | SG16 Unicode | |
P2996R0 | Reflection for C++26 | Barry Revzin | 2023-10-15 | 2023-10 | EWG Evolution | |
P2997R0 | Removing the common reference requirement from the indirectly invocable concepts | Barry Revzin | 2023-10-13 | 2023-10 | SG9 Ranges,LEWG Library Evolution | |
P2999R0 | Sender Algorithm Customization | Eric Niebler | 2023-10-14 | 2023-10 | LEWG Library Evolution | |
P3001R0 | std::hive and containers like it are not a good fit for the standard library | Jonathan Müller | 2023-10-15 | 2023-10 | LEWG Library Evolution | |
P3002R0 | Guidelines for allocators in new library classes | Pablo Halpern | 2023-10-15 | 2023-10 | LEWG Library Evolution | |
P3003R0 | The design of a library of number concepts | Johel Ernesto Guerrero Peña | 2023-10-14 | 2023-10 | SG6 Numerics | |
P3008R0 | Atomic floating-point min/max | Gonzalo Brito Gadeschi | 2023-10-15 | 2023-10 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P3009R0 | Injected class name in the base specifier list | Joe Jevnik | 2023-10-12 | 2023-10 | EWG Evolution | |
P3010R0 | Using Reflection to Replace a Metalanguage for Generating JS Bindings | Dan Katz | 2023-10-13 | 2023-10 | SG7 Reflection | |
P3011R0 | Supporting document for Hive proposal #1: outreach for evidence of container-style use in industry | Matt Bentley | 2023-10-15 | 2023-10 | SG14 Low Latency,LEWG Library Evolution | |
P3012R0 | Supporting document for Hive proposal #2: use of std::list in open source codebases | Matt Bentley | 2023-10-14 | 2023-10 | SG14 Low Latency,SG20 Education,LEWG Library Evolution | |
P3014R0 | Customizing std::expected's exception | Jonathan Müller | 2023-10-14 | 2023-10 | LEWG Library Evolution | |
P3015R0 | Rebuttal to Additional format specifiers for time_point | Howard Hinnant | 2023-10-13 | 2023-10 | LEWG Library Evolution | |
P3016R0 | Resolve inconsistencies in begin/end for valarray and braced initializer lists | Arthur O'Dwyer | 2023-10-15 | 2023-10 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator,EWG Evolution,LEWG Library Evolution | |
P3018R0 | Low-Level Integer Arithmetic | Andreas Weis | 2023-10-15 | 2023-10 | SG6 Numerics,LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P3019R0 | Vocabulary Types for Composite Class Design | Jonathan Coe | 2023-10-14 | 2023-10 | LEWG Library Evolution,LWG Library | |
P3020R0 | 2023-09 Library Evolution Poll Outcomes | Inbal Levi | 2023-10-15 | 2023-10 | All of WG21 | |
P3021R0 | Unified function call syntax (UFCS) | Herb Sutter | 2023-10-14 | 2023-10 | EWG Evolution | |
P3022R0 | A Boring Thread Attributes Interface | David Sankel | 2023-10-14 | 2023-10 | LEWG Library Evolution | |
P3023R0 | C++ Should Be C++ | David Sankel | 2023-10-14 | 2023-10 | EWG Evolution,LEWG Library Evolution |
The 2023-09 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
P0843R9 | inplace_vector | Gonzalo Brito Gadeschi | 2023-09-14 | 2023-09 | P0843R8 | LEWG Library Evolution,LWG Library |
P1068R9 | Vector API for random number generation | Ilya Burylov | 2023-09-14 | 2023-09 | P1068R8 | LEWG Library Evolution |
P1255R10 | A view of 0 or 1 elements: views::maybe | Steve Downey | 2023-09-14 | 2023-09 | P1255R9 | SG9 Ranges,LEWG Library Evolution |
P2264R5 | Make assert() macro user friendly for C and C++ | Peter Sommerlad | 2023-09-13 | 2023-09 | P2264R4 | LEWG Library Evolution,LWG Library |
P2542R4 | views::concat | Hui Xie | 2023-09-11 | 2023-09 | P2542R3 | SG9 Ranges,LEWG Library Evolution |
P2542R5 | views::concat | Hui Xie | 2023-09-12 | 2023-09 | P2542R4 | SG9 Ranges,LEWG Library Evolution,LWG Library |
P2686R2 | constexpr structured bindings and references to constexpr variables | Corentin Jabot | 2023-09-14 | 2023-09 | P2686R1 | EWG Evolution,CWG Core |
P2748R2 | Disallow Binding a Returned Glvalue to a Temporary | Brian Bi | 2023-09-14 | 2023-09 | P2748R1 | EWG Evolution |
P2755R0 | A Bold Plan for a Complete Contracts Facility | Joshua Berne, Jake Fevold, John Lakos | 2023-09-13 | 2023-09 | SG21 Contracts | |
P2760R0 | A Plan for C++26 Ranges | Barry Revzin | 2023-09-17 | 2023-09 | SG9 Ranges,LEWG Library Evolution | |
P2762R1 | Sender/Receiver Interface For Networking | Dietmar Kuhl | 2023-09-15 | 2023-09 | P2762R0 | SG4 Networking,LEWG Library Evolution |
P2833R2 | Freestanding Library: inout expected span | Ben Craig | 2023-09-13 | 2023-09 | P2833R1 | LWG Library |
P2846R1 | size_hint: Eagerly reserving memory for not-quite-sized lazy ranges | Corentin Jabot | 2023-09-15 | 2023-09 | P2846R0 | LEWG Library Evolution |
P2865R3 | Remove Deprecated Array Comparisons from C++26 | Alisdair Meredith | 2023-09-14 | 2023-09 | P2865R2 | SG22 Compatability,CWG Core |
P2866R1 | Remove Deprecated Volatile Features From C++26 | Alisdair Meredith | 2023-09-15 | 2023-09 | P2866R0 | SG1 Concurrency and Parallelism,SG22 Compatability,LEWG Library Evolution |
P2867R1 | Remove Deprecated strstreams From C++26 | Alisdair Meredith | 2023-09-15 | 2023-09 | P2867R0 | LEWG Library Evolution |
P2868R2 | Remove Deprecated `std::allocator` Typedef From C++26 | Alisdair Meredith | 2023-09-14 | 2023-09 | P2868R1 | LEWG Library Evolution |
P2869R2 | Remove Deprecated `shared_ptr` Atomic Access APIs From C++26 | Alisdair Meredith | 2023-09-15 | 2023-09 | P2869R1 | LEWG Library Evolution |
P2870R2 | Remove `basic_string::reserve()` From C++26 | Alisdair Meredith | 2023-09-14 | 2023-09 | P2870R1 | LEWG Library Evolution |
P2871R2 | Remove Deprecated Unicode Conversion Facets From C++26 | Alisdair Meredith | 2023-09-15 | 2023-09 | P2871R1 | LEWG Library Evolution |
P2872R2 | Remove `wstring_convert` From C++26 | Alisdair Meredith | 2023-09-14 | 2023-09 | P2872R1 | LEWG Library Evolution |
P2875R2 | Undeprecate `polymorphic_allocator::destroy` For C++26 | Alisdair Meredith | 2023-09-15 | 2023-09 | P2875R1 | LEWG Library Evolution |
P2885R2 | Requirements for a Contracts syntax | Timur Doumler | 2023-08-29 | 2023-09 | P2885R1 | SG21 Contracts,EWG Evolution |
P2909R1 | Fix formatting of code units as integers (Dude, where's my char?) | Victor Zverovich | 2023-09-05 | 2023-09 | P2909R0 | LEWG Library Evolution |
P2909R2 | Fix formatting of code units as integers (Dude, where's my char?) | Victor Zverovich | 2023-09-16 | 2023-09 | P2909R1 | LWG Library |
P2932R0 | A Principled Approach to Open Design Questions for Contracts | Joshua Berne | 2023-09-13 | 2023-09 | SG21 Contracts | |
P2935R1 | An Attribute-Like Syntax for Contracts | Joshua Berne | 2023-09-15 | 2023-09 | P2935R0 | SG21 Contracts |
P2935R2 | An Attribute-Like Syntax for Contracts | Joshua Berne | 2023-09-15 | 2023-09 | P2935R1 | SG21 Contracts |
P2944R2 | Comparisons for reference_wrapper | Barry Revzin | 2023-09-17 | 2023-09 | P2944R1 | LEWG Library Evolution |
P2951R3 | Shadowing is good for safety | Jarrad J. Waterloo | 2023-09-02 | 2023-09 | P2951R2 | SG23 Safety and Security |
P2955R1 | Safer Range Access | Jarrad J. Waterloo | 2023-09-02 | 2023-09 | P2955R0 | LEWGI SG18: LEWG Incubator,SG23 Safety and Security |
P2961R0 | A natural syntax for Contracts | Jens Maurer | 2023-09-17 | 2023-09 | SG21 Contracts | |
P2963R0 | Ordering of constraints involving fold expressions | Corentin Jabot | 2023-09-15 | 2023-09 | EWG Evolution | |
P2966R0 | Making C++ Better for Game Developers -- Progress Report | Patrice Roy | 2023-09-05 | 2023-09 | SG14 Low Latency,EWG Evolution | |
P2966R1 | Making C++ Better for Game Developers -- Progress Report | Patrice Roy | 2023-09-13 | 2023-09 | P2966R0 | SG14 Low Latency,EWG Evolution |
P2968R0 | Make std::ignore a first-class object | Peter Sommerlad | 2023-09-07 | 2023-09 | LEWG Library Evolution,LWG Library | |
P2971R0 | Implication for C++ | Walter E Brown | 2023-09-14 | 2023-09 | EWG Evolution | |
P2972R0 | 2023-09 Library Evolution Polls | Inbal Levi | 2023-09-17 | 2023-09 | LEWG Library Evolution,LWG Library | |
P2973R0 | Erroneous behaviour for missing return from assignment | Thomas Köppe | 2023-09-15 | 2023-09 | SG12 Undefined and Unspecified Behavior,SG23 Safety and Security,EWG Evolution,CWG Core | |
P2976R0 | Freestanding Library: algorithm, numeric, and random | Ben Craig | 2023-09-17 | 2023-09 | LEWG Library Evolution |
The 2023-08 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4956 | Concurrency TS2 PDTS | Michael Wong | 2023-08-15 | 2023-08 | All of WG21 | |
N4958 | Working Draft, Programming Languages -- C++ | Thomas Köppe | 2023-08-14 | 2023-08 | All of WG21 | |
N4959 | Editors' Report, Programming Languages -- C++ | Thomas Köppe | 2023-08-14 | 2023-08 | All of WG21 | |
N4960 | Business Plan and Convener's Report: ISO/IEC JTC1/SC22/WG21 (C++) | Herb Sutter | 2023-08-09 | 2023-08 | All of WG21 | |
P0124R7 | Linux-Kernel Memory Model | Paul E. McKenney | 2023-08-22 | 2023-08 | P0124R6 | SG1 Concurrency and Parallelism,SG5 Transactional Memory,SG14 Low Latency |
P0124R8 | Linux-Kernel Memory Model | Paul E. McKenney | 2023-08-22 | 2023-08 | P0124R7 | SG1 Concurrency and Parallelism,SG5 Transactional Memory,SG14 Low Latency |
P0963R1 | Structured binding declaration as a condition | Zhihao Yuan | 2023-08-14 | 2023-08 | P0963R0 | EWG Evolution |
P1068R8 | Vector API for random number generation | Ilya Burylov | 2023-08-08 | 2023-08 | P1068R7 | LEWG Library Evolution |
P1967R11 | #embed - a simple, scannable preprocessor-based resource acquisition method | JeanHeyd Meneide | 2023-08-21 | 2023-08 | P1967R10 | CWG Core |
P2407R5 | Freestanding Library: Partial Classes | Ben Craig | 2023-07-26 | 2023-08 | P2407R4 | LWG Library |
P2521R5 | Contract support -- Record of SG21 consensus | Andrzej Krzemieński | 2023-08-15 | 2023-08 | P2521R4 | SG21 Contracts |
P2728R6 | Unicode in the Library, Part 1: UTF Transcoding | Zach Laine | 2023-08-14 | 2023-08 | P2728R5 | SG16 Unicode,LEWG Library Evolution |
P2746R3 | Deprecate and Replace Fenv Rounding Modes | Hans Boehm | 2023-08-14 | 2023-08 | P2746R2 | SG6 Numerics,LEWG Library Evolution |
P2795R3 | Erroneous behaviour for uninitialized reads | Thomas Köppe | 2023-07-28 | 2023-08 | P2795R2 | SG12 Undefined and Unspecified Behavior,SG23 Safety and Security,EWG Evolution,CWG Core |
P2821R4 | span.at() | Jarrad J. Waterloo | 2023-07-26 | 2023-08 | P2821R3 | SG23 Safety and Security,LEWG Library Evolution |
P2833R1 | Freestanding Library: inout expected span | Ben Craig | 2023-08-19 | 2023-08 | P2833R0 | LEWG Library Evolution |
P2845R2 | Formatting of std::filesystem::path | Victor Zverovich | 2023-07-23 | 2023-08 | P2845R1 | SG16 Unicode,LEWG Library Evolution |
P2863R1 | Review Annex D for C++26 | Alisdair Meredith | 2023-08-16 | 2023-08 | P2863R0 | EWG Evolution,LEWG Library Evolution |
P2864R1 | Remove Deprecated Arithmetic Conversion on Enumerations From C++26 | Alisdair Meredith | 2023-08-16 | 2023-08 | P2864R0 | SG22 Compatability,EWG Evolution |
P2865R2 | Remove Deprecated Array Comparisons from C++26 | Alisdair Meredith | 2023-08-16 | 2023-08 | P2865R1 | SG22 Compatability,EWG Evolution |
P2868R1 | Remove Deprecated `std::allocator` Typedef From C++26 | Alisdair Meredith | 2023-08-15 | 2023-08 | P2868R0 | LEWG Library Evolution |
P2869R1 | Remove Deprecated `shared_ptr` Atomic Access APIs From C++26 | Alisdair Meredith | 2023-08-16 | 2023-08 | P2869R0 | LEWG Library Evolution |
P2870R1 | Remove `basic_string::reserve()` From C++26 | Alisdair Meredith | 2023-08-16 | 2023-08 | P2870R0 | LEWG Library Evolution |
P2871R1 | Remove Deprecated Unicode Conversion Facets From C++26 | Alisdair Meredith | 2023-08-08 | 2023-08 | P2871R0 | LEWG Library Evolution |
P2875R1 | Undeprecate `polymorphic_allocator::destroy` For C++26 | Alisdair Meredith | 2023-08-15 | 2023-08 | P2875R0 | LEWG Library Evolution |
P2878R5 | Reference checking | Jarrad J. Waterloo | 2023-08-10 | 2023-08 | P2878R4 | SG23 Safety and Security |
P2885R1 | Requirements for a Contracts syntax | Timur Doumler | 2023-08-15 | 2023-08 | P2885R0 | SG21 Contracts,EWG Evolution |
P2890R0 | Contracts on lambdas | Timur Doumler | 2023-08-17 | 2023-08 | SG21 Contracts | |
P2894R0 | Constant evaluation of Contracts | Timur Doumler | 2023-08-22 | 2023-08 | SG21 Contracts | |
P2896R0 | Outstanding design questions for the Contracts MVP | Timur Doumler | 2023-08-22 | 2023-08 | SG21 Contracts | |
P2905R2 | Runtime format strings | Victor Zverovich | 2023-07-23 | 2023-08 | P2905R1 | LWG Library |
P2909R0 | Dude, where's my char? | Victor Zverovich | 2023-08-13 | 2023-08 | SG16 Unicode,LEWG Library Evolution | |
P2933R0 | std::simd overloads for <bit> header | Daniel Towner | 2023-08-01 | 2023-08 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P2935R0 | An Attribute-Like Syntax for Contracts | Joshua Berne | 2023-08-15 | 2023-08 | SG21 Contracts | |
P2944R1 | Comparisons for reference_wrapper | Barry Revzin | 2023-08-17 | 2023-08 | P2944R0 | LEWG Library Evolution |
P2951R2 | Shadowing is good for safety | Jarrad J. Waterloo | 2023-08-10 | 2023-08 | P2951R1 | SG23 Safety and Security |
P2952R0 | auto& operator=(X&&) = default | Arthur O'Dwyer | 2023-08-10 | 2023-08 | EWGI SG17: EWG Incubator,EWG Evolution | |
P2953R0 | Forbid defaulting operator=(X&&) && | Arthur O'Dwyer | 2023-08-10 | 2023-08 | EWGI SG17: EWG Incubator,EWG Evolution | |
P2954R0 | Contracts and virtual functions for the Contracts MVP | Ville Voutilainen | 2023-08-03 | 2023-08 | SG21 Contracts | |
P2955R0 | Safer Range Access | Jarrad J. Waterloo | 2023-08-10 | 2023-08 | SG23 Safety and Security | |
P2956R0 | Add saturating library support to std::simd | Daniel Towner | 2023-08-01 | 2023-08 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P2957R0 | Contracts and coroutines | Andrzej Krzemieński | 2023-08-15 | 2023-08 | SG21 Contracts | |
P2958R0 | typeof and typeof_unqual | JeanHeyd Meneide | 2023-08-21 | 2023-08 | EWG Evolution | |
P2960R0 | Concurrency TS Editor's report for N4956 | Michael Wong | 2023-08-16 | 2023-08 | All of WG21 |
The 2023-07 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4955 | WG21 2023-06 Admin telecon minutes | Nina Ranns | 2023-06-05 | 2023-07 | All of WG21 | |
N4957 | WG21 June 2023 Varna Minutes of Meeting | Nina Ranns | 2023-06-28 | 2023-07 | All of WG21 | |
P0260R6 | C++ Concurrent Queues | Detlef Vollmann | 2023-06-16 | 2023-07 | P0260R5 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P0260R7 | C++ Concurrent Queues | Detlef Vollmann | 2023-07-13 | 2023-07 | P0260R6 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P0543R3 | Saturation arithmetic | Jens Maurer | 2023-07-19 | 2023-07 | P0543R2 | LWG Library |
P0843R7 | inplace_vector | Gonzalo Brito Gadeschi | 2023-06-16 | 2023-07 | P0843R6 | LEWG Library Evolution |
P0843R8 | inplace_vector | Gonzalo Brito Gadeschi | 2023-06-16 | 2023-07 | P0843R7 | LEWG Library Evolution |
P0901R11 | Size feedback in operator new | Thomas Köppe | 2023-06-20 | 2023-07 | P0901R10 | EWG Evolution,CWG Core |
P1030R6 | std::filesystem::path_view | Niall Douglas | 2023-06-16 | 2023-07 | P1030R5 | LEWG Library Evolution |
P1324R1 | RE: Yet another approach for constrained declarations | Mihail Naydenov | 2023-07-06 | 2023-07 | P1324R0 | EWG Evolution |
P1383R2 | More constexpr for cmath and complex | Oliver Rosten | 2023-06-15 | 2023-07 | P1383R1 | SG6 Numerics,LEWG Library Evolution,LWG Library |
P1729R2 | Text Parsing | Elias Kosunen | 2023-07-07 | 2023-07 | P1729R1 | SG9 Ranges,SG16 Unicode,LEWG Library Evolution |
P1928R5 | std::simd - Merge data-parallel types from the Parallelism TS 2 | Matthias Kretz | 2023-06-19 | 2023-07 | P1928R4 | LEWG Library Evolution |
P1928R6 | std::simd - Merge data-parallel types from the Parallelism TS 2 | Matthias Kretz | 2023-06-19 | 2023-07 | P1928R5 | LEWG Library Evolution |
P2169R4 | A Nice Placeholder With No Name | Corentin Jabot | 2023-06-16 | 2023-07 | P2169R3 | CWG Core |
P2407R4 | Freestanding Library: Partial Classes | Emil Meissner | 2023-06-28 | 2023-07 | P2407R3 | LWG Library |
P2487R1 | Is attribute-like syntax adequate for contract annotations? | Andrzej Krzemieński | 2023-06-11 | 2023-07 | P2487R0 | SG21 Contracts |
P2521R4 | Contract support -- Record of SG21 consensus | Andrzej Krzemieński | 2023-06-15 | 2023-07 | P2521R3 | SG21 Contracts |
P2542R3 | views::concat | Hui Xie | 2023-06-09 | 2023-07 | P2542R2 | SG9 Ranges,LEWG Library Evolution |
P2546R5 | Debugging Support | René Ferdinand Rivera Morell | 2023-07-05 | 2023-07 | P2546R4 | LWG Library |
P2548R6 | copyable_function | Michael Florian Hava | 2023-06-15 | 2023-07 | P2548R5 | LWG Library |
P2552R3 | On the ignorability of standard attributes | Timur Doumler | 2023-06-14 | 2023-07 | P2552R2 | EWG Evolution,CWG Core |
P2591R4 | Concatenation of strings and string views | Giuseppe D'Angelo | 2023-07-11 | 2023-07 | P2591R3 | LEWG Library Evolution |
P2630R4 | Submdspan | Christian Trott | 2023-06-22 | 2023-07 | P2630R3 | LEWG Library Evolution,LWG Library |
P2637R3 | Member visit | Barry Revzin | 2023-06-14 | 2023-07 | P2637R2 | LEWG Library Evolution |
P2641R4 | Checking if a union alternative is active | Barry Revzin | 2023-06-14 | 2023-07 | P2641R3 | LEWG Library Evolution |
P2642R3 | Padded mdspan layouts | Mark Hoemmen | 2023-07-14 | 2023-07 | P2642R2 | LEWG Library Evolution |
P2662R2 | Pack Indexing | Corentin Jabot | 2023-07-15 | 2023-07 | P2662R1 | EWG Evolution |
P2689R2 | atomic_accessor | Christian Trott | 2023-07-20 | 2023-07 | P2689R1 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2697R1 | Interfacing bitset with string_view | Michael Florian Hava | 2023-06-15 | 2023-07 | P2697R0 | LWG Library |
P2714R1 | Bind front and back to NTTP callables | Zhihao Yuan | 2023-06-16 | 2023-07 | P2714R0 | LWG Library |
P2717R2 | Tool Introspection | René Ferdinand Rivera Morell | 2023-06-15 | 2023-07 | P2717R1 | SG15 Tooling |
P2727R3 | std::iterator_interface | Zach Laine | 2023-06-13 | 2023-07 | P2727R2 | LEWG Library Evolution |
P2728R4 | Unicode in the Library, Part 1: UTF Transcoding | Zach Laine | 2023-06-19 | 2023-07 | P2728R3 | SG16 Unicode,LEWG Library Evolution |
P2728R5 | Unicode in the Library, Part 1: UTF Transcoding | Zach Laine | 2023-07-11 | 2023-07 | P2728R4 | SG16 Unicode,LEWG Library Evolution |
P2741R3 | user-generated static_assert messages | Corentin Jabot | 2023-06-16 | 2023-07 | P2741R2 | EWG Evolution |
P2752R3 | Static storage for braced initializers | Arthur O'Dwyer | 2023-06-14 | 2023-07 | P2752R2 | CWG Core |
P2757R3 | Type checking format args | Barry Revzin | 2023-06-14 | 2023-07 | P2757R2 | LEWG Library Evolution |
P2767R1 | flat_map/flat_set omnibus | Arthur O'Dwyer | 2023-07-14 | 2023-07 | P2767R0 | LEWG Library Evolution,LWG Library |
P2776R0 | 2023-05 Library Evolution Poll Outcomes | Bryce Adelstein Lelbach | 2023-06-16 | 2023-07 | LEWG Library Evolution | |
P2779R1 | Make basic_string_view's range construction conditionally explicit | Giuseppe D'Angelo | 2023-07-11 | 2023-07 | P2779R0 | SG9 Ranges,SG16 Unicode,LEWG Library Evolution |
P2781R3 | std::constexpr_v | Zach Laine | 2023-06-12 | 2023-07 | P2781R2 | LEWG Library Evolution |
P2785R0 | Relocating prvalues | Sébastien Bini, Ed Catmur | 2023-06-12 | 2023-07 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator,SG23 Safety and Security | |
P2785R1 | Relocating prvalues | Sébastien Bini, Ed Catmur | 2023-06-12 | 2023-07 | P2785R0 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator,SG23 Safety and Security |
P2785R2 | Relocating prvalues | Sébastien Bini, Ed Catmur | 2023-06-14 | 2023-07 | P2785R1 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator,SG23 Safety and Security |
P2785R3 | Relocating prvalues | Sébastien Bini, Ed Catmur | 2023-06-14 | 2023-07 | P2785R2 | EWGI SG17: EWG Incubator |
P2786R2 | Trivial relocatability options | Mungo Gill | 2023-06-16 | 2023-07 | P2786R1 | EWG Evolution |
P2795R0 | Correct and incorrect code, and "erroneous behaviour" | Thomas Köppe | 2023-06-13 | 2023-07 | SG12 Undefined and Unspecified Behavior,SG23 Safety and Security,EWG Evolution,CWG Core | |
P2795R1 | Erroneous behaviour for uninitialized reads | Thomas Köppe | 2023-06-15 | 2023-07 | P2795R0 | SG12 Undefined and Unspecified Behavior,SG23 Safety and Security,EWG Evolution,CWG Core |
P2795R2 | Erroneous behaviour for uninitialized reads | Thomas Köppe | 2023-06-16 | 2023-07 | P2795R1 | SG12 Undefined and Unspecified Behavior,SG23 Safety and Security,EWG Evolution,CWG Core |
P2809R1 | Trivial infinite loops are not Undefined Behavior | JF Bastien | 2023-06-17 | 2023-07 | P2809R0 | SG1 Concurrency and Parallelism,SG22 Compatability,EWG Evolution,LEWG Library Evolution |
P2810R1 | is_debugger_present is_replaceable | René Ferdinand Rivera Morell | 2023-07-06 | 2023-07 | P2810R0 | LEWG Library Evolution |
P2811R5 | Contract-Violation Handlers | Joshua Berne | 2023-06-28 | 2023-07 | P2811R4 | SG21 Contracts |
P2811R6 | Contract-Violation Handlers | Joshua Berne | 2023-06-28 | 2023-07 | P2811R5 | SG21 Contracts |
P2811R7 | Contract-Violation Handlers | Joshua Berne | 2023-07-13 | 2023-07 | P2811R6 | SG21 Contracts |
P2814R1 | Trivial Relocatability --- Comparing P1144 with P2786 | Mungo Gill | 2023-06-16 | 2023-07 | P2814R0 | EWG Evolution |
P2819R1 | Add tuple protocol to complex | Michael Florian Hava | 2023-07-14 | 2023-07 | P2819R0 | LEWG Library Evolution,LWG Library |
P2821R2 | span.at() | Jarrad J. Waterloo | 2023-05-26 | 2023-07 | P2821R1 | SG23 Safety and Security,LEWG Library Evolution |
P2821R3 | span.at() | Jarrad J. Waterloo | 2023-06-12 | 2023-07 | P2821R2 | SG23 Safety and Security,LEWG Library Evolution |
P2828R2 | Copy elision for direct-initialization with a conversion function (Core issue 2327) | Brian Bi | 2023-06-12 | 2023-07 | P2828R1 | CWG Core |
P2834R1 | Semantic Stability Across Contract-Checking Build Modes | Joshua Berne, John Lakos | 2023-06-08 | 2023-07 | P2834R0 | SG21 Contracts |
P2835R1 | Expose std::atomic_ref's object address | Gonzalo Brito Gadeschi | 2023-06-26 | 2023-07 | P2835R0 | LEWG Library Evolution |
P2836R1 | std::basic_const_iterator should follow its underlying type's convertibility | Christopher Di Bella | 2023-07-11 | 2023-07 | P2836R0 | SG9 Ranges,LEWG Library Evolution,LWG Library |
P2845R1 | Formatting of std::filesystem::path | Victor Zverovich | 2023-06-08 | 2023-07 | P2845R0 | SG16 Unicode,LEWG Library Evolution |
P2865R1 | Remove Deprecated Array Comparisons from C++26 | Alisdair Meredith | 2023-06-16 | 2023-07 | P2865R0 | SG22 Compatability,EWG Evolution |
P2872R1 | Remove `wstring_convert` From C++26 | Alisdair Meredith | 2023-06-07 | 2023-07 | P2872R0 | LEWG Library Evolution |
P2874R1 | Mandating Annex D | Alisdair Meredith | 2023-06-11 | 2023-07 | P2874R0 | LWG Library |
P2874R2 | Mandating Annex D | Alisdair Meredith | 2023-06-12 | 2023-07 | P2874R1 | LWG Library |
P2877R0 | Contract Build Modes and Semantics | Joshua Berne | 2023-07-13 | 2023-07 | SG21 Contracts | |
P2878R2 | Reference checking | Jarrad J. Waterloo | 2023-06-10 | 2023-07 | P2878R1 | SG23 Safety and Security |
P2878R3 | Reference checking | Jarrad J. Waterloo | 2023-06-23 | 2023-07 | P2878R2 | SG23 Safety and Security |
P2878R4 | Reference checking | Jarrad J. Waterloo | 2023-07-08 | 2023-07 | P2878R3 | SG23 Safety and Security |
P2885R0 | Requirements for a Contracts syntax | Timur Doumler | 2023-07-16 | 2023-07 | SG21 Contracts,EWG Evolution | |
P2898R1 | Build System Requirements for Importable Headers | Daniel Ruoso | 2023-06-12 | 2023-07 | P2898R0 | SG15 Tooling |
P2902R0 | constexpr 'Parallel' Algorithms | Oliver Rosten | 2023-06-17 | 2023-07 | LEWG Library Evolution,LWG Library | |
P2904R0 | Removing exception in precedence rule(s) when using member pointer syntax | Annop Rana | 2023-06-13 | 2023-07 | EWGI SG17: EWG Incubator | |
P2905R0 | Runtime format strings | Victor Zverovich | 2023-07-15 | 2023-07 | LEWG Library Evolution | |
P2905R1 | Runtime format strings | Victor Zverovich | 2023-07-15 | 2023-07 | P2905R0 | LWG Library |
P2906R0 | Structured bindings for std::extents | Bernhard Manfred Gruber | 2023-05-29 | 2023-07 | LEWG Library Evolution | |
P2910R0 | C++ Standard Library Ready Issues to be moved in Varna, Jun. 2023 | Jonathan Wakely | 2023-06-09 | 2023-07 | All of WG21 | |
P2911R0 | Python Bindings with Value-Based Reflection | Adam Lach | 2023-07-10 | 2023-07 | SG7 Reflection | |
P2912R0 | Concurrent queues and sender/receivers | Gor Nishanov | 2023-07-04 | 2023-07 | SG1 Concurrency and Parallelism | |
P2915R0 | Proposed resolution to CWG1223 | Corentin Jabot | 2023-06-13 | 2023-07 | CWG Core | |
P2917R0 | An in-line defaulted destructor should keep the copy- and move-operations | Andreas Fertig | 2023-06-14 | 2023-07 | EWGI SG17: EWG Incubator,EWG Evolution | |
P2917R1 | An in-line defaulted destructor should keep the copy- and move-operations | Andreas Fertig | 2023-07-05 | 2023-07 | P2917R0 | EWG Evolution |
P2918R0 | Runtime format strings II | Victor Zverovich | 2023-07-15 | 2023-07 | LEWG Library Evolution | |
P2918R1 | Runtime format strings II | Victor Zverovich | 2023-07-15 | 2023-07 | P2918R0 | LWG Library |
P2920R0 | Library Evolution Leadership's Understanding of the Noexcept Policy History | Nevin Liber | 2023-06-16 | 2023-07 | All of WG21 | |
P2921R0 | Exploring std::expected based API alternatives for buffer_queue | Gor Nishanov | 2023-07-04 | 2023-07 | LEWG Library Evolution | |
P2922R0 | Core Language Working Group "ready" Issues for the June, 2023 meeting | Jens Maurer | 2023-06-16 | 2023-07 | CWG Core | |
P2925R0 | inplace_vector - D0843R7 LEWG presentation | David Sankel | 2023-06-19 | 2023-07 | LEWG Library Evolution | |
P2926R0 | std::simd types should be regular - P2892R0 LEWG presentation | David Sankel | 2023-06-19 | 2023-07 | LEWG Library Evolution | |
P2929R0 | simd_invoke | Daniel Towner | 2023-07-19 | 2023-07 | LEWG Library Evolution | |
P2930R0 | Formatter specializations for the standard library | Mark de Wever | 2023-07-15 | 2023-07 | LEWG Library Evolution,LWG Library | |
P2931R0 | WG21 June 2023 Varna Meeting Record of Discussion | Nina Ranns | 2023-06-28 | 2023-07 | All of WG21 | |
P2937R0 | Freestanding: Remove strtok | Ben Craig | 2023-07-02 | 2023-07 | LEWG Library Evolution | |
P2940R0 | switch for Pattern Matching | Mihail Naydenov | 2023-07-06 | 2023-07 | EWGI SG17: EWG Incubator | |
P2941R0 | Identifiers for Pattern Matching | Mihail Naydenov | 2023-07-06 | 2023-07 | EWGI SG17: EWG Incubator | |
P2944R0 | Comparisons for reference_wrapper | Barry Revzin | 2023-07-09 | 2023-07 | LEWG Library Evolution | |
P2945R0 | Additional format specifiers for time_point | Barry Revzin | 2023-07-13 | 2023-07 | LEWG Library Evolution | |
P2946R0 | A flexible solution to the problems of `noexcept` | Pablo Halpern | 2023-07-19 | 2023-07 | EWGI SG17: EWG Incubator | |
P2947R0 | Contracts must avoid disclosing sensitive information | Andrei Zissu | 2023-07-20 | 2023-07 | SG21 Contracts,SG23 Safety and Security | |
P2949R0 | Slides for P2861R0: Narrow Contracts and `noexcept` are Inherently Incompatable | John Lakos | 2023-07-14 | 2023-07 | EWGI SG17: EWG Incubator,SG21 Contracts,EWG Evolution,LEWG Library Evolution | |
P2950R0 | Slides for P2836R1: std::basic_const_iterator should follow its underlying type's convertibility | Tomasz Kamiński | 2023-07-11 | 2023-07 | LEWG Library Evolution | |
P2951R0 | Shadowing is good for safety | Jarrad J. Waterloo | 2023-07-14 | 2023-07 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator,SG23 Safety and Security | |
P2951R1 | Shadowing is good for safety | Jarrad J. Waterloo | 2023-07-16 | 2023-07 | P2951R0 | SG23 Safety and Security |
The 2023-05 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4946 | 2024-03 Tokyo meeting information | JF Bastien | 2023-04-13 | 2023-05 | All of WG21 | |
N4947 | INCITS C++/WG21 agenda: 12-17 June 2023, Varna, Bulgaria | John Spicer | 2023-05-02 | 2023-05 | All of WG21 | |
N4948 | Working Draft, C++ Extensions for Library Fundamentals, Version 3 | Thomas Köppe | 2023-05-08 | 2023-05 | All of WG21 | |
N4949 | Editor's Report: C++ Extensions for Library Fundamentals, Version 3 | Thomas Köppe | 2023-05-08 | 2023-05 | All of WG21 | |
N4950 | Working Draft, Standard for Programming Language C++ | Thomas Köppe | 2023-05-10 | 2023-05 | All of WG21 | |
N4951 | Editors' Report - Programming Languages - C++ | Thomas Köppe | 2023-05-10 | 2023-05 | All of WG21 | |
N4953 | Concurrency TS2 | Michael Wong | 2023-05-15 | 2023-05 | All of WG21 | |
N4954 | 2023 WG21 admin telecon meetings, rev. 1 | Herb Sutter | 2023-05-18 | 2023-05 | All of WG21 | |
P0342R2 | pessimize_hint | Gonzalo Brito Gadeschi | 2023-05-16 | 2023-05 | P0342R1 | SG1 Concurrency and Parallelism |
P0447R22 | Introduction of std::hive to the standard library | Matt Bentley | 2023-05-16 | 2023-05 | P0447R21 | SG14 Low Latency,LEWG Library Evolution,All of WG21 |
P0843R6 | static_vector | Gonzalo Brito Gadeschi | 2023-05-18 | 2023-05 | P0843R5 | LEWG Library Evolution |
P1000R5 | C++ IS schedule | Herb Sutter | 2023-05-10 | 2023-05 | P1000R4 | All of WG21 |
P1028R5 | SG14 status_code and standard error object | Niall Douglas | 2023-05-11 | 2023-05 | P1028R4 | LEWG Library Evolution |
P1061R5 | Structured Bindings can introduce a Pack | Barry Revzin | 2023-05-17 | 2023-05 | P1061R4 | EWG Evolution |
P1068R7 | Vector API for random number generation | Ilya Burylov | 2023-05-17 | 2023-05 | P1068R6 | LEWG Library Evolution |
P1112R4 | Language support for class layout control | Pal Balog | 2023-05-18 | 2023-05 | P1112R3 | EWG Evolution |
P1144R8 | std::is_trivially_relocatable | Arthur O'Dwyer | 2023-05-14 | 2023-05 | P1144R7 | EWG Evolution,LEWG Library Evolution |
P1684R5 | mdarray: An Owning Multidimensional Array Analog of mdspan | Christian Trott | 2023-05-19 | 2023-05 | P1684R4 | LEWG Library Evolution |
P1759R6 | Native handles and file streams | Elias Kosunen | 2023-05-17 | 2023-05 | P1759R5 | LWG Library |
P1885R12 | Naming Text Encodings to Demystify Them | Corentin Jabot | 2023-04-05 | 2023-05 | P1885R11 | LWG Library |
P1901R2 | Enabling the Use of weak_ptr as Keys in Unordered Associative Containers | Daryl Haresign | 2023-04-05 | 2023-05 | P1901R1 | LWG Library |
P1928R4 | std::simd - Merge data-parallel types from the Parallelism TS 2 | Matthias Kretz | 2023-05-19 | 2023-05 | P1928R3 | LEWG Library Evolution |
P2019R3 | Thread attributes | Corentin Jabot | 2023-05-18 | 2023-05 | P2019R2 | LEWG Library Evolution |
P2022R2 | Rangified version of lexicographical_compare_three_way | Ran Regev | 2023-05-10 | 2023-05 | P2022R1 | SG9 Ranges,LEWG Library Evolution |
P2141R1 | Aggregates are named tuples | Antony Polukhin | 2023-05-03 | 2023-05 | P2141R0 | LEWG Library Evolution,LWG Library |
P2300R7 | `std::execution` | Eric Niebler | 2023-04-21 | 2023-05 | P2300R6 | LEWG Library Evolution,LWG Library |
P2447R4 | std::span over an initializer list | Arthur O'Dwyer | 2023-05-14 | 2023-05 | P2447R3 | LEWG Library Evolution |
P2495R3 | Interfacing stringstreams with string_view | Michael Hava | 2023-04-19 | 2023-05 | P2495R2 | LWG Library |
P2500R1 | C++ parallel algorithms and P2300 | Ruslan Arutyunyan | 2023-05-17 | 2023-05 | P2500R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2546R4 | Debugging Support | René Ferdinand Rivera Morell | 2023-05-20 | 2023-05 | P2546R3 | LEWG Library Evolution,LWG Library |
P2548R5 | copyable_function | Michael Florian Hava | 2023-04-03 | 2023-05 | P2548R4 | LEWG Library Evolution,LWG Library |
P2552R2 | On the ignorability of standard attributes | Timur Doumler | 2023-05-19 | 2023-05 | P2552R1 | EWG Evolution,CWG Core |
P2561R2 | A control flow operator | Barry Revzin | 2023-05-18 | 2023-05 | P2561R1 | EWG Evolution |
P2621R3 | UB? In my Lexer? | Corentin Jabot | 2023-05-18 | 2023-05 | P2621R2 | CWG Core |
P2637R2 | Member visit | Barry Revzin | 2023-05-15 | 2023-05 | P2637R1 | LEWG Library Evolution |
P2641R3 | Checking if a union alternative is active | Barry Revzin | 2023-05-15 | 2023-05 | P2641R2 | LEWG Library Evolution |
P2643R1 | Improving C++ concurrency features | Gonzalo Brito Gadeschi | 2023-05-18 | 2023-05 | P2643R0 | SG1 Concurrency and Parallelism |
P2654R0 | Modules and Macros | Alisdair Meredith | 2023-05-19 | 2023-05 | EWG Evolution,LEWG Library Evolution | |
P2662R1 | Pack Indexing | Corentin Jabot | 2023-05-18 | 2023-05 | P2662R0 | EWG Evolution |
P2663R2 | Proposal to support interleaved complex values in std::simd | Daniel Towner | 2023-04-28 | 2023-05 | P2663R1 | LEWG Library Evolution |
P2663R3 | Proposal to support interleaved complex values in std::simd | Daniel Towner | 2023-05-17 | 2023-05 | P2663R2 | LEWG Library Evolution |
P2664R2 | Proposal to extend std::simd with permutation API | Daniel Towner | 2023-04-28 | 2023-05 | P2664R1 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2664R3 | Proposal to extend std::simd with permutation API | Daniel Towner | 2023-05-17 | 2023-05 | P2664R2 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2685R1 | Language Support For Scoped Objects | Alisdair Meredith | 2023-05-19 | 2023-05 | P2685R0 | EWGI SG17: EWG Incubator |
P2686R1 | constexpr structured bindings and references to constexpr variables | Corentin Jabot | 2023-05-18 | 2023-05 | P2686R0 | EWG Evolution,CWG Core |
P2689R2 | atomic_accessor | Nevin Liber | 2023-05-25 | 2023-05 | P2689R1 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2717R1 | Tool Introspection | René Ferdinand Rivera Morell | 2023-05-17 | 2023-05 | P2717R0 | SG15 Tooling |
P2727R2 | std::iterator_interface | Zach Laine | 2023-05-03 | 2023-05 | P2727R1 | LEWG Library Evolution |
P2728R1 | Unicode in the Library, Part 1: UTF Transcoding | Zach Laine | 2023-05-04 | 2023-05 | P2728R0 | SG16 Unicode,LEWG Library Evolution |
P2728R2 | Unicode in the Library, Part 1: UTF Transcoding | Zach Laine | 2023-05-10 | 2023-05 | P2728R1 | SG16 Unicode,LEWG Library Evolution |
P2728R3 | Unicode in the Library, Part 1: UTF Transcoding | Zach Laine | 2023-05-10 | 2023-05 | P2728R2 | SG16 Unicode,LEWG Library Evolution |
P2741R2 | user-generated static_assert messages | Corentin Jabot | 2023-05-11 | 2023-05 | P2741R1 | EWG Evolution |
P2746R2 | Deprecate and Replace Fenv Rounding Modes | Hans Boehm | 2023-05-14 | 2023-05 | P2746R1 | SG6 Numerics,LEWG Library Evolution |
P2748R1 | Disallow Binding a Returned Glvalue to a Temporary | Brian Bi | 2023-05-15 | 2023-05 | P2748R0 | EWG Evolution |
P2752R2 | Static storage for braced initializers | Arthur O'Dwyer | 2023-05-14 | 2023-05 | P2752R1 | EWG Evolution,CWG Core |
P2757R2 | Type checking format args | Barry Revzin | 2023-05-15 | 2023-05 | P2757R1 | LEWG Library Evolution |
P2767R0 | flat_map/flat_set omnibus | Arthur O'Dwyer | 2023-05-14 | 2023-05 | LWG Library | |
P2769R1 | get_element customization point object | Ruslan Arutyunyan | 2023-05-17 | 2023-05 | P2769R0 | SG9 Ranges,LEWG Library Evolution |
P2771R1 | Towards memory safety in C++ | Thomas Neumann | 2023-05-17 | 2023-05 | P2771R0 | SG23 Safety and Security |
P2774R0 | Scoped thread-local storage | Michael Florian Hava | 2023-05-10 | 2023-05 | SG1 Concurrency and Parallelism | |
P2775R0 | 2023-05 Library Evolution Polls | Bryce Adelstein Lelbach | 2023-05-25 | 2023-05 | LEWG Library Evolution | |
P2781R1 | std::constexpr_v | Zach Laine | 2023-05-04 | 2023-05 | P2781R0 | LEWG Library Evolution |
P2781R2 | std::constexpr_v | Zach Laine | 2023-05-21 | 2023-05 | P2781R1 | LEWG Library Evolution |
P2786R1 | Trivial relocatability options | Mungo Gill | 2023-05-19 | 2023-05 | P2786R0 | EWGI SG17: EWG Incubator,EWG Evolution |
P2811R2 | Contract Violation Handlers | Joshua Berne | 2023-04-20 | 2023-05 | P2811R1 | SG21 Contracts |
P2811R3 | Contract Violation Handlers | Joshua Berne | 2023-05-04 | 2023-05 | P2811R2 | SG21 Contracts |
P2811R4 | Contract Violation Handlers | Joshua Berne | 2023-05-15 | 2023-05 | P2811R3 | SG21 Contracts |
P2814R0 | Trivial Relocatability --- Comparing P1144 with P2786 | Mungo Gill | 2023-05-19 | 2023-05 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator | |
P2821R1 | span.at() | Jarrad J. Waterloo | 2023-04-13 | 2023-05 | P2821R0 | SG23 Safety and Security,LEWG Library Evolution |
P2828R1 | Copy elision for direct-initialization with a conversion function (Core issue 2327) | Brian Bi | 2023-05-11 | 2023-05 | P2828R0 | CWG Core |
P2829R0 | Proposal of Contracts Supporting Const-On-Definition Style | Andrew Tomazos | 2023-04-12 | 2023-05 | SG21 Contracts | |
P2831R0 | Functions having a narrow contract should not be noexcept | Timur Doumler | 2023-05-15 | 2023-05 | LEWG Library Evolution | |
P2834R0 | Semantic Stability Across Contract-Checking Build Modes | Joshua Berne, John Lakos | 2023-05-15 | 2023-05 | SG21 Contracts | |
P2835R0 | Expose std::atomic_ref's object address | Gonzalo Brito Gadeschi | 2023-05-18 | 2023-05 | SG1 Concurrency and Parallelism | |
P2837R0 | Planning to Revisit the Lakos Rule | Alisdair Meredith | 2023-05-19 | 2023-05 | LEWG Library Evolution | |
P2839R0 | Nontrivial relocation via a new "owning reference" type | Brian Bi | 2023-05-15 | 2023-05 | EWGI SG17: EWG Incubator | |
P2841R0 | Concept Template Parameters | Corentin Jabot | 2023-05-18 | 2023-05 | EWG Evolution | |
P2842R0 | Destructor Semantics Do Not Affect Constructible Traits | Alisdair Meredith | 2023-05-19 | 2023-05 | LWG Library | |
P2843R0 | Preprocessing is never undefined | Alisdair Meredith | 2023-05-19 | 2023-05 | SG16 Unicode | |
P2845R0 | Formatting of std::filesystem::path | Victor Zverovich | 2023-05-07 | 2023-05 | SG16 Unicode,LEWG Library Evolution | |
P2846R0 | size_hint: Eagerly reserving memory for not-quite-sized lazy ranges | Corentin Jabot | 2023-05-11 | 2023-05 | SG9 Ranges | |
P2848R0 | std::is_uniqued | Arthur O'Dwyer | 2023-04-24 | 2023-05 | LEWGI SG18: LEWG Incubator | |
P2850R0 | Minimal Compiler Preserved Dependencies | Mark Batty | 2023-05-15 | 2023-05 | SG1 Concurrency and Parallelism | |
P2852R0 | Contract violation handling semantics for the contracts MVP | Tom Honermann | 2023-04-24 | 2023-05 | SG21 Contracts | |
P2853R0 | Proposal of std::contract_violation | Andrew Tomazos | 2023-05-10 | 2023-05 | SG21 Contracts | |
P2855R0 | Member customization points for Senders and Receivers | Ville Voutilainen | 2023-05-18 | 2023-05 | LEWG Library Evolution | |
P2857R0 | P2596R0 Critique | Matt Bentley | 2023-04-28 | 2023-05 | All of WG21 | |
P2858R0 | Noexcept vs contract violations | Andrzej Krzemieński | 2023-05-12 | 2023-05 | SG21 Contracts | |
P2861R0 | The Lakos Rule: Narrow Contracts And `noexcept` Are Inherently Incompatible | John Lakos | 2023-05-18 | 2023-05 | SG21 Contracts,EWG Evolution,LEWG Library Evolution | |
P2862R0 | text_encoding::name() should never return null values | Daniel Krügler | 2023-05-09 | 2023-05 | LEWG Library Evolution,LWG Library | |
P2863R0 | Review Annex D for C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | EWG Evolution,LEWG Library Evolution | |
P2864R0 | Remove Deprecated Arithmetic Conversion on Enumerations From C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | EWG Evolution | |
P2865R0 | Remove Deprecated Array Comparisons from C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | EWG Evolution | |
P2866R0 | Remove Deprecated Volatile Features From C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | EWG Evolution | |
P2867R0 | Remove Deprecated strstreams From C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | LEWG Library Evolution | |
P2868R0 | Remove Deprecated `std::allocator` Typedef From C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | LEWG Library Evolution | |
P2869R0 | Remove Deprecated `shared_ptr` Atomic Access APIs From C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | SG1 Concurrency and Parallelism | |
P2870R0 | Remove `basic_string::reserve()` From C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | LEWG Library Evolution | |
P2871R0 | Remove Deprecated Unicode Conversion Facets From C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | SG16 Unicode | |
P2872R0 | Remove `wstring_convert` From C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | LEWG Library Evolution | |
P2873R0 | Remove Deprecated locale category facets for Unicode from C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | SG16 Unicode | |
P2874R0 | Mandating Annex D | Alisdair Meredith | 2023-05-19 | 2023-05 | LWG Library | |
P2875R0 | Undeprecate `polymorphic_allocator::destroy` For C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | LEWG Library Evolution | |
P2876R0 | Proposal to extend std::simd with more constructors and accessors | Daniel Towner | 2023-05-18 | 2023-05 | LEWG Library Evolution | |
P2878R0 | Reference checking | Jarrad J. Waterloo | 2023-05-10 | 2023-05 | SG23 Safety and Security | |
P2878R1 | Reference checking | Jarrad J. Waterloo | 2023-05-18 | 2023-05 | P2878R0 | SG23 Safety and Security |
P2880R0 | Algorithm-like vs std::simd based RNG API | Ilya Burylov | 2023-05-18 | 2023-05 | LEWG Library Evolution | |
P2881R0 | Generator-based for loop | Jonathan Müller | 2023-05-18 | 2023-05 | EWGI SG17: EWG Incubator,EWG Evolution | |
P2882R0 | An Event Model for C++ Executors | Detlef Vollmann | 2023-05-11 | 2023-05 | SG1 Concurrency and Parallelism | |
P2883R0 | `offsetof` Should Be A Keyword In C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | EWGI SG17: EWG Incubator | |
P2884R0 | `assert` Should Be A Keyword In C++26 | Alisdair Meredith | 2023-05-19 | 2023-05 | EWGI SG17: EWG Incubator,SG21 Contracts,SG22 Compatability | |
P2886R0 | Concurrency TS2 Editor's report | Michael Wong | 2023-05-15 | 2023-05 | All of WG21 | |
P2887R0 | SG14: Low Latency/Games/Embedded/Finance/Simulation virtual meeting minutes to 2023/05/11 | Michael Wong | 2023-05-15 | 2023-05 | SG14 Low Latency | |
P2888R0 | SG19: Machine Learning Virtual Meeting Minutes to 2023/05/12 | Michael Wong | 2023-05-15 | 2023-05 | SG19 Machine Learning | |
P2889R0 | Distributed Arrays | Lauri Vasama | 2023-05-15 | 2023-05 | EWGI SG17: EWG Incubator,EWG Evolution | |
P2891R0 | SG16: Unicode meeting summaries 2023-01-11 through 2023-05-10 | Tom Honermann | 2023-05-16 | 2023-05 | SG16 Unicode | |
P2892R0 | std::simd Types Should be Regular | David Sankel | 2023-05-18 | 2023-05 | LEWG Library Evolution | |
P2893R0 | Variadic Friends | Jody Hagins | 2023-05-19 | 2023-05 | EWGI SG17: EWG Incubator | |
P2895R0 | noncopyable and nonmoveable utility classes | Sebastian Theophil | 2023-05-17 | 2023-05 | LEWG Library Evolution | |
P2897R0 | aligned_accessor: An mdspan accessor expressing pointer overalignment | Mark Hoemmen | 2023-05-18 | 2023-05 | LEWGI SG18: LEWG Incubator | |
P2898R0 | Importable Headers are Not Universally Implementable | Daniel Ruoso | 2023-05-18 | 2023-05 | SG15 Tooling | |
P2901R0 | Extending linear algebra support to batched operations | Mark Hoemmen | 2023-05-19 | 2023-05 | SG6 Numerics,LEWGI SG18: LEWG Incubator,SG19 Machine Learning |
Over the past week, we ran our 2023 annual global C++ developer survey. Thank you to everyone who responded. As promised, here is a summary of the results:
CppDevSurvey-2023-summary.pdf
The results have now been forwarded to the C++ standards committee to help inform C++ evolution. Your feedback will be very helpful, and thank you again for your participation! Stay safe, everyone.
]]>The 2023-04 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4943 | WG21 February 2023 Issaquah Minutes of Meeting | Nina Ranns | 2023-03-06 | 2023-04 | All of WG21 | |
N4944 | Working Draft, Standard for Programming Language C++ | Thomas Köppe | 2023-03-22 | 2023-04 | All of WG21 | |
N4945 | Editors' Report - Programming Languages - C++ | Thomas Köppe | 2023-03-23 | 2023-04 | All of WG21 | |
P0876R13 | fiber_context - fibers without scheduler | Oliver Kowalke | 2023-03-02 | 2023-04 | P0876R12 | LEWG Library Evolution |
P1144R7 | std::is_trivially_relocatable | Arthur O'Dwyer | 2023-03-10 | 2023-04 | P1144R6 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator,EWG Evolution,LEWG Library Evolution |
P1673R12 | A free function linear algebra interface based on the BLAS | Mark Hoemmen | 2023-03-14 | 2023-04 | P1673R11 | LWG Library |
P1885R11 | Naming Text Encodings to Demystify Them | Corentin Jabot | 2023-03-22 | 2023-04 | P1885R10 | LWG Library |
P2022R1 | Rangified version of lexicographical_compare_three_way | Ran Regev | 2023-03-11 | 2023-04 | P2022R0 | SG9 Ranges,LEWG Library Evolution |
P2287R2 | Designated-initializers for base classes | Barry Revzin | 2023-03-12 | 2023-04 | P2287R1 | EWG Evolution |
P2407R3 | Freestanding Library: Partial Classes | Emil Meissner | 2023-03-05 | 2023-04 | P2407R2 | LWG Library |
P2447R3 | std::span over an initializer list | Arthur O'Dwyer | 2023-03-14 | 2023-04 | P2447R2 | LEWG Library Evolution |
P2530R3 | Hazard Pointers for C++26 | Maged Michael | 2023-03-02 | 2023-04 | P2530R2 | LWG Library |
P2545R4 | Read-Copy Update (RCU) | Paul E. McKenney | 2023-03-08 | 2023-04 | P2545R3 | LWG Library |
P2630R3 | Submdspan | Christian Trott | 2023-03-15 | 2023-04 | P2630R2 | LEWG Library Evolution,LWG Library |
P2690R1 | Presentation for C++17 parallel algorithms and P2300 | Ruslan Arutyunyan | 2023-03-16 | 2023-04 | P2690R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2746R1 | Deprecate and Replace Fenv Rounding Modes | Hans Boehm | 2023-03-14 | 2023-04 | P2746R0 | SG6 Numerics,LEWG Library Evolution |
P2752R1 | Static storage for braced initializers | Arthur O'Dwyer | 2023-03-10 | 2023-04 | P2752R0 | EWG Evolution,CWG Core |
P2757R1 | Type checking format args | Barry Revzin | 2023-03-13 | 2023-04 | P2757R0 | LEWG Library Evolution |
P2780R0 | Caller-side precondition checking, and Eval_and_throw | Ville Voutilainen | 2023-03-02 | 2023-04 | SG21 Contracts | |
P2806R1 | do expressions | Barry Revzin | 2023-03-12 | 2023-04 | P2806R0 | EWG Evolution |
P2809R0 | Trivial infinite loops are not Undefined Behavior | JF Bastien | 2023-03-14 | 2023-04 | SG1 Concurrency and Parallelism,SG22 Compatability,EWG Evolution | |
P2811R0 | Contract Violation Handlers | Joshua Berne | 2023-03-20 | 2023-04 | SG21 Contracts | |
P2811R1 | Contract Violation Handlers | Joshua Berne | 2023-03-20 | 2023-04 | P2811R0 | SG21 Contracts |
P2817R0 | The idea behind the contracts MVP | Andrzej Krzemieński | 2023-03-05 | 2023-04 | SG21 Contracts | |
P2818R0 | Uniform Call Syntax for explicit-object member functions | Gašper Ažman | 2023-03-15 | 2023-04 | EWG Evolution | |
P2819R0 | Add tuple protocol to complex | Michael Florian Hava | 2023-02-23 | 2023-04 | SG6 Numerics,LEWG Library Evolution | |
P2824R0 | WG21 February 2023 Issaquah meeting Record of Discussion | Nina Ranns | 2023-03-06 | 2023-04 | All of WG21 | |
P2825R0 | calltarget(unevaluated-call-expression) | Gašper Ažman | 2023-03-15 | 2023-04 | EWG Evolution | |
P2826R0 | Replacement functions | Gašper Ažman | 2023-03-15 | 2023-04 | EWG Evolution | |
P2827R0 | Floating-point overflow and underflow in from_chars (LWG 3081) | Zhihao Yuan | 2023-03-14 | 2023-04 | LEWG Library Evolution,LWG Library | |
P2828R0 | Copy elision for direct-initialization with a conversion function (Core issue 2327) | Brian Bi | 2023-03-13 | 2023-04 | CWG Core | |
P2830R0 | constexpr type comparison | Gašper Ažman | 2023-03-15 | 2023-04 | EWG Evolution | |
P2833R0 | Freestanding Library: inout expected span | Ben Craig | 2023-03-13 | 2023-04 | LEWG Library Evolution | |
P2836R0 | std::const_iterator often produces an unexpected type | Christopher Di Bella | 2023-03-20 | 2023-04 | SG9 Ranges,LEWG Library Evolution,LWG Library | |
P2838R0 | Unconditional contract violation handling of any kind is a serious problem | Ville Voutilainen | 2023-03-22 | 2023-04 | SG21 Contracts |
The 2023-02 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4940 | WG21 2022-11 Kona Minutes of Meeting V2 | Nina Ranns | 2023-01-23 | 2023-02 | All of WG21 | |
N4941 | INCITS C++/WG21 Agenda: 6-11 February 2023, Issaquah, WA USA | John Spicer | 2023-01-21 | 2023-02 | All of WG21 | |
N4942 | WG21 2023-01 Admin telecon minutes | Nina Ranns | 2023-02-02 | 2023-02 | All of WG21 | |
P0290R3 | apply() for synchronized_value | Anthony Williams | 2023-01-17 | 2023-02 | P0290R2 | LWG Library |
P0290R4 | apply() for synchronized_value | Anthony Williams | 2023-02-16 | 2023-02 | P0290R3 | LWG Library |
P0447R21 | Introduction of std::hive to the standard library | Matt Bentley | 2023-02-11 | 2023-02 | P0447R20 | SG14 Low Latency,LEWG Library Evolution,All of WG21 |
P0493R4 | Atomic maximum/minimum | Al Grant | 2023-02-15 | 2023-02 | P0493R3 | SG1 Concurrency and Parallelism,LWG Library |
P0792R13 | function_ref: a non-owning reference to a Callable | Vittorio Romeo | 2023-02-09 | 2023-02 | P0792R12 | LWG Library |
P0792R14 | function_ref: a non-owning reference to a Callable | Vittorio Romeo | 2023-02-09 | 2023-02 | P0792R13 | LWG Library |
P0870R5 | A proposal for a type trait to detect narrowing conversions | Giuseppe D'Angelo | 2023-02-15 | 2023-02 | P0870R4 | SG6 Numerics,LEWG Library Evolution,LWG Library |
P0876R12 | fiber_context - fibers without scheduler | Oliver Kowalke | 2023-02-09 | 2023-02 | P0876R11 | LEWG Library Evolution |
P1061R4 | Structured Bindings can introduce a Pack | Barry Revzin | 2023-02-15 | 2023-02 | P1061R3 | EWG Evolution |
P1708R7 | Basic Statistics | Richard Dosselmann | 2023-02-06 | 2023-02 | P1708R6 | SG6 Numerics,SG14 Low Latency,LEWG Library Evolution,LWG Library |
P1715R1 | Loosen restrictions on "_t" typedefs and "_v" values. | Jorg Brown | 2023-02-06 | 2023-02 | P1715R0 | LEWG Library Evolution,CWG Core,LWG Library |
P1759R5 | Native handles and file streams | Elias Kosunen | 2023-02-12 | 2023-02 | P1759R4 | LWG Library |
P1854R4 | Making non-encodable string literals ill-formed | Corentin Jabot | 2023-02-08 | 2023-02 | P1854R3 | EWG Evolution |
P1928R3 | Merge data-parallel types from the Parallelism TS 2 | Matthias Kretz | 2023-02-03 | 2023-02 | P1928R2 | LEWG Library Evolution |
P2022R0 | Rangified version of lexicographical_compare_three_way | Ran Regev | 2023-02-06 | 2023-02 | SG9 Ranges,LEWG Library Evolution | |
P2047R6 | An allocator-aware optional type | Nina Ranns | 2023-02-02 | 2023-02 | P2047R5 | LEWG Library Evolution |
P2159R1 | A Big Decimal Type | Bill Seymour | 2023-02-06 | 2023-02 | P2159R0 | SG6 Numerics |
P2300R6 | `std::execution` | Michał Dominiak | 2023-01-19 | 2023-02 | P2300R5 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2308R0 | Template parameter initialization | S. Davis Herring | 2023-02-13 | 2023-02 | CWG Core | |
P2338R4 | Freestanding Library: Character primitives and the C library | Ben Craig | 2023-02-09 | 2023-02 | P2338R3 | LWG Library |
P2355R1 | Postfix fold expressions | S. Davis Herring | 2023-02-13 | 2023-02 | P2355R0 | EWG Evolution |
P2361R6 | Unevaluated strings | Corentin Jabot | 2023-02-12 | 2023-02 | P2361R5 | EWG Evolution |
P2363R5 | Extending associative containers with the remaining heterogeneous overloads | Konstantin Boyarinov | 2023-02-10 | 2023-02 | P2363R4 | LWG Library |
P2406R3 | Add lazy_counted_iterator | Yehezkel Bernat | 2023-02-06 | 2023-02 | P2406R2 | SG9 Ranges,LEWG Library Evolution |
P2406R4 | Add lazy_counted_iterator | Yehezkel Bernat | 2023-02-07 | 2023-02 | P2406R3 | SG9 Ranges,LEWG Library Evolution |
P2406R5 | Add lazy_counted_iterator | Yehezkel Bernat | 2023-02-08 | 2023-02 | P2406R4 | SG9 Ranges,LEWG Library Evolution |
P2495R2 | Interfacing stringstreams with string_view | Michael Hava | 2023-02-14 | 2023-02 | P2495R1 | LWG Library |
P2497R0 | Testing for success or failure of charconv functions | Jonathan Wakely | 2023-01-25 | 2023-02 | LEWG Library Evolution | |
P2521R3 | Contract support -- Record of SG21 consensus | Andrzej Krzemieński | 2023-02-10 | 2023-02 | P2521R2 | SG21 Contracts |
P2527R2 | std::variant_alternative_index and std::tuple_element_index | Alex Christensen | 2023-01-27 | 2023-02 | P2527R1 | LWG Library |
P2545R3 | Why RCU Should be in C++26 | Paul E. McKenney | 2023-02-15 | 2023-02 | P2545R2 | LWG Library |
P2558R2 | Add @, $, and ` to the basic character set | Steve Downey | 2023-02-08 | 2023-02 | P2558R1 | SG16 Unicode,SG22 Compatability |
P2572R1 | std::format() fill character allowances | Tom Honermann | 2023-02-08 | 2023-02 | P2572R0 | LWG Library |
P2588R3 | Relax std::barrier phase completion step guarantees | Gonzalo Brito | 2023-02-07 | 2023-02 | P2588R2 | LWG Library |
P2591R3 | Concatenation of strings and string views | Giuseppe D'Angelo | 2023-01-30 | 2023-02 | P2591R2 | LEWG Library Evolution |
P2592R3 | Hashing support for std::chrono value classes | Giuseppe D'Angelo | 2023-02-10 | 2023-02 | P2592R2 | LEWG Library Evolution,LWG Library |
P2593R1 | Allowing static_assert(false) | Barry Revzin | 2023-01-19 | 2023-02 | P2593R0 | EWG Evolution |
P2594R1 | Slides: Allow programmer to control coroutine elision (P2477R3 Presentation)) | Chuanqi Xu | 2023-02-07 | 2023-02 | P2594R0 | EWG Evolution |
P2609R2 | Relaxing Ranges Just A Smidge | John Eivind Helset | 2023-01-22 | 2023-02 | P2609R1 | LWG Library |
P2609R3 | Relaxing Ranges Just A Smidge | John Eivind Helset | 2023-02-10 | 2023-02 | P2609R2 | LWG Library |
P2616R4 | Making std::atomic notification/wait operations usable in more situations | Lewis Baker | 2023-02-15 | 2023-02 | P2616R3 | LEWG Library Evolution |
P2621R2 | UB? In my Lexer? | Corentin Jabot | 2023-02-08 | 2023-02 | P2621R1 | SG22 Compatability,EWG Evolution |
P2641R2 | Checking if a union alternative is active | Barry Revzin | 2023-02-07 | 2023-02 | P2641R1 | LEWG Library Evolution |
P2652R2 | Disallow user specialization of allocator_traits | Pablo Halpern | 2023-02-08 | 2023-02 | P2652R1 | LWG Library |
P2655R2 | common_reference_t of reference_wrapper Should Be a Reference Type | Hui Xie | 2023-02-06 | 2023-02 | P2655R1 | SG9 Ranges,LEWG Library Evolution |
P2655R3 | common_reference_t of reference_wrapper Should Be a Reference Type | Hui Xie | 2023-02-07 | 2023-02 | P2655R2 | SG9 Ranges,LEWG Library Evolution |
P2656R2 | C++ Ecosystem International Standard | René Ferdinand Rivera Morell | 2023-02-14 | 2023-02 | P2656R1 | SG15 Tooling |
P2663R1 | Proposal to support interleaved complex values in std::simd | Daniel Towner | 2023-01-25 | 2023-02 | P2663R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2664R1 | Proposal to extend std::simd with permutation API | Daniel Towner | 2023-01-25 | 2023-02 | P2664R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2670R1 | Non-transient constexpr allocation | Barry Revzin | 2023-02-03 | 2023-02 | P2670R0 | EWG Evolution |
P2679R2 | Fixing std::start_lifetime_as and std::start_lifetime_as_array | Timur Doumler | 2023-02-14 | 2023-02 | P2679R1 | CWG Core,LWG Library |
P2681R1 | More Basic Statistics | Richard Dosselmann | 2023-02-06 | 2023-02 | P2681R0 | SG6 Numerics,SG19 Machine Learning |
P2693R1 | Formatting thread::id and stacktrace | Corentin Jabot | 2023-02-09 | 2023-02 | P2693R0 | LEWG Library Evolution |
P2695R1 | A proposed plan for contracts in C++ | Timur Doumler | 2023-02-09 | 2023-02 | P2695R0 | SG21 Contracts,EWG Evolution |
P2724R1 | constant dangling | Jarrad J. Waterloo | 2023-02-13 | 2023-02 | P2724R0 | SG22 Compatability,SG23 Safety and Security |
P2727R1 | std::iterator_interface | Zach Laine | 2023-02-01 | 2023-02 | P2727R0 | LEWG Library Evolution |
P2730R1 | variable scope | Jarrad J. Waterloo | 2023-02-14 | 2023-02 | P2730R0 | SG22 Compatability,SG23 Safety and Security |
P2733R1 | Fix handling of empty specifiers in std::format | Victor Zverovich | 2023-02-06 | 2023-02 | P2733R0 | LEWG Library Evolution |
P2733R2 | Fix handling of empty specifiers in std::format | Victor Zverovich | 2023-02-09 | 2023-02 | P2733R1 | LEWG Library Evolution |
P2733R3 | Fix handling of empty specifiers in std::format | Victor Zverovich | 2023-02-10 | 2023-02 | P2733R2 | LEWG Library Evolution,LWG Library |
P2736R2 | Referencing the Unicode Standard | Corentin Jabot | 2023-02-09 | 2023-02 | P2736R1 | CWG Core |
P2738R1 | constexpr cast from void*: towards constexpr type-erasure | Corentin Jabot | 2023-02-13 | 2023-02 | P2738R0 | EWG Evolution |
P2740R1 | Simpler implicit dangling resolution | Jarrad J. Waterloo | 2023-01-15 | 2023-02 | P2740R0 | EWG Evolution |
P2740R2 | Simpler implicit dangling resolution | Jarrad J. Waterloo | 2023-02-13 | 2023-02 | P2740R1 | SG23 Safety and Security |
P2741R1 | user-generated static_assert messages | Corentin Jabot | 2023-02-12 | 2023-02 | P2741R0 | EWG Evolution |
P2742R1 | indirect dangling identification | Jarrad J. Waterloo | 2023-01-15 | 2023-02 | P2742R0 | EWG Evolution |
P2742R2 | indirect dangling identification | Jarrad J. Waterloo | 2023-02-13 | 2023-02 | P2742R1 | SG23 Safety and Security |
P2749R0 | Down with "character" | Corentin Jabot | 2023-02-12 | 2023-02 | SG16 Unicode,CWG Core | |
P2750R1 | C Dangling Reduction | Jarrad J. Waterloo | 2023-01-15 | 2023-02 | P2750R0 | EWG Evolution |
P2750R2 | C Dangling Reduction | Jarrad J. Waterloo | 2023-02-13 | 2023-02 | P2750R1 | SG22 Compatability,SG23 Safety and Security |
P2751R1 | Evaluation of Checked Contracts | Joshua Berne | 2023-02-14 | 2023-02 | P2751R0 | SG21 Contracts |
P2754R0 | Deconstructing Avoiding Uninitialized Reads of Auto Variables | Jake Fevold | 2023-01-24 | 2023-02 | SG23 Safety and Security,EWG Evolution | |
P2759R1 | DG Opinion on Safety for ISO C++ | Michael Wong | 2023-01-22 | 2023-02 | P2759R0 | SG23 Safety and Security,All of WG21 |
P2763R1 | `layout_stride` static extents default constructor fix | Christian Trott | 2023-02-07 | 2023-02 | P2763R0 | All of WG21 |
P2770R0 | Stashing stashing iterators for proper flattening | Tim Song | 2023-01-31 | 2023-02 | LWG Library | |
P2771R0 | Towards memory safety in C++ | Thomas Neumann | 2023-01-17 | 2023-02 | EWGI SG17: EWG Incubator | |
P2772R0 | std::integral_constant literals do not suffice - constexpr_t? | Matthias Kretz | 2023-01-17 | 2023-02 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P2773R0 | Considerations for Unicode algorithms | Corentin Jabot | 2023-02-16 | 2023-02 | SG16 Unicode | |
P2779R0 | Make basic_string_view's range construction conditionally explicit | Giuseppe D'Angelo | 2023-02-02 | 2023-02 | SG9 Ranges,SG16 Unicode,LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P2782R0 | A proposal for a type trait to detect if value initialization can be achieved by zero-filling | Giuseppe D'Angelo | 2023-02-13 | 2023-02 | SG14 Low Latency,EWG Evolution,LEWG Library Evolution | |
P2784R0 | Not halting the program after detected contract violation | Andrzej Krzemieński | 2023-02-09 | 2023-02 | SG21 Contracts | |
P2786R0 | Trivial relocatability options | Mungo Gill | 2023-02-10 | 2023-02 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator | |
P2787R0 | pmr::generator - Promise Types are not Values | Steve Downey | 2023-02-06 | 2023-02 | LEWG Library Evolution,LWG Library | |
P2787R1 | pmr::generator - Promise Types are not Values | Steve Downey | 2023-02-08 | 2023-02 | P2787R0 | LWG Library |
P2788R0 | Linkage for modular constants | S. Davis Herring | 2023-02-11 | 2023-02 | EWG Evolution,CWG Core | |
P2789R0 | C++ Standard Library Ready Issues to be moved in Issaquah, Feb. 2023 | Jonathan Wakely | 2023-02-13 | 2023-02 | All of WG21 | |
P2790R0 | C++ Standard Library Immediate Issues to be moved in Issaquah, Feb. 2023 | Jonathan Wakely | 2023-02-13 | 2023-02 | All of WG21 | |
P2791R0 | mandate concepts for new features | Ran Regev | 2023-02-07 | 2023-02 | LEWG Library Evolution,LWG Library,Direction Group | |
P2796R0 | Core Language Working Group "ready" Issues for the February, 2023 meeting | Jens Maurer | 2023-02-11 | 2023-02 | CWG Core | |
P2797R0 | Proposed resolution for CWG2692 Static and explicit object member functions with the same par | Gašper Ažman | 2023-02-10 | 2023-02 | EWG Evolution,CWG Core | |
P2798R0 | Fix layout mappings all static extent default constructor | Christian Trott | 2023-02-09 | 2023-02 | LWG Library | |
P2799R0 | Closed ranges may be a problem; breaking counted_iterator is not the solution | Tim Song | 2023-02-13 | 2023-02 | SG9 Ranges,LEWG Library Evolution | |
P2802R0 | Presentation of P1385R7 to LEWG at Issaquah 2023 | Guy Davidson | 2023-02-09 | 2023-02 | LEWG Library Evolution | |
P2803R0 | std::simd Intro slides | Matthias Kretz | 2023-02-09 | 2023-02 | LEWG Library Evolution | |
P2805R0 | fiber_context: fibers without scheduler - LEWG slides | Nat Goodspeed | 2023-02-09 | 2023-02 | LEWG Library Evolution | |
P2806R0 | do expressions | Barry Revzin | 2023-02-14 | 2023-02 | EWG Evolution | |
P2807R0 | Issaquah Slides for Intel response to std::simd | Daniel Towner | 2023-02-10 | 2023-02 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P2808R0 | Internal linkage in the global module | S. Davis Herring | 2023-02-13 | 2023-02 | EWG Evolution,CWG Core | |
P2810R0 | is_debugger_present is_replaceable | René Ferdinand Rivera Morell | 2023-02-14 | 2023-02 | SG15 Tooling | |
P2812R0 | P1673R11 LEWG presentation | Mark Hoemmen | 2023-02-13 | 2023-02 | LEWG Library Evolution | |
P2815R0 | Slides for presentation on P2188R1 | Anthony Williams | 2023-02-16 | 2023-02 | EWG Evolution | |
P2816R0 | Safety Profiles: Type-and-resource Safe programming in ISO Standard C++ | Bjarne Stroustrup | 2023-02-16 | 2023-02 | All of WG21 |
C++23 is done!
C++23 "Pandemic Edition" is complete (Trip report: Winter ISO C++ standards meeting, Issaquah, WA, USA)
by Herb Sutter
From the article:
]]>On Saturday, the ISO C++ committee completed technical work on C++23 in Issaquah, WA, USA! We resolved the remaining international comments on the C++23 draft, and are now producing the final document to be sent out for its international approval ballot (Draft International Standard, or DIS) and final editorial work, to be published later in 2023...
... Per our published C++23 schedule, this was our final meeting to finish technical work on C++23. No features were added or removed, we just handled fit-and-finish issues and primarily focused on finishing addressing the 137 national body comments we received in the summer’s international comment ballot (Committee Draft, or CD). You can find a list of C++23 features here, many of them already implemented in major compilers and libraries. C++23’s main theme was “completing C++20,” and some of the highlights include module “std”, “if consteval,” explicit “this” parameters, still more constexpr, still more CTAD, “[[assume]]”, simplifying implicit move, multidimensional and static “operator[]”, a bunch of Unicode improvements, and Nicolai Josuttis’ personal favorite: fixing the lifetime of temporaries in range-for loops...
The 2022-12 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
P0901R10 | Size feedback in operator new | Chris Kennelly | 2022-11-09 | 2022-12 | P0901R9 | EWG Evolution |
P1018R18 | C++ Language Evolution status pandemic edition 2022/07–2022/11 | JF Bastien | 2022-11-11 | 2022-12 | P1018R17 | EWG Evolution,All of WG21 |
P1018R19 | C++ Language Evolution status | JF Bastien | 2022-11-15 | 2022-12 | P1018R18 | EWG Evolution,All of WG21 |
P1028R4 | SG14 status_code and standard error object | Niall Douglas | 2022-10-28 | 2022-12 | P1028R3 | LEWG Library Evolution |
P1202R5 | Asymmetric Fences | David Goldblatt | 2022-11-11 | 2022-12 | P1202R4 | LWG Library |
P1264R2 | Revising the wording of stream input operations | Louis Dionne | 2022-12-04 | 2022-12 | P1264R1 | LWG Library |
P1478R8 | Byte-wise atomic memcpy | Hans Boehm | 2022-11-14 | 2022-12 | P1478R7 | All of WG21 |
P1619R2 | Functions for Testing Boundary Conditions on Integer Operations | Lisa Lippincott | 2022-11-08 | 2022-12 | P1619R1 | LEWG Library Evolution |
P2164R8 | views::enumerate | Corentin Jabot | 2022-11-11 | 2022-12 | P2164R7 | LWG Library |
P2167R3 | Improved Proposed Wording for LWG 2114 (contextually convertible to bool) | Daniel Krügler | 2022-11-02 | 2022-12 | P2167R2 | LWG Library |
P2248R7 | Enabling list-initialization for algorithms | Giuseppe D'Angelo | 2022-11-13 | 2022-12 | P2248R6 | SG6 Numerics,SG9 Ranges,LEWG Library Evolution |
P2396R1 | Concurrency TS 2 fixes | David Goldblatt | 2022-11-10 | 2022-12 | P2396R0 | LWG Library |
P2434R0 | Nondeterministic pointer provenance | S. Davis Herring | 2022-11-16 | 2022-12 | SG22 Compatability,EWG Evolution | |
P2539R4 | Should the output of std::print to a terminal be synchronized with the underlying stream? | Victor Zverovich | 2022-11-08 | 2022-12 | P2539R3 | LWG Library |
P2546R3 | Debugging Support | René Ferdinand Rivera Morell | 2022-11-15 | 2022-12 | P2546R2 | LEWG Library Evolution |
P2548R2 | copyable_function | Michael Florian Hava | 2022-11-08 | 2022-12 | P2548R1 | LEWG Library Evolution |
P2548R3 | copyable_function | Michael Florian Hava | 2022-11-11 | 2022-12 | P2548R2 | LEWG Library Evolution |
P2548R4 | copyable_function | Michael Florian Hava | 2022-11-12 | 2022-12 | P2548R3 | LEWG Library Evolution,LWG Library |
P2552R1 | On the ignorability of standard attributes | Timur Doumler | 2022-11-15 | 2022-12 | P2552R0 | EWG Evolution,CWG Core |
P2559R1 | Plan for Concurrency Technical Specification Version 2 | Bryce Adelstein Lelbach | 2022-11-16 | 2022-12 | P2559R0 | LEWG Library Evolution,LWG Library |
P2564R1 | consteval needs to propagate up | Hal Finkel | 2022-11-10 | 2022-12 | P2564R0 | EWG Evolution |
P2564R2 | consteval needs to propagate up | Hal Finkel | 2022-11-10 | 2022-12 | P2564R1 | EWG Evolution |
P2564R3 | consteval needs to propagate up | Barry Revzin | 2022-12-04 | 2022-12 | P2564R2 | CWG Core |
P2570R1 | Contract predicates that are not predicates | Andrzej Krzemieński | 2022-11-14 | 2022-12 | P2570R0 | SG21 Contracts |
P2588R2 | Relax std::barrier phase completion step guarantees | Gonzalo Brito | 2022-11-07 | 2022-12 | P2588R1 | LEWG Library Evolution |
P2589R1 | static operator[] | Nevin Liber | 2022-11-10 | 2022-12 | P2589R0 | CWG Core |
P2602R2 | Poison Pills are Too Toxic | Barry Revzin | 2022-11-07 | 2022-12 | P2602R1 | LEWG Library Evolution |
P2614R2 | Deprecate numeric_limits::has_denorm | Matthias Kretz | 2022-11-08 | 2022-12 | P2614R1 | LWG Library |
P2615R1 | Meaningful exports | S. Davis Herring | 2022-11-15 | 2022-12 | P2615R0 | EWG Evolution,CWG Core |
P2616R1 | Making std::atomic notification/wait operations usable in more situations | Lewis Baker | 2022-11-09 | 2022-12 | P2616R0 | SG1 Concurrency and Parallelism |
P2616R2 | Making std::atomic notification/wait operations usable in more situations | Lewis Baker | 2022-11-15 | 2022-12 | P2616R1 | SG1 Concurrency and Parallelism |
P2640R2 | Modules: Inner-scope Namespace Entities: Exported or Not? | Nathan Sidwell | 2022-11-15 | 2022-12 | P2640R1 | EWG Evolution |
P2644R1 | Final Fix of Broken Range based for Loop Rev 1 | Nicolai Josuttis | 2022-11-13 | 2022-12 | P2644R0 | CWG Core |
P2647R1 | Permitting static constexpr variables in constexpr functions | Barry Revzin | 2022-11-08 | 2022-12 | P2647R0 | EWG Evolution |
P2649R0 | 2022-10 Library Evolution Poll Outcomes | Bryce Adelstein Lelbach | 2022-11-11 | 2022-12 | LEWG Library Evolution | |
P2650R0 | 2022-11 Library Evolution Polls | Bryce Adelstein Lelbach | 2022-11-17 | 2022-12 | LEWG Library Evolution | |
P2652R1 | Disallow user specialization of allocator_traits | Pablo Halpern | 2022-11-11 | 2022-12 | P2652R0 | LWG Library |
P2653R1 | Update Annex E based on Unicode 15.0 UAX 31 | Steve Downey | 2022-10-20 | 2022-12 | P2653R0 | SG16 Unicode,CWG Core |
P2655R1 | common_reference_t of reference_wrapper Should Be a Reference Type | Hui Xie | 2022-11-11 | 2022-12 | P2655R0 | SG9 Ranges,LEWG Library Evolution |
P2657R1 | C++ is the next C++ | Jarrad J. Waterloo | 2022-11-14 | 2022-12 | P2657R0 | EWG Evolution |
P2658R1 | temporary storage class specifiers | Jarrad J. Waterloo | 2022-11-14 | 2022-12 | P2658R0 | EWG Evolution |
P2659R1 | A Proposal to Publish a Technical Specification for Contracts | Brian Bi | 2022-11-14 | 2022-12 | P2659R0 | SG21 Contracts,EWG Evolution |
P2664R0 | Proposal to extend std::simd with permutation API | Daniel Towner | 2022-10-21 | 2022-12 | SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library,Direction Group | |
P2674R1 | A trait for implicit lifetime types | Timur Doumler | 2022-11-11 | 2022-12 | P2674R0 | CWG Core,LWG Library |
P2679R1 | Fixing std::start_lifetime_as and std::start_lifetime_as_array | Timur Doumler | 2022-11-11 | 2022-12 | P2679R0 | CWG Core,LWG Library |
P2681R0 | More Stats Functions | Richard Dosselmann | 2022-11-07 | 2022-12 | SG6 Numerics,SG19 Machine Learning | |
P2693R0 | Formatting thread::id and stacktrace | Corentin Jabot | 2022-11-11 | 2022-12 | LEWG Library Evolution | |
P2695R0 | A proposed plan for contracts in C++ | Timur Doumler | 2022-11-17 | 2022-12 | SG21 Contracts,EWG Evolution | |
P2696R0 | Introduce Cpp17Swappable as additional convenience requirements | Daniel Krügler | 2022-11-07 | 2022-12 | LWG Library | |
P2697R0 | Interfacing bitset with string_view | Michael Florian Hava | 2022-11-12 | 2022-12 | LEWG Library Evolution | |
P2698R0 | Unconditional termination is a serious problem | Bjarne Stroustrup | 2022-11-18 | 2022-12 | SG21 Contracts | |
P2700R0 | Questions on P2680 "Contracts for C++: Prioritizing Safety" | Timur Doumler | 2022-11-29 | 2022-12 | SG21 Contracts | |
P2701R0 | Translating Linker Input Files to Module Metadata Files | Daniel Ruoso | 2022-11-08 | 2022-12 | SG15 Tooling | |
P2702R0 | Specifying Importable Headers | Daniel Ruoso | 2022-11-08 | 2022-12 | SG15 Tooling | |
P2703R0 | C++ Standard Library Ready Issues to be moved in Kona, Nov. 2022 | Jonathan Wakely | 2022-11-07 | 2022-12 | All of WG21 | |
P2704R0 | C++ Standard Library Immediate Issues to be moved in Kona, Nov. 2022 | Jonathan Wakely | 2022-11-20 | 2022-12 | All of WG21 | |
P2705R0 | C++ Library Fundamentals TS Issues to be moved in Kona, Nov. 2022 | Jonathan Wakely | 2022-11-07 | 2022-12 | All of WG21 | |
P2706R0 | Drafting for US 26-061: Redundant specification for defaulted functions | Jason Merrill | 2022-11-08 | 2022-12 | CWG Core | |
P2708R0 | No Future Fundamentals TSes | Alisdair Meredith | 2022-11-10 | 2022-12 | LEWG Library Evolution | |
P2708R1 | No Future Fundamentals TSes | Alisdair Meredith | 2022-11-10 | 2022-12 | P2708R0 | LWG Library |
P2709R0 | Core Language Working Group "ready" Issues for the November, 2022 meeting | Jens Maurer | 2022-11-11 | 2022-12 | All of WG21 | |
P2710R0 | Core Language Working Group NB comment resolutions for the November, 2022 meeting | Jens Maurer | 2022-11-11 | 2022-12 | All of WG21 | |
P2711R0 | Making multi-param (and other converting) constructors of views explicit | Ville Voutilainen | 2022-11-09 | 2022-12 | LEWG Library Evolution,LWG Library | |
P2711R1 | Making multi-param constructors of views explicit | Ville Voutilainen | 2022-11-11 | 2022-12 | P2711R0 | LWG Library |
P2712R0 | Classification of Contract-Checking Predicates | Joshua Berne | 2022-11-14 | 2022-12 | SG21 Contracts | |
P2718R0 | Wording for P2644R1 Fix for Range-based for Loop | Joshua Berne | 2022-11-11 | 2022-12 | CWG Core | |
P2722R0 | Slides: Beyond operator() (P2511R2 presentation) | Zhihao Yuan | 2022-11-12 | 2022-12 | LEWG Library Evolution | |
P2723R0 | Zero-initialize objects of automatic storage duration | JF Bastien | 2022-11-15 | 2022-12 | SG12 Undefined and Unspecified Behavior,SG22 Compatability,EWG Evolution | |
P2725R0 | std::integral_constant Literals | Zach Laine | 2022-11-18 | 2022-12 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P2726R0 | Better std::tuple Indexing | Zach Laine | 2022-11-18 | 2022-12 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P2727R0 | std::iterator_interface | Zach Laine | 2022-11-20 | 2022-12 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution |
The 2022-09 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4917 | Working Draft, Standard for Programming Language C++ | Thomas Köppe | 2022-09-04 | 2022-09 | All of WG21 | |
N4918 | Editors' Report - Programming Languages - C++ | Thomas Köppe | 2022-09-08 | 2022-09 | All of WG21 | |
N4920 | Working Draft, C++ Extensions for Library Fundamentals, Version 3 | Thomas Köppe | 2022-08-15 | 2022-09 | All of WG21 | |
N4921 | Editor's Report: C++ Extensions for Library Fundamentals, Version 3 | Thomas Köppe | 2022-08-15 | 2022-09 | All of WG21 | |
N4922 | INCITS C++/WG21 agenda: 7-12 November 2022, Kona, HI US | John Spicer | 2022-09-05 | 2022-09 | All of WG21 | |
P0543R2 | Saturation arithmetic | Jens Maurer | 2022-09-18 | 2022-09 | P0543R1 | LWG Library |
P0792R11 | function_ref: a non-owning reference to a Callable | Vittorio Romeo | 2022-09-13 | 2022-09 | P0792R10 | LWG Library |
P0957R9 | Proxy: A Polymorphic Programming Library | Mingxin Wang | 2022-09-15 | 2022-09 | P0957R8 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution |
P0987R1 | polymorphic_allocator instead of type-erasure | Pablo Halpern | 2022-09-14 | 2022-09 | P0987R0 | LWG Library |
P1030R5 | std::filesystem::path_view | Niall Douglas | 2022-09-15 | 2022-09 | P1030R4 | LEWG Library Evolution |
P1985R3 | Universal template parameters | Gašper Ažman | 2022-09-17 | 2022-09 | P1985R1 | SG7 Reflection,EWG Evolution,LEWG Library Evolution |
P2348R3 | Whitespaces Wording Revamp | Corentin Jabot | 2022-09-11 | 2022-09 | P2348R2 | EWG Evolution,CWG Core |
P2495R1 | Interfacing stringstreams with string_view | Michael Hava | 2022-09-14 | 2022-09 | P2495R0 | LEWG Library Evolution |
P2586R0 | Standard Secure Networking | Niall Douglas | 2022-09-13 | 2022-09 | SG4 Networking,LEWG Library Evolution | |
P2587R3 | to_string or not to_string | Victor Zverovich | 2022-08-28 | 2022-09 | P2587R2 | LWG Library |
P2588R1 | Relax std::barrier phase completion step guarantees | Gonzalo Brito | 2022-09-06 | 2022-09 | P2588R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2603R1 | member function pointer to function pointer | Jarrad Waterloo | 2022-09-04 | 2022-09 | P2603R0 | EWG Evolution,LEWG Library Evolution |
P2620R2 | Improve the wording for Universal Character Names in identifiers | Corentin Jabot | 2022-09-13 | 2022-09 | P2620R1 | CWG Core |
P2623R2 | implicit constant initialization | Jarrad J. Waterloo | 2022-09-12 | 2022-09 | P2623R1 | EWG Evolution |
P2631R0 | Publish TS Library Fundamentals v3 Now! | Alisdair Meredith | 2022-09-12 | 2022-09 | LEWG Library Evolution,LWG Library | |
P2636R0 | References to ranges should always be viewable | Hannes Hauswedell | 2022-09-14 | 2022-09 | SG9 Ranges,LEWG Library Evolution | |
P2637R0 | Member visit and apply | Barry Revzin | 2022-09-17 | 2022-09 | LEWG Library Evolution | |
P2638R0 | Intel's response to P1915R0 for std::simd parallelism in TS 2 | Daniel Towner | 2022-09-21 | 2022-09 | SG1 Concurrency and Parallelism,LEWG Library Evolution,LWG Library | |
P2639R0 | Static Allocations | Torben Thaysen | 2022-09-21 | 2022-09 | EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator | |
P2640R0 | Modules: Inner-scope Namespace Entities: Exported or Not? | Nathan Sidwell | 2022-09-12 | 2022-09 | EWG Evolution | |
P2641R0 | Checking if a union alternative is active | Barry Revzin | 2022-09-17 | 2022-09 | LEWG Library Evolution | |
P2642R0 | Padded mdspan layouts | Mark Hoemmen | 2022-09-14 | 2022-09 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P2643R0 | Improving C++ concurrency features | Gonzalo Brito Gadeschi | 2022-09-15 | 2022-09 | SG1 Concurrency and Parallelism |
The 2022-08 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4914 | WG21 2022-07 Admin telecon minutes | Nina Ranns | 2022-08-21 | 2022-08 | All of WG21 | |
N4915 | Business Plan and Convener's Report: ISO/IEC JTC1/SC22/WG21 (C++) | Herb Sutter | 2022-07-20 | 2022-08 | All of WG21 | |
N4916 | WG21 2022-07 Virtual Meeting Minutes of Meeting | Nina Ranns | 2022-08-12 | 2022-08 | All of WG21 | |
P0843R5 | static_vector | Gonzalo Brito Gadeschi | 2022-08-14 | 2022-08 | P0843R4 | LEWG Library Evolution |
P1255R9 | A view of 0 or 1 elements: views::maybe | Steve Downey | 2022-08-15 | 2022-08 | P1255R8 | SG9 Ranges,LEWG Library Evolution |
P2019R1 | Usability improvements for std::thread | Corentin Jabot | 2022-08-09 | 2022-08 | P2019R0 | SG1 Concurrency and Parallelism |
P2164R6 | views::enumerate | Corentin Jabot | 2022-08-09 | 2022-08 | P2164R5 | SG9 Ranges,LEWG Library Evolution |
P2264R4 | Make assert() macro user friendly for C and C++ | Peter Sommerlad | 2022-08-08 | 2022-08 | P2264R3 | LEWG Library Evolution |
P2477R3 | Allow programmers to control coroutine elision | Chuanqi Xu | 2022-07-22 | 2022-08 | P2477R2 | EWG Evolution |
P2511R2 | Beyond operator(): NTTP callables in type-erased call wrappers | Zhihao Yuan | 2022-08-14 | 2022-08 | P2511R1 | LWG Library |
P2517R1 | Add a conditional noexcept specification to std::apply | Hewill Kang | 2022-08-21 | 2022-08 | P2517R0 | LEWG Library Evolution |
P2537R1 | Relax va_start Requirements to Match C | JeanHeyd Meneide | 2022-07-22 | 2022-08 | P2537R0 | LEWG Library Evolution |
P2581R1 | Specifying the Interoperability of Built Module Interface Files | Daniel Ruoso | 2022-07-28 | 2022-08 | P2581R0 | SG15 Tooling |
P2587R2 | to_string or not to_string | Victor Zverovich | 2022-08-09 | 2022-08 | P2587R1 | LWG Library |
P2611R0 | 2022-07 Library Evolution Poll Outcomes | Bryce Adelstein Lelbach | 2022-07-27 | 2022-08 | LEWG Library Evolution | |
P2620R1 | Lifting artificial restriction on universal character names | Corentin Jabot | 2022-08-10 | 2022-08 | P2620R0 | SG16 Unicode,SG22 Compatability,EWG Evolution |
P2621R1 | UB? In my Lexer? | Corentin Jabot | 2022-08-09 | 2022-08 | P2621R0 | SG22 Compatability,EWG Evolution |
P2623R1 | implicit constant initialization | Jarrad J. Waterloo | 2022-08-14 | 2022-08 | P2623R0 | EWG Evolution |
P2625R0 | Slides: Life without operator() (P2511R1 presentation) | Zhihao Yuan | 2022-07-19 | 2022-08 | LEWG Library Evolution | |
P2626R0 | charN_t incremental adoption: Casting pointers of UTF character types | Corentin Jabot | 2022-08-09 | 2022-08 | SG16 Unicode,LEWG Library Evolution | |
P2627R0 | WG21 2022-07 Virtual Meeting Record of Discussion | Nina Ranns | 2022-08-12 | 2022-08 | All of WG21 | |
P2628R0 | Extend barrier APIs with memory_order | Gonzalo Brito Gadeschi | 2022-08-11 | 2022-08 | SG1 Concurrency and Parallelism | |
P2629R0 | barrier token-less split arrive/wait | Gonzalo Brito Gadeschi | 2022-08-11 | 2022-08 | SG1 Concurrency and Parallelism | |
P2630R0 | Submdspan | Christian Trott | 2022-08-14 | 2022-08 | LEWG Library Evolution | |
P2633R0 | thread_local_inherit: Enhancing thread-local storage | Justin Cooke | 2022-08-21 | 2022-08 | SG1 Concurrency and Parallelism,EWG Evolution | |
P2634R0 | Allow qualifiers in constructor declarations | Justin Cooke | 2022-08-21 | 2022-08 | EWG Evolution | |
P2635R0 | Enhancing the break statement | Justin Cooke | 2022-08-21 | 2022-08 | EWG Evolution |
Here is my report from the July 2022 ISO C++ committee virtual meeting.
Meeting Report
by Timur Doumler
About the report:
]]>This was the last virtual plenary before WG21 returns to meeting in person, and the last plenary where we voted new features into C++23, which is now in feature freeze.
The 2022-07 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
P0009R18 | MDSPAN | Christian Trott | 2022-07-13 | 2022-07 | P0009R17 | All of WG21 |
P1018R17 | C++ Language Evolution status pandemic edition 2022/06–2022/07 | JF Bastien | 2022-07-09 | 2022-07 | P1018R16 | EWG Evolution,All of WG21 |
P1083R6 | Move resource_adaptor from Library TS to the C++ WP | Pablo Halpern | 2022-07-08 | 2022-07 | P1083R5 | LEWG Library Evolution |
P1255R8 | A view of 0 or 1 elements: views::maybe | Steve Downey | 2022-07-11 | 2022-07 | P1255R7 | SG9 Ranges,LEWG Library Evolution |
P1642R11 | Freestanding Library: Easy [utilities], [ranges], and [iterators] | Ben Craig | 2022-07-01 | 2022-07 | P1642R10 | CWG Core |
P1684R3 | mdarray: An Owning Multidimensional Array Analog of mdspan | Christian Trott | 2022-07-14 | 2022-07 | P1684R2 | LEWG Library Evolution |
P1899R3 | stride_view | Christopher Di Bella, Tim Song | 2022-07-10 | 2022-07 | P1899R2 | SG9 Ranges,LEWG Library Evolution |
P1967R8 | #embed - a simple, scannable preprocessor-based resource acquisition method | JeanHeyd Meneide | 2022-06-28 | 2022-07 | P1967R7 | EWG Evolution |
P2047R3 | An allocator-aware optional type | Nina Ranns | 2022-07-08 | 2022-07 | P2047R2 | LEWG Library Evolution |
P2079R3 | System execution context | Lee Howes | 2022-07-15 | 2022-07 | P2079R2 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2165R4 | Compatibility between tuple, pair and tuple-like objects | Corentin Jabot | 2022-07-15 | 2022-07 | P2165R3 | LEWG Library Evolution |
P2248R5 | Enabling list-initialization for algorithms | Giuseppe D'Angelo | 2022-06-29 | 2022-07 | P2248R4 | SG6 Numerics,SG9 Ranges,LEWG Library Evolution |
P2295R6 | Support for UTF-8 as a portable source file encoding | Corentin Jabot | 2022-07-01 | 2022-07 | P2295R5 | SG22 Compatability,EWG Evolution |
P2361R5 | Unevaluated strings | Corentin Jabot | 2022-07-09 | 2022-07 | P2361R4 | EWG Evolution |
P2374R4 | views::cartesian_product | Sy Brand | 2022-07-13 | 2022-07 | P2374R3 | LWG Library |
P2404R3 | Move-only types for equality_comparable_with, totally_ordered_with, and three_way_comparable_with | Justin Bassett | 2022-07-08 | 2022-07 | P2404R2 | SG9 Ranges,LEWG Library Evolution,LWG Library |
P2417R2 | A more constexpr bitset | Daniil Goncharov | 2022-07-16 | 2022-07 | P2417R1 | LWG Library |
P2419R2 | Clarify handling of encodings in localized formatting of chrono types | Victor Zverovich | 2022-07-15 | 2022-07 | P2419R1 | LWG Library |
P2460R2 | Relax requirements on wchar_t to match existing practices | Corentin Jabot | 2022-07-15 | 2022-07 | P2460R1 | SG22 Compatability,CWG Core |
P2474R2 | views::repeat | Michał Dominiak | 2022-07-13 | 2022-07 | P2474R1 | SG9 Ranges,LWG Library |
P2481R1 | Forwarding reference to specific type/template | Barry Revzin | 2022-07-15 | 2022-07 | P2481R0 | EWG Evolution |
P2494R2 | Relaxing range adaptors to allow for move only types | Michał Dominiak | 2022-07-13 | 2022-07 | P2494R1 | SG9 Ranges,LWG Library |
P2513R4 | char8_t Compatibility and Portability Fix | JeanHeyd Meneide | 2022-06-26 | 2022-07 | P2513R3 | EWG Evolution |
P2547R1 | Language support for customisable functions | Lewis Baker | 2022-07-16 | 2022-07 | P2547R0 | EWG Evolution |
P2548R0 | copyable_function | Michael Florian Hava | 2022-07-13 | 2022-07 | LEWG Library Evolution | |
P2549R1 | std::unexpected should have error() as member accessor | Yihe Li | 2022-07-04 | 2022-07 | P2549R0 | LWG Library |
P2561R0 | operator?? | Barry Revzin | 2022-07-10 | 2022-07 | EWG Evolution | |
P2579R0 | Mitigation strategies for P2036 "Changing scope for lambda trailing-return-type" | Corentin Jabot | 2022-07-01 | 2022-07 | EWG Evolution,CWG Core | |
P2585R1 | Improving default container formatting | Barry Revzin | 2022-07-15 | 2022-07 | P2585R0 | LEWG Library Evolution |
P2587R1 | to_string or not to_string | Victor Zverovich | 2022-06-24 | 2022-07 | P2587R0 | SG16 Unicode |
P2590R2 | Explicit lifetime management | Timur Doumler | 2022-07-15 | 2022-07 | P2590R1 | CWG Core,LWG Library |
P2592R1 | Hashing support for std::chrono value classes | Giuseppe D'Angelo | 2022-06-30 | 2022-07 | P2592R0 | LEWG Library Evolution |
P2601R1 | Make redundant empty angle brackets optional | Justin Cooke | 2022-07-16 | 2022-07 | P2601R0 | EWG Evolution,CWG Core |
P2602R1 | Poison Pills are Too Toxic | Barry Revzin | 2022-07-11 | 2022-07 | P2602R0 | LEWG Library Evolution |
P2609R1 | Relaxing Ranges Just A Smidge | John Eivind Helset | 2022-06-29 | 2022-07 | P2609R0 | SG9 Ranges,LEWG Library Evolution |
P2610R0 | 2022-07 Library Evolution Polls | Bryce Adelstein Lelbach | 2022-06-29 | 2022-07 | LEWG Library Evolution | |
P2613R1 | Add the missing `empty` to `mdspan` | Yihe Le | 2022-06-29 | 2022-07 | P2613R0 | LEWG Library Evolution |
P2614R0 | Deprecate numeric_limits::has_denorm | Matthias Kretz | 2022-07-06 | 2022-07 | SG6 Numerics,LEWG Library Evolution | |
P2615R0 | Meaningful exports | S. Davis Herring | 2022-07-01 | 2022-07 | CWG Core | |
P2616R0 | Making std::atomic notification/wait operations usable in more situations | Lewis Baker | 2022-07-05 | 2022-07 | SG1 Concurrency and Parallelism | |
P2617R0 | Responses to NB comments on DTS 12907 "Extensions to C++ for Transactional Memory Version 2" | Jens Maurer | 2022-07-15 | 2022-07 | SG5 Transactional Memory,CWG Core | |
P2618R0 | C++ Standard Library Issues to be moved in Virtual Plenary, Jul. 2022 | Jonathan Wakely | 2022-07-15 | 2022-07 | All of WG21 | |
P2620R0 | Lifting artificial restriction on universal character names | Corentin Jabot | 2022-07-09 | 2022-07 | SG16 Unicode,SG22 Compatability,EWG Evolution | |
P2621R0 | UB? In my Lexer? | Corentin Jabot | 2022-07-09 | 2022-07 | SG22 Compatability,EWG Evolution | |
P2622R0 | Core Language Working Group "ready" Issues for the July, 2022 meeting | Jens Maurer | 2022-07-15 | 2022-07 | All of WG21 | |
P2623R0 | implicit constant initialization | Jarrad J. Waterloo | 2022-07-13 | 2022-07 | EWG Evolution | |
P2624R0 | Make operations on bools more portable | Justin Cooke | 2022-07-16 | 2022-07 | CWG Core |
Several Boost authors have embarked on a project to improve the performance of boost's associative containers.
Boost.Unordered
by boost.org
About the improvements:
Boost.Unordered's new implementation of std::unordered_map (and multimap, set and multiset variants), and to extend its portfolio of available containers to offer faster, non-standard alternatives based on open addressing.
]]>The first goal of the project has been completed in time for Boost 1.80 (due August 2022). We describe here the technical innovations introduced in boost::unordered_map that makes it the fastest implementation of std::unordered_map on the market.
The 2022-06 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
P0009R17 | MDSPAN | Christian Trott | 2022-06-15 | 2022-06 | P0009R16 | LWG Library |
P0429R9 | A Standard flat_map | Zach Laine | 2022-06-17 | 2022-06 | P0429R8 | LWG Library |
P0447R20 | Introduction of std::hive to the standard library | Matt Bentley | 2022-06-14 | 2022-06 | P0447R19 | SG14 Low Latency,LEWG Library Evolution,All of WG21 |
P0792R10 | function_ref: a non-owning reference to a Callable | Vittorio Romeo | 2022-06-14 | 2022-06 | P0792R9 | LEWG Library Evolution,LWG Library |
P0957R8 | Proxy: A Polymorphic Programming Library | Mingxin Wang | 2022-06-15 | 2022-06 | P0957R7 | LEWG Library Evolution |
P1018R16 | C++ Language Evolution status pandemic edition 2022/02–2022/06 | JF Bastien | 2022-06-16 | 2022-06 | P1018R15 | EWG Evolution,All of WG21 |
P1144R6 | Object relocation in terms of move plus destroy | Arthur O'Dwyer | 2022-06-09 | 2022-06 | P1144R5 | EWG Evolution,LEWG Library Evolution |
P1222R4 | A Standard flat_set | Zach Laine | 2022-06-13 | 2022-06 | P1222R3 | LWG Library |
P1223R5 | find_last | Zach Laine | 2022-06-17 | 2022-06 | P1223R4 | LWG Library |
P1642R10 | Freestanding Library: Easy [utilities], [ranges], and [iterators] | Ben Craig | 2022-06-18 | 2022-06 | P1642R9 | CWG Core,LWG Library |
P1673R9 | A free function linear algebra interface based on the BLAS | Mark Hoemmen | 2022-06-14 | 2022-06 | P1673R8 | SG6 Numerics,LEWG Library Evolution |
P1689R5 | Format for describing dependencies of source files | Ben Boeckel | 2022-06-06 | 2022-06 | P1689R4 | SG15 Tooling,SG16 Unicode |
P1774R8 | Portable assumptions | Timur Doumler | 2022-06-14 | 2022-06 | P1774R7 | CWG Core |
P1839R5 | Accessing object representations | Timur Doumler | 2022-06-16 | 2022-06 | P1839R4 | CWG Core |
P1967R7 | #embed - a simple, scannable preprocessor-based resource acquisition method | JeanHeyd Meneide | 2022-06-23 | 2022-06 | P1967R6 | EWG Evolution |
P2167R2 | Improved Proposed Wording for LWG 2114 (contextually convertible to bool) | Daniel Krügler | 2022-06-15 | 2022-06 | P2167R1 | LWG Library |
P2278R4 | cbegin should always return a constant iterator | Barry Revzin | 2022-06-17 | 2022-06 | P2278R3 | LEWG Library Evolution |
P2490R3 | Zero-overhead exception stacktraces | Ed Catmur | 2022-06-20 | 2022-06 | LEWG Library Evolution | |
P2502R2 | std::generator: Synchronous Coroutine Generator for Ranges | Casey Carter | 2022-06-03 | 2022-06 | P2502R1 | LWG Library |
P2505R3 | Monadic Functions for std::expected | Jeff Garland | 2022-06-15 | 2022-06 | P2505R2 | LEWG Library Evolution,LWG Library |
P2505R4 | Monadic Functions for std::expected | Jeff Garland | 2022-06-17 | 2022-06 | P2505R3 | LEWG Library Evolution,LWG Library |
P2513R3 | char8_t Compatibility and Portability Fix | JeanHeyd Meneide | 2022-06-17 | 2022-06 | P2513R2 | EWG Evolution |
P2551R2 | Clarify intent of P1841 numeric traits | Matthias Kretz | 2022-06-22 | 2022-06 | P2551R1 | LEWG Library Evolution |
P2562R1 | constexpr Stable Sorting | Oliver Rosten | 2022-06-14 | 2022-06 | P2562R0 | LEWG Library Evolution,LWG Library |
P2570R0 | On side effects in contract annotations | Andrzej Krzemieński | 2022-06-08 | 2022-06 | SG21 Contracts | |
P2572R0 | std::format() fill character allowances | Tom Honermann | 2022-06-11 | 2022-06 | SG16 Unicode,LEWG Library Evolution | |
P2575R0 | 2022-05 Library Evolution Poll Outcomes | Bryce Adelstein Lelbach | 2022-06-22 | 2022-06 | LEWG Library Evolution | |
P2582R1 | Wording for class template argument deduction from inherited constructors | Timur Doumler | 2022-05-23 | 2022-06 | P2582R0 | CWG Core |
P2590R1 | Explicit lifetime management | Timur Doumler | 2022-06-15 | 2022-06 | P2590R0 | CWG Core,LWG Library |
P2591R1 | Concatenation of strings and string views | Giuseppe D'Angelo | 2022-06-02 | 2022-06 | P2591R0 | LEWG Library Evolution |
P2594R0 | Slides: Allow programmer to control and detect coroutine elision (P2477R2 Presentation)) | Chuanqi Xu | 2022-05-26 | 2022-06 | EWG Evolution,LEWG Library Evolution | |
P2596R0 | Improve std::hive::reshape | Arthur O'Dwyer | 2022-06-09 | 2022-06 | SG14 Low Latency,LEWG Library Evolution | |
P2598R0 | "Changing scope for lambda trailing-return-type" (P2036) should not be a DR | Ville Voutilainen | 2022-05-29 | 2022-06 | EWG Evolution,CWG Core | |
P2599R0 | mdspan::size_type should be index_type | Nevin Liber | 2022-06-07 | 2022-06 | LEWG Library Evolution | |
P2599R1 | mdspan::size_type should be index_type | Nevin Liber | 2022-06-13 | 2022-06 | P2599R0 | LEWG Library Evolution |
P2599R2 | index _type & size_type in mdspan | Nevin Liber | 2022-06-23 | 2022-06 | P2599R1 | LEWG Library Evolution,LWG Library |
P2600R0 | A minimal ADL restriction to avoid ill-formed template instantiation | Matthias Kretz | 2022-06-15 | 2022-06 | EWGI SG17: EWG Incubator,EWG Evolution | |
P2601R0 | To make redundant empty angle brackets optional for class template argument lists | Justin Cooke | 2022-06-23 | 2022-06 | EWG Evolution,CWG Core | |
P2602R0 | Poison Pills are Too Toxic | Barry Revzin | 2022-06-17 | 2022-06 | LEWG Library Evolution | |
P2603R0 | member function pointer to function pointer | Jarrad Waterloo | 2022-06-15 | 2022-06 | EWG Evolution,LEWG Library Evolution | |
P2604R0 | MDSPAN: rename pointer and contiguous | Christian Trott | 2022-06-15 | 2022-06 | LEWG Library Evolution,LWG Library | |
P2605R0 | SG16: Unicode meeting summaries 2022-01-12 through 2022-06-08 | Tom Honermann | 2022-06-15 | 2022-06 | SG16 Unicode | |
P2607R0 | Let alignas specify minimum alignment | Justin Cooke | 2022-06-23 | 2022-06 | CWG Core | |
P2608R0 | Allow multiple init-statements | Justin Cooke | 2022-06-23 | 2022-06 | EWG Evolution | |
P2609R0 | Relaxing Ranges Just A Smidge | John Eivind Helset | 2022-06-23 | 2022-06 | SG9 Ranges | |
P2613R0 | Add the missing `empty` to `mdspan` | Yihe Le | 2022-06-23 | 2022-06 | LEWG Library Evolution |
Over the past week, we ran our 2022 annual global C++ developer survey. Thank you to everyone who responded. As promised, here is a summary of the results:
CppDevSurvey-2022-summary.pdf
The results have now been forwarded to the C++ standards committee to help inform C++ evolution. Your feedback will be very helpful, and thank you again for your participation! Stay safe, everyone.
]]>The 2022-05 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4912 | 2022-11 Kona hybrid meeting information | Herb Sutter | 2022-05-05 | 2022-05 | All of WG21 | |
N4913 | PL22.16/WG21 agenda: 25 July 2022, Virtual Meeting | John Spicer | 2022-05-22 | 2022-05 | All of WG21 | |
P0543R1 | Saturation arithmetic | Jens Maurer | 2022-05-02 | 2022-05 | P0543R0 | SG6 Numerics,LEWG Library Evolution |
P0792R9 | function_ref: a non-owning reference to a Callable | Vittorio Romeo | 2022-05-20 | 2022-05 | P0792R8 | LEWG Library Evolution,LWG Library |
P0901R9 | Size feedback in operator new | Chris Kennelly | 2022-04-26 | 2022-05 | P0901R8 | CWG Core,LWG Library |
P1021R6 | Filling holes in Class Template Argument Deduction | Mike Spertus | 2022-05-22 | 2022-05 | P1021R5 | CWG Core |
P1255R7 | A view of 0 or 1 elements: views::maybe | Steve Downey | 2022-05-09 | 2022-05 | P1255R6 | SG9 Ranges |
P1642R9 | Freestanding Library: Easy [utilities], [ranges], and [iterators] | Ben Craig | 2022-05-15 | 2022-05 | P1642R8 | CWG Core,LWG Library |
P1673R8 | A free function linear algebra interface based on the BLAS | Mark Hoemmen | 2022-05-15 | 2022-05 | P1673R7 | SG6 Numerics,LEWG Library Evolution |
P1674R2 | Evolving a Standard C++ Linear Algebra Library from the BLAS | Mark Hoemmen | 2022-05-15 | 2022-05 | P1674R1 | LEWG Library Evolution |
P1774R7 | Portable assumptions | Timur Doumler | 2022-05-15 | 2022-05 | P1774R6 | CWG Core |
P1967R6 | #embed - a simple, scannable preprocessor-based resource acquisition method | JeanHeyd Meneide | 2022-05-02 | 2022-05 | P1967R5 | EWG Evolution |
P2286R8 | Formatting Ranges | Barry Revzin | 2022-05-16 | 2022-05 | P2286R7 | LEWG Library Evolution |
P2429R0 | Concepts Error Messages for Humans | Sy Brand | 2022-05-16 | 2022-05 | SG15 Tooling | |
P2445R1 | forward_like | Gašper Ažman | 2022-05-13 | 2022-05 | P2445R0 | LWG Library |
P2460R1 | Relax requirements on wchar_t to match existing practices | Corentin Jabot | 2022-05-12 | 2022-05 | P2460R0 | SG22 Compatability,CWG Core |
P2472R3 | make function_ref more functional | Jarrad J. Waterloo | 2022-05-12 | 2022-05 | P2472R2 | LEWG Library Evolution |
P2510R3 | Formatting pointers | Mark de Wever | 2022-05-22 | 2022-05 | P2510R2 | LWG Library |
P2513R2 | char8_t Compatibility and Portability Fix | JeanHeyd Meneide | 2022-05-12 | 2022-05 | P2513R1 | EWG Evolution |
P2542R2 | views::concat | Hui Xie | 2022-05-11 | 2022-05 | P2542R1 | SG9 Ranges,LEWG Library Evolution |
P2551R1 | Clarify intent of P1841 numeric traits | Matthias Kretz | 2022-05-09 | 2022-05 | P2551R0 | LEWG Library Evolution |
P2558R1 | Add @, $, and ` to the basic character set | Steve Downey | 2022-05-11 | 2022-05 | P2558R0 | SG16 Unicode,SG22 Compatability |
P2577R1 | C++ Modules Discovery in Prebuilt Library Releases | Daniel Ruoso | 2022-04-30 | 2022-05 | P2577R0 | SG15 Tooling |
P2577R2 | C++ Modules Discovery in Prebuilt Library Releases | Daniel Ruoso | 2022-05-17 | 2022-05 | P2577R1 | SG15 Tooling |
P2580R0 | Tuple protocol for C-style arrays T[N] | Paolo Di Giglio | 2022-05-22 | 2022-05 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P2581R0 | Specifying the Interoperability of Binary Module Interface Files | Daniel Ruoso | 2022-04-26 | 2022-05 | SG15 Tooling | |
P2582R0 | Wording for class template argument deduction from inherited constructors | Timur Doumler | 2022-05-15 | 2022-05 | CWG Core | |
P2584R0 | A More Composable from_chars | Corentin Jabot | 2022-05-12 | 2022-05 | LEWG Library Evolution | |
P2585R0 | Improving default container formatting | Barry Revzin | 2022-05-15 | 2022-05 | LEWG Library Evolution | |
P2587R0 | to_string or not to_string | Victor Zverovich | 2022-05-14 | 2022-05 | SG16 Unicode,LEWGI SG18: LEWG Incubator | |
P2588R0 | Relax std::barrier phase completion step guarantees | Gonzalo Brito | 2022-05-22 | 2022-05 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P2589R0 | static operator[] | Nevin Liber | 2022-05-12 | 2022-05 | EWG Evolution | |
P2590R0 | Explicit lifetime management | Timur Doumler | 2022-05-16 | 2022-05 | CWG Core,LWG Library | |
P2591R0 | Concatenation of strings and string views | Giuseppe D'Angelo | 2022-05-19 | 2022-05 | LEWG Library Evolution | |
P2592R0 | Hashing support for std::chrono value classes | Giuseppe D'Angelo | 2022-05-20 | 2022-05 | LEWG Library Evolution | |
P2593R0 | Allowing static_assert(false) | Barry Revzin | 2022-05-21 | 2022-05 | EWG Evolution |
The 2022-04 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
P0429R8 | A Standard flat_map | Zach Laine | 2022-04-18 | 2022-04 | P0429R7 | LWG Library |
P0957R7 | Proxy: A Polymorphic Programming Library | Mingxin Wang | 2022-04-19 | 2022-04 | P0957R6 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution |
P1061R2 | Structured Bindings can introduce a Pack | Barry Revzin | 2022-04-22 | 2022-04 | P1061R1 | EWG Evolution |
P1169R4 | static operator() | Barry Revzin | 2022-04-10 | 2022-04 | P1169R3 | CWG Core |
P1222R3 | A Standard flat_set | Zach Laine | 2022-04-18 | 2022-04 | P1222R2 | LWG Library |
P1223R4 | find_last | Zach Laine | 2022-04-15 | 2022-04 | P1223R3 | LEWG Library Evolution,LWG Library |
P1467R9 | Extended floating-point types and standard names | David Olsen | 2022-04-22 | 2022-04 | P1467R8 | CWG Core,LWG Library |
P1642R8 | Freestanding Library: Easy [utilities], [ranges], and [iterators] | Ben Craig | 2022-04-13 | 2022-04 | P1642R7 | LWG Library |
P1673R7 | A free function linear algebra interface based on the BLAS | Mark Hoemmen | 2022-04-14 | 2022-04 | P1673R6 | LEWG Library Evolution |
P1674R1 | Evolving a Standard C++ Linear Algebra Library from the BLAS | Mark Hoemmen | 2022-04-14 | 2022-04 | P1674R0 | LEWG Library Evolution |
P1684R2 | mdarray: An Owning Multidimensional Array Analog of mdspan | Christian Trott | 2022-04-24 | 2022-04 | P1684R1 | LEWG Library Evolution |
P1967R5 | #embed - a simple, scannable preprocessor-based resource acquisition method | JeanHeyd Meneide | 2022-04-13 | 2022-04 | P1967R4 | EWG Evolution |
P2071R2 | Named universal character escapes | Tom Honermann | 2022-03-27 | 2022-04 | P2071R1 | CWG Core |
P2093R14 | Formatted output | Victor Zverovich | 2022-03-25 | 2022-04 | P2093R13 | LWG Library |
P2174R1 | Compound Literals | Zhihao Yuan | 2022-04-15 | 2022-04 | P2174R0 | EWG Evolution |
P2198R5 | Freestanding Feature-Test Macros and Implementation-Defined Extensions | Ben Craig | 2022-04-13 | 2022-04 | P2198R4 | LWG Library |
P2266R3 | Simpler implicit move | Arthur O'Dwyer | 2022-03-26 | 2022-04 | P2266R2 | CWG Core |
P2278R3 | cbegin should always return a constant iterator | Barry Revzin | 2022-04-11 | 2022-04 | P2278R2 | LEWG Library Evolution |
P2280R4 | Using unknown references in constant expressions | Barry Revzin | 2022-04-10 | 2022-04 | P2280R3 | CWG Core |
P2286R7 | Formatting Ranges | Barry Revzin | 2022-04-22 | 2022-04 | P2286R6 | LEWG Library Evolution |
P2300R5 | `std::execution` | Michał Dominiak | 2022-04-22 | 2022-04 | P2300R4 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2302R4 | std::ranges::contains | Christopher Di Bella | 2022-04-16 | 2022-04 | P2302R3 | All of WG21 |
P2305R5 | Type inference for object definitions | Jens Gustedt | 2022-04-08 | 2022-04 | P2305R4 | SG22 Compatability |
P2322R6 | ranges::fold | Barry Revzin | 2022-04-22 | 2022-04 | P2322R5 | LEWG Library Evolution |
P2400R3 | Library Evolution Report: 2021-09-28 to 2022-01-25 | Bryce Adelstein Lelbach | 2022-04-21 | 2022-04 | P2400R2 | All of WG21 |
P2408R5 | Ranges iterators as inputs to non-Ranges algorithms | David Olsen | 2022-04-22 | 2022-04 | P2408R4 | LWG Library |
P2472R2 | make function_ref more functional | Jarrad J. Waterloo | 2022-04-14 | 2022-04 | P2472R1 | LEWG Library Evolution |
P2505R2 | Monadic Functions for std::expected | Jeff Garland | 2022-04-15 | 2022-04 | P2505R1 | LEWG Library Evolution,LWG Library |
P2510R2 | Formatting pointers | Mark de Wever | 2022-04-14 | 2022-04 | P2510R1 | LWG Library |
P2538R1 | ADL-proof std::projected | Arthur O'Dwyer | 2022-04-01 | 2022-04 | P2538R0 | LEWG Library Evolution,LWG Library |
P2539R1 | Should the output of std::print to a terminal be synchronized with the underlying stream? | Victor Zverovich | 2022-04-11 | 2022-04 | P2539R0 | LEWG Library Evolution |
P2542R1 | views::concat | Hui Xie | 2022-03-28 | 2022-04 | P2542R0 | SG9 Ranges,LEWG Library Evolution |
P2546R1 | Debugging Support | René Ferdinand Rivera Morell | 2022-04-10 | 2022-04 | P2546R0 | LEWG Library Evolution |
P2559R0 | Plan for Concurrency Technical Specification Version 2 | Bryce Adelstein Lelbach | 2022-04-01 | 2022-04 | SG1 Concurrency and Parallelism,EWG Evolution,LEWG Library Evolution | |
P2573R0 | = delete("should have a reason"); | Yihe Li | 2022-04-14 | 2022-04 | EWGI SG17: EWG Incubator,EWG Evolution | |
P2574R0 | 2022-05 Library Evolution Polls | Bryce Adelstein Lelbach | 2022-04-22 | 2022-04 | LEWG Library Evolution | |
P2576R0 | The constexpr specifier for object definitions | Jens Gustedt | 2022-04-08 | 2022-04 | SG22 Compatability | |
P2577R0 | C++ Modules Discovery in Prebuilt Library Releases | Daniel Ruoso | 2022-04-11 | 2022-04 | SG15 Tooling |
The 2022-03 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4908 | Working Draft, C++ Extensions for Library Fundamentals, Version 3 | Thomas Köppe | 2022-02-19 | 2022-03 | All of WG21 | |
N4909 | Editor's Report: C++ Extensions for Library Fundamentals, Version 3 | Thomas Köppe | 2022-02-19 | 2022-03 | All of WG21 | |
N4910 | Working Draft, Standard for Programming Language C++ | Thomas Köppe | 2022-03-17 | 2022-03 | All of WG21 | |
N4911 | Editors' Report - Programming Languages - C++ | Thomas Köppe | 2022-03-17 | 2022-03 | All of WG21 | |
P0009R16 | MDSPAN | Christian Trott | 2022-03-15 | 2022-03 | P0009R15 | LWG Library |
P0957R6 | Proxy: A Polymorphic Programming Library | Mingxin Wang | 2022-03-15 | 2022-03 | P0957R5 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution |
P1083R5 | Move resource_adaptor from Library TS to the C++ WP | Pablo Halpern | 2022-02-24 | 2022-03 | P1083R4 | LEWG Library Evolution |
P1684R1 | mdarray: An Owning Multidimensional Array Analog of mdspan | Christian Trott | 2022-03-20 | 2022-03 | P1684R0 | LEWG Library Evolution |
P1708R6 | Simple Statistical Functions | Richard Dosselman | 2022-03-15 | 2022-03 | P1708R5 | SG6 Numerics,SG19 Machine Learning,LEWG Library Evolution |
P1839R4 | Accessing Object Representations | Krystian Stasiowski | 2022-03-16 | 2022-03 | P1839R3 | CWG Core |
P2264R3 | Make assert() macro user friendly for C and C++ | Peter Sommerlad | 2022-02-27 | 2022-03 | P2264R2 | SG22 Compatability,LEWG Library Evolution |
P2290R3 | Delimited escape sequences | Corentin Jabot | 2022-02-25 | 2022-03 | P2290R2 | SG22 Compatability,CWG Core |
P2465R3 | Standard Library Modules std and std.compat | Stephan T. Lavavej | 2022-03-11 | 2022-03 | P2465R2 | CWG Core,LWG Library |
P2510R1 | Formatting pointers | Mark de Wever | 2022-03-20 | 2022-03 | P2510R0 | LWG Library |
P2511R1 | Beyond operator(): NTTP callables in type-erased call wrappers | Zhihao Yuan | 2022-03-15 | 2022-03 | P2511R0 | LEWG Library Evolution |
P2521R2 | Contract support -- Working Paper | Andrzej Krzemieński | 2022-03-15 | 2022-03 | P2521R1 | SG21 Contracts |
P2539R0 | Should the output of std::print to a terminal be synchronized with the underlying stream? | Victor Zverovich | 2022-03-11 | 2022-03 | LEWG Library Evolution | |
P2540R1 | Empty Product for certain Views | Steve Downey | 2022-03-14 | 2022-03 | P2540R0 | SG9 Ranges,LEWG Library Evolution |
P2553R1 | Make mdspan size_type controllable | Christian Trott | 2022-03-15 | 2022-03 | P2553R0 | LEWG Library Evolution,LWG Library |
P2555R1 | Naming improvements for std::execution | Jens Maurer | 2022-03-13 | 2022-03 | P2555R0 | LEWG Library Evolution |
P2558R0 | Add @, $, and ` to the basic character set | Steve Downey | 2022-03-16 | 2022-03 | SG16 Unicode,EWGI SG17: EWG Incubator,SG22 Compatability | |
P2560R0 | Comparing value- and type-based reflection | Matúš Chochlı́k | 2022-02-23 | 2022-03 | SG7 Reflection | |
P2562R0 | constexpr Stable Sorting | Oliver Rosten | 2022-03-09 | 2022-03 | LEWG Library Evolution,LWG Library | |
P2564R0 | consteval needs to propagate up | Barry Revzin | 2022-03-14 | 2022-03 | EWG Evolution | |
P2565R0 | Supporting User-Defined Attributes | Bret Brown | 2022-03-15 | 2022-03 | SG15 Tooling | |
P2568R0 | Proposal of std::map::at_ptr | Andrew Tomazos | 2022-03-18 | 2022-03 | LEWG Library Evolution | |
P2569R0 | *_HAS_SUBNORM==0 implies what? | Fred Tydeman | 2022-03-18 | 2022-03 | SG6 Numerics,SG22 Compatability |
Should the C++ standard change to include its ecosystem?
Open letter for new C++ scope/charter
by René Ferdinand Rivera Morell
From the letter:
We are writing asking for consideration towards changes to the wording of the "ISO/IEC JTC1/SC22/WG21 STATEMENT OF SCOPE". Which is currently stated as:
Development and maintenance of ISO/IEC Standards, Technical Specifications, and Technical Reports related to the programming language C++.
]]>Reddit discussion here.
The 2022-02 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4903 | PL22.16/WG21 agenda: 7 February 2022, Virtual Meeting | John Spicer | 2022-01-24 | 2022-02 | All of WG21 | |
N4904 | WG21 admin telecon meetings: 2022 summer and autumn (revision 1) | Herb Sutter | 2022-01-24 | 2022-02 | All of WG21 | |
N4905 | WG21 2022-01 Admin telecon minutes | Nina Ranns | 2022-02-01 | 2022-02 | All of WG21 | |
N4906 | Transactional Memory TS2 | Michael Wong | 2022-02-18 | 2022-02 | All of WG21 | |
N4907 | WG21 2022-02 Virtual Meeting Minutes of Meeting | Nina Ranns | 2022-02-17 | 2022-02 | All of WG21 | |
P0009R15 | MDSPAN | Christian Trott | 2022-02-14 | 2022-02 | P0009R14 | LWG Library |
P0323R12 | std::expected | JF Bastien | 2022-02-21 | 2022-02 | P0323R11 | LWG Library |
P0447R19 | Introduction of std::hive to the standard library | Matt Bentley | 2022-02-17 | 2022-02 | P0447R18 | SG14 Low Latency,LEWG Library Evolution,All of WG21 |
P0561R6 | An RAII Interface for Deferred Reclamation | Geoffrey Romer | 2022-02-02 | 2022-02 | P0561R5 | LWG Library |
P0792R7 | function_ref: a non-owning reference to a Callable | Vittorio Romeo | 2022-02-14 | 2022-02 | P0792R6 | LEWG Library Evolution,LWG Library |
P0792R8 | function_ref: a non-owning reference to a Callable | Vittorio Romeo | 2022-02-16 | 2022-02 | P0792R7 | LEWG Library Evolution,LWG Library |
P0957R5 | Proxy: A Polymorphic Programming Library | Mingxin Wang | 2022-02-14 | 2022-02 | P0957R4 | LEWGI SG18: LEWG Incubator |
P1018R15 | C++ Language Evolution status pandemic edition 2022/01–2022/02 | JF Bastien | 2022-02-14 | 2022-02 | P1018R14 | EWG Evolution,All of WG21 |
P1202R4 | Asymmetric Fences | David Goldblatt | 2022-02-14 | 2022-02 | P1202R3 | LEWG Library Evolution,LWG Library |
P1223R3 | find_last | Zach Laine | 2022-02-14 | 2022-02 | P1223R2 | LEWG Library Evolution,LWG Library |
P1478R7 | Byte-wise atomic memcpy | Hans Boehm | 2022-02-05 | 2022-02 | P1478R6 | LWG Library |
P1664R7 | reconstructible_range - a concept for putting ranges back together | JeanHeyd Meneide | 2022-02-15 | 2022-02 | P1664R6 | SG9 Ranges,LEWG Library Evolution |
P1774R6 | Portable assumptions | Timur Doumler | 2022-02-15 | 2022-02 | P1774R5 | CWG Core |
P1839R3 | Accessing Object Representations | Krystian Stasiowski | 2022-02-18 | 2022-02 | P1839R2 | CWG Core |
P1841R3 | Wording for Individually Specializable Numeric Traits | Walter E Brown | 2022-02-14 | 2022-02 | P1841R2 | LWG Library |
P1885R10 | Naming Text Encodings to Demystify Them | Corentin Jabot | 2022-02-14 | 2022-02 | P1885R9 | LEWG Library Evolution |
P2093R13 | Formatted output | Victor Zverovich | 2022-02-09 | 2022-02 | P2093R12 | LWG Library |
P2214R2 | A Plan for C++23 Ranges | Barry Revzin | 2022-02-18 | 2022-02 | P2214R1 | LEWG Library Evolution |
P2416R2 | Presentation of requirements in the standard library | Jens Maurer | 2022-02-14 | 2022-02 | P2416R1 | LWG Library |
P2438R2 | std::string::substr() && | Federico Kircheis | 2022-02-04 | 2022-02 | P2438R1 | LWG Library |
P2441R2 | views::join_with | Barry Revzin | 2022-01-28 | 2022-02 | P2441R1 | LEWG Library Evolution |
P2446R2 | views::as_rvalue | Barry Revzin | 2022-02-14 | 2022-02 | P2446R1 | LEWG Library Evolution |
P2448R2 | Relaxing some constexpr restrictions | Barry Revzin | 2022-01-27 | 2022-02 | P2448R1 | CWG Core |
P2452R0 | 2021 October Library Evolution and Concurrency Polls on Networking and Executors | Bryce Adelstein Lelbach | 2022-02-15 | 2022-02 | LEWG Library Evolution | |
P2453R0 | 2021 October Library Evolution Poll Outcomes | Bryce Adelstein Lelbach | 2022-02-15 | 2022-02 | SG4 Networking,LEWG Library Evolution | |
P2458R1 | 2022 January Library Evolution Polls | Bryce Adelstein Lelbach | 2022-01-26 | 2022-02 | P2458R0 | LEWG Library Evolution |
P2459R0 | 2022 January Library Evolution Poll Outcomes | Bryce Adelstein Lelbach | 2022-02-15 | 2022-02 | LEWG Library Evolution | |
P2465R2 | Standard Library Modules std and std.compat | Stephan T. Lavavej | 2022-02-02 | 2022-02 | P2465R1 | CWG Core,LWG Library |
P2467R1 | Support exclusive mode for fstreams | Jonathan Wakely | 2022-02-17 | 2022-02 | P2467R0 | LWG Library |
P2472R1 | make function_ref more functional | Jarrad J. Waterloo | 2022-02-15 | 2022-02 | P2472R0 | LEWG Library Evolution |
P2495R0 | Interfacing stringstreams with string_view | Michael Hava | 2022-02-13 | 2022-02 | LEWG Library Evolution | |
P2502R1 | std::generator: Synchronous Coroutine Generator for Ranges | Casey Carter | 2022-01-25 | 2022-02 | P2502R0 | LEWG Library Evolution |
P2505R1 | Monadic Functions for std::expected | Jeff Garland | 2022-02-15 | 2022-02 | P2505R0 | LEWG Library Evolution,LWG Library |
P2506R0 | std::lazy: a coroutine for deferred execution | Casey Carter | 2022-02-02 | 2022-02 | LEWG Library Evolution | |
P2513R1 | char8_t Compatibility and Portability Fix | JeanHeyd Meneide | 2022-02-14 | 2022-02 | P2513R0 | EWG Evolution |
P2521R1 | Contract support -- Working Paper | Andrzej Krzemieński | 2022-02-15 | 2022-02 | P2521R0 | SG21 Contracts |
P2528R0 | C/C++ Identifier Security using Unicode Standard Annex 39 | Reini Urban | 2022-01-22 | 2022-02 | SG16 Unicode,EWG Evolution,CWG Core | |
P2529R0 | generator should have T&& reference_type | Mathias Stearn | 2022-01-25 | 2022-02 | LEWG Library Evolution | |
P2530R0 | Why Hazard Pointers should be in C++26 | Maged Michael | 2022-02-14 | 2022-02 | SG1 Concurrency and Parallelism | |
P2531R0 | C++ Standard Library Issues to be moved in Virtual Plenary, Feb. 2022 | Jonathan Wakely | 2022-01-31 | 2022-02 | All of WG21 | |
P2532R0 | Removing exception_ptr from the Receiver Concepts | Eric Niebler | 2022-02-01 | 2022-02 | LEWG Library Evolution | |
P2533R0 | Core Language Working Group "ready" Issues for the February, 2022 Meeting | William M. (Mike) Miller | 2022-02-21 | 2022-02 | All of WG21 | |
P2534R0 | Slides: function_ref in the wild (P0792R7 presentation) | Zhihao Yuan | 2022-02-16 | 2022-02 | LEWG Library Evolution | |
P2535R0 | Message fences | Olivier Giroux | 2022-02-02 | 2022-02 | SG1 Concurrency and Parallelism | |
P2536R0 | Distributing C++ Module Libraries with dependencies json files. | Olga Arkhipova | 2022-02-03 | 2022-02 | SG15 Tooling | |
P2537R0 | Relax va_start Requirements to Match C | JeanHeyd Meneide | 2022-02-14 | 2022-02 | LEWG Library Evolution | |
P2538R0 | ADL-proof std::projected | Arthur O'Dwyer | 2022-02-15 | 2022-02 | LEWG Library Evolution,LWG Library | |
P2540R0 | Empty Product for certain Views | Steve Downey | 2022-02-15 | 2022-02 | SG9 Ranges | |
P2541R0 | Consider renaming remove_quals | Corentin Jabot | 2022-02-15 | 2022-02 | SG22 Compatability | |
P2542R0 | views::concat | Hui Xie | 2022-02-18 | 2022-02 | SG9 Ranges,LEWG Library Evolution | |
P2544R0 | C++ exceptions are becoming more and more problematic | Thomas Neumann | 2022-02-12 | 2022-02 | EWGI SG17: EWG Incubator | |
P2545R0 | Why RCU Should be in C++26 | Paul E. McKenney | 2022-02-14 | 2022-02 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P2546R0 | Debugging Support | René Ferdinand Rivera Morell | 2022-02-14 | 2022-02 | SG15 Tooling,LEWG Library Evolution | |
P2547R0 | Language support for customisable functions | Lewis Baker | 2022-02-15 | 2022-02 | EWG Evolution | |
P2549R0 | std::unexpected should have error() as member accessor | Yihe Li | 2022-02-13 | 2022-02 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P2550R0 | ranges::copy should say output_iterator somewhere | Barry Revzin | 2022-02-16 | 2022-02 | LWG Library | |
P2551R0 | Clarify intent of P1841 numeric traits | Matthias Kretz | 2022-02-14 | 2022-02 | LEWG Library Evolution | |
P2552R0 | On the ignorability of standard attributes | Timur Doumler | 2022-02-16 | 2022-02 | EWG Evolution | |
P2553R0 | Make mdspan size_type controllable | Christian Trott | 2022-02-14 | 2022-02 | LEWG Library Evolution | |
P2554R0 | C-Array Interoperability of MDSpan | Christian Trott | 2022-02-14 | 2022-02 | LEWG Library Evolution | |
P2555R0 | Naming improvements for std::execution | Jens Maurer | 2022-02-15 | 2022-02 | LEWG Library Evolution | |
P2557R0 | WG21 2022-02 Virtual Meeting Record of Discussion | Nina Ranns | 2022-02-17 | 2022-02 | All of WG21 |
The 2022-01 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
P0447R18 | Introduction of std::hive to the standard library | Matt Bentley | 2021-12-21 | 2022-01 | P0447R17 | SG14 Low Latency,LEWG Library Evolution,All of WG21 |
P0792R6 | function_ref: a non-owning reference to a Callable | Vittorio Romeo | 2022-01-16 | 2022-01 | P0792R5 | LEWG Library Evolution,LWG Library |
P1018R14 | C++ Language Evolution status pandemic edition 2021/09–2022/01 | JF Bastien | 2022-01-13 | 2022-01 | P1018R13 | EWG Evolution,All of WG21 |
P1083R4 | Move resource_adaptor from Library TS to the C++ WP | Pablo Halpern | 2022-01-01 | 2022-01 | P1083R3 | LEWG Library Evolution |
P1206R7 | Conversions from ranges to containers | Corentin Jabot | 2022-01-21 | 2022-01 | P1206R6 | LWG Library |
P1240R2 | Scalable Reflection | Daveed Vandevoorde | 2022-01-14 | 2022-01 | P1240R1 | SG7 Reflection |
P1664R6 | reconstructible_range - a concept for putting ranges back together | JeanHeyd Meneide | 2021-12-25 | 2022-01 | P1664R5 | SG9 Ranges,LEWG Library Evolution |
P1841R2 | Wording for Individually Specializable Numeric Traits | Walter E Brown | 2022-01-14 | 2022-01 | P1841R1 | LWG Library |
P1854R3 | Conversion to literal encoding should not lead to loss of meaning | Corentin Jabot | 2022-01-15 | 2022-01 | P1854R2 | EWG Evolution |
P1885R9 | Naming Text Encodings to Demystify Them | Corentin Jabot | 2022-01-15 | 2022-01 | P1885R8 | LEWG Library Evolution |
P1899R2 | stride_view | Christopher Di Bella, Tim Song | 2021-12-23 | 2022-01 | P1899R1 | SG9 Ranges,LEWG Library Evolution |
P2000R3 | Direction for ISO C++ | Daveed Vandevoorde | 2022-01-06 | 2022-01 | P2000R2 | All of WG21,Direction Group |
P2079R2 | System execution context | Lee Howes | 2022-01-14 | 2022-01 | P2079R1 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2093R12 | Formatted output | Victor Zverovich | 2021-12-20 | 2022-01 | P2093R11 | LWG Library |
P2165R3 | Compatibility between tuple, pair and tuple-like objects | Corentin Jabot | 2022-01-18 | 2022-01 | P2165R2 | LEWG Library Evolution |
P2248R4 | Enabling list-initialization for algorithms | Giuseppe D'Angelo | 2022-01-03 | 2022-01 | P2248R3 | SG6 Numerics,SG9 Ranges,LEWG Library Evolution |
P2249R4 | Mixed comparisons for smart pointers | Giuseppe D'Angelo | 2022-01-11 | 2022-01 | P2249R3 | LEWG Library Evolution |
P2286R5 | Formatting Ranges | Barry Revzin | 2022-01-15 | 2022-01 | P2286R4 | LEWG Library Evolution |
P2286R6 | Formatting Ranges | Barry Revzin | 2022-01-19 | 2022-01 | P2286R5 | LEWG Library Evolution |
P2300R4 | `std::execution` | Michał Dominiak | 2022-01-19 | 2022-01 | P2300R3 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2302R3 | std::ranges::contains | Christopher Di Bella | 2022-01-19 | 2022-01 | P2302R2 | LEWG Library Evolution |
P2303R4 | Basic lambdas for C | Jens Gustedt | 2021-12-24 | 2022-01 | P2303R3 | SG22 Compatability |
P2304R3 | Improve type generic programming | Jens Gustedt | 2021-12-24 | 2022-01 | P2304R2 | SG22 Compatability |
P2305R4 | Type inference for variable definitions and function returns | Jens Gustedt | 2021-12-24 | 2022-01 | P2305R3 | SG22 Compatability |
P2306R3 | Type-generic lambdas | Jens Gustedt | 2021-12-24 | 2022-01 | P2306R2 | SG22 Compatability |
P2310R1 | Revise spelling of keywords | Jens Gustedt | 2021-12-31 | 2022-01 | P2310R0 | SG22 Compatability |
P2311R2 | Make false and true first-class language features | Jens Gustedt | 2021-12-30 | 2022-01 | P2311R1 | SG22 Compatability |
P2324R2 | Labels at the end of compound statements (C compatibility) | Martin Uecker | 2022-01-14 | 2022-01 | P2324R1 | SG22 Compatability,CWG Core |
P2363R3 | Extending associative containers with the remaining heterogeneous overloads | Konstantin Boyarinov | 2022-01-19 | 2022-01 | P2363R2 | LEWG Library Evolution |
P2370R2 | Stacktrace from exception | Andrei Nekrashevich | 2022-01-11 | 2022-01 | P2370R1 | LEWG Library Evolution,LWG Library |
P2375R1 | Generalisation of nth_element to a range of nths | Johan Lundberg | 2022-01-14 | 2022-01 | P2375R0 | SG9 Ranges,EWG Evolution |
P2404R1 | Move-only types for equality_comparable_with, totally_ordered_with, and three_way_comparable_with | Justin Bassett | 2021-12-24 | 2022-01 | P2404R0 | SG9 Ranges,LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library |
P2404R2 | Move-only types for equality_comparable_with, totally_ordered_with, and three_way_comparable_with | Justin Bassett | 2022-01-19 | 2022-01 | P2404R1 | SG9 Ranges,LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library |
P2424R0 | Abbreviated Parameters | Mihail Naydenov | 2022-01-14 | 2022-01 | EWGI SG17: EWG Incubator | |
P2437R1 | Support for #warning | Aaron Ballman | 2022-01-13 | 2022-01 | P2437R0 | CWG Core |
P2447R2 | std::span and the missing constructor | Federico Kircheis | 2022-01-21 | 2022-01 | P2447R1 | LEWG Library Evolution |
P2448R1 | Relaxing some constexpr restrictions | Barry Revzin | 2022-01-15 | 2022-01 | P2448R0 | CWG Core |
P2457R0 | 2021 December Library Evolution Poll Outcomes | Bryce Adelstein Lelbach | 2022-01-14 | 2022-01 | LEWG Library Evolution | |
P2458R0 | 2022 January Library Evolution Polls | Bryce Adelstein Lelbach | 2022-01-20 | 2022-01 | LEWG Library Evolution | |
P2468R2 | The Equality Operator You Are Looking For | Barry Revzin, Bjarne Stroustrup, Cameron DaCamara, Daveed Vandevoorde, Gabriel Dos Reis, Herb Sutter, Jason Merrill, Jonathan Caves, Richard Smith, Ville Voutilainen | 2022-01-14 | 2022-01 | P2468R1 | EWG Evolution,CWG Core |
P2474R1 | views::repeat | Michał Dominiak | 2022-01-18 | 2022-01 | P2474R0 | SG9 Ranges,LEWG Library Evolution |
P2494R1 | Relaxing range adaptors to allow for move only types | Michał Dominiak | 2022-01-17 | 2022-01 | P2494R0 | SG9 Ranges,LEWG Library Evolution |
P2498R1 | Forward compatibility of text_encoding with additional encoding registries | Peter Brett | 2022-01-14 | 2022-01 | P2498R0 | SG16 Unicode,LEWG Library Evolution |
P2507R1 | Limit [[assume]] to conditional-expressions | Peter Brett | 2022-01-04 | 2022-01 | P2507R0 | EWG Evolution |
P2508R1 | Exposing std::basic-format-string | Barry Revzin | 2022-01-18 | 2022-01 | P2508R0 | LEWG Library Evolution |
P2511R0 | Beyond operator(): NTTP callables in type-erased call wrappers | Zhihao Yuan | 2022-01-14 | 2022-01 | LEWG Library Evolution | |
P2512R0 | SG16: Unicode meeting summaries 2021-06-09 through 2021-12-15 | Tom Honermann | 2021-12-23 | 2022-01 | SG16 Unicode | |
P2513R0 | char8_t Compatibility and Portability Fixes | JeanHeyd Meneide | 2022-01-09 | 2022-01 | SG16 Unicode,EWG Evolution | |
P2514R0 | std::breakpoint | René Ferdinand Rivera Morell | 2022-01-02 | 2022-01 | SG15 Tooling,LEWG Library Evolution | |
P2515R0 | std::is_debugger_present | René Ferdinand Rivera Morell | 2022-01-02 | 2022-01 | SG15 Tooling,LEWG Library Evolution | |
P2516R0 | string_view is implicitly convertible from what? | Victor Zverovich | 2022-01-07 | 2022-01 | LEWG Library Evolution | |
P2517R0 | Add a conditional noexcept specification to std::apply | Hewill Kang | 2022-01-14 | 2022-01 | LEWG Library Evolution | |
P2520R0 | move_iterator should be a random access iterator | Barry Revzin | 2022-01-15 | 2022-01 | LEWG Library Evolution | |
P2521R0 | Contract support -- Working Paper | Andrzej Krzemieński | 2022-01-17 | 2022-01 | SG21 Contracts | |
P2523R0 | Request for re-inclusion of std::hive proposal in C++23 | Matt Bentley | 2022-01-14 | 2022-01 | SG14 Low Latency,LEWG Library Evolution | |
P2524R0 | SG14: Low Latency/Games/Embedded/Finance/Simulation 2020/12/09-2022/01/12 | Michael Wong | 2022-01-15 | 2022-01 | SG14 Low Latency | |
P2525R0 | SG19: Machine Learning Meeting Minutes 2020/12/10-2022/01/13 | Michael Wong | 2022-01-15 | 2022-01 | SG19 Machine Learning | |
P2527R0 | std::variant_alternative_index and std::variant_alternative_index_v | Alex Christensen | 2022-01-18 | 2022-01 | LEWGI SG18: LEWG Incubator |
10th edition of “C++ at the end”!
C++ at the end of 2021 @C++ Stories
by Bartlomiej Filipek
About the blog
]]>See what happened this year in the C++ World!
New features, plans for the language, updated tools and compilers, conferences, books, and more!
What was the most important event this year? The pandemic? C++20 adoption? Ongoing work for C++23 or something else?
Did you follow?
2021 C++ Standardization Highlights
by Botond Ballo
From the article:
]]>The ISO C++ Standards Committee (also known as WG21) has not met in person since its February 2020 meeting in Prague, which I wrote about here.
However, the committee and its subgroups have continued their work through remote collaboration, and a number of notable proposals have been adopted into C++23, the next language version, in this way, with many others in the pipeline.
In this post, I will outline some of the highlights of the committee’s work in 2021. (The post will also cover some material from the latter part of 2020, a period when remote collaboration was already underway but which I have not covered in any previous post.) I’ve been less involved in the committee than before, so this post will not be as comprehensive as my previous trip reports, but I hope to share the proposals I’ve found most notable...
The 2021-12 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
P0493R3 | Atomic maximum/minimum | Al Grant | 2021-12-17 | 2021-12 | P0493R2 | SG1 Concurrency and Parallelism |
P1467R8 | Extended floating-point types and standard names | David Olsen | 2021-12-16 | 2021-12 | P1467R7 | EWG Evolution,LEWG Library Evolution |
P1673R6 | A free function linear algebra interface based on the BLAS | Mark Hoemmen | 2021-12-14 | 2021-12 | P1673R5 | LEWG Library Evolution |
P1774R5 | Portable assumptions | Timur Doumler | 2021-12-16 | 2021-12 | P1774R4 | EWG Evolution,CWG Core |
P2093R11 | Formatted output | Victor Zverovich | 2021-12-06 | 2021-12 | P2093R10 | LWG Library |
P2152R1 | Querying the alignment of an object | Inbal Levi | 2021-11-30 | 2021-12 | P2152R0 | SG22 Compatability,EWG Evolution |
P2173R1 | Attributes on Lambda-Expressions | Daveed Vandevoorde | 2021-12-09 | 2021-12 | P2173R0 | All of WG21 |
P2198R4 | Freestanding Feature-Test Macros and Implementation-Defined Extensions | Ben Craig | 2021-12-13 | 2021-12 | P2198R3 | SG10 Feature Test,LEWG Library Evolution |
P2248R3 | Enabling list-initialization for algorithms | Giuseppe D'Angelo | 2021-12-17 | 2021-12 | P2248R2 | SG6 Numerics,SG9 Ranges,LEWG Library Evolution |
P2283R2 | constexpr for specialized memory algorithms | Michael Schellenberger Costa | 2021-11-25 | 2021-12 | P2283R1 | LEWG Library Evolution |
P2286R4 | Formatting Ranges | Barry Revzin | 2021-12-17 | 2021-12 | P2286R3 | LEWG Library Evolution |
P2300R3 | `std::execution` | Michał Dominiak | 2021-12-05 | 2021-12 | P2300R2 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2302R2 | std::ranges::contains | Christopher Di Bella | 2021-12-12 | 2021-12 | P2302R1 | SG9 Ranges |
P2329R0 | Move, Copy, and Locality at Scale | Pablo Halpern | 2021-12-13 | 2021-12 | All of WG21 | |
P2363R2 | Extending associative containers with the remaining heterogeneous overloads | Konstantin Boyarinov | 2021-12-07 | 2021-12 | P2363R1 | LEWG Library Evolution |
P2374R2 | views::cartesian_product | Sy Brand | 2021-12-13 | 2021-12 | P2374R1 | SG9 Ranges,LEWG Library Evolution |
P2374R3 | views::cartesian_product | Sy Brand | 2021-12-13 | 2021-12 | P2374R2 | LEWG Library Evolution |
P2387R3 | Pipe support for user-defined range adaptors | Barry Revzin | 2021-12-17 | 2021-12 | P2387R2 | LEWG Library Evolution |
P2416R1 | Presentation of requirements in the standard library | Jens Maurer | 2021-12-15 | 2021-12 | P2416R0 | LWG Library |
P2438R1 | std::string::substr() && | Federico Kircheis | 2021-11-30 | 2021-12 | P2438R0 | LEWG Library Evolution |
P2440R1 | ranges::iota, ranges::shift_left, and ranges::shift_right | Tim Song | 2021-12-05 | 2021-12 | P2440R0 | LWG Library |
P2442R1 | Windowing range adaptors: views::chunk and views::slide | Tim Song | 2021-12-05 | 2021-12 | P2442R0 | LWG Library |
P2447R1 | std::span and the missing constructor | Federico Kircheis | 2021-12-17 | 2021-12 | P2447R0 | LEWG Library Evolution |
P2455R0 | 2021 November Library Evolution Poll Outcomes | Bryce Adelstein Lelbach | 2021-12-08 | 2021-12 | LEWG Library Evolution | |
P2456R0 | 2021 December Library Evolution Polls | Bryce Adelstein Lelbach | 2021-12-08 | 2021-12 | LEWG Library Evolution | |
P2468R1 | The Equality Operator You Are Looking For | Barry Revzin, Bjarne Stroustrup, Cameron DaCamara, Daveed Vandevoorde, Gabriel Dos Reis, Herb Sutter, Jason Merrill, Jonathan Caves, Richard Smith, Ville Voutilainen | 2021-12-16 | 2021-12 | P2468R0 | CWG Core |
P2473R1 | Distributing C++ Module Libraries | Daniel Ruoso | 2021-12-02 | 2021-12 | P2473R0 | SG15 Tooling |
P2474R0 | views::repeat | Michał Dominiak | 2021-12-13 | 2021-12 | SG9 Ranges,LEWG Library Evolution | |
P2486R1 | Structured naming for function object and CPO values | Kirk Shoop | 2021-12-16 | 2021-12 | P2486R0 | LEWG Library Evolution |
P2494R0 | Relaxing range adaptors to allow for move only types | Michał Dominiak | 2021-12-13 | 2021-12 | SG9 Ranges,LEWG Library Evolution | |
P2498R0 | Forward compatibility of text_encoding with additional encoding registries | Peter Brett | 2021-12-13 | 2021-12 | SG16 Unicode,LEWG Library Evolution | |
P2499R0 | string_view range constructor should be explicit | James Touton | 2021-12-07 | 2021-12 | LEWG Library Evolution | |
P2501R0 | Undo the rename of views::move and views::as_const | Ville Voutilainen | 2021-12-14 | 2021-12 | LEWG Library Evolution | |
P2502R0 | std::generator: Synchronous Coroutine Generator for Ranges | Casey Carter | 2021-12-13 | 2021-12 | LEWG Library Evolution | |
P2504R0 | Computations as a global solution to concurrency | Lucian Radu Teodorescu | 2021-12-11 | 2021-12 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P2505R0 | Monadic Functions for std::expected | Jeff Garland | 2021-12-15 | 2021-12 | LEWG Library Evolution,LWG Library | |
P2507R0 | Only [[assume]] conditional-expressions | Peter Brett | 2021-12-13 | 2021-12 | EWG Evolution | |
P2508R0 | Exposing std::basic-format-string | Barry Revzin | 2021-12-17 | 2021-12 | LEWG Library Evolution | |
P2509R0 | A proposal for a type trait to detect value-preserving conversions | Giuseppe D'Angelo | 2021-12-17 | 2021-12 | SG6 Numerics,LEWG Library Evolution | |
P2510R0 | Formatting pointers | Mark de Wever | 2021-12-17 | 2021-12 | LWG Library |
The Reflection TS was blessed with an example implementation recently, available on Compiler Explorer. Clément Pirelli gave it a spin and wrote a small post about what he found.
C++ Reflection TS: A First Look
by Clément Pirelli
From the article:
]]>In this post, I’ll explain the basic ideas of the specification, how to write a simple generic “enum to string” function and go into a bit more detail with a proof-of-concept serialization function.
The 2021-11 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
P0009R14 | MDSPAN | Christian Trott | 2021-11-14 | 2021-11 | P0009R13 | LEWG Library Evolution,LWG Library |
P0323R11 | std::expected | JF Bastien | 2021-11-16 | 2021-11 | P0323R10 | LWG Library |
P0447R17 | Introduction of std::hive to the standard library | Matt Bentley | 2021-11-03 | 2021-11 | P0447R16 | SG14 Low Latency,LEWG Library Evolution,All of WG21 |
P0533R9 | constexpr for cmath and cstdlib | Oliver Rosten | 2021-11-12 | 2021-11 | P0533R8 | CWG Core,LWG Library |
P1413R3 | Deprecate std::aligned_storage and std::aligned_union | CJ Johnson | 2021-11-22 | 2021-11 | P1413R2 | LEWG Library Evolution,LWG Library |
P1467R6 | Extended floating-point types and standard names | David Olsen | 2021-11-10 | 2021-11 | P1467R5 | EWG Evolution,LEWG Library Evolution |
P1467R7 | Extended floating-point types and standard names | David Olsen | 2021-11-24 | 2021-11 | P1467R6 | EWG Evolution,LEWG Library Evolution |
P1494R2 | Partial program correctness | S. Davis Herring | 2021-11-12 | 2021-11 | P1494R1 | SG22 Compatability,EWG Evolution,LEWG Library Evolution,CWG Core |
P1774R4 | Portable assumptions | Timur Doumler | 2021-11-17 | 2021-11 | P1774R3 | EWG Evolution |
P1854R2 | Conversion to literal encoding should not lead to loss of meaning | Corentin Jabot | 2021-11-23 | 2021-11 | P1854R1 | SG16 Unicode |
P1899R1 | stride_view | Christopher Di Bella | 2021-11-08 | 2021-11 | P1899R0 | SG9 Ranges,LEWG Library Evolution |
P2071R1 | Named universal character escapes | Tom Honermann | 2021-11-09 | 2021-11 | P2071R0 | SG16 Unicode,EWG Evolution |
P2093R10 | Formatted output | Victor Zverovich | 2021-11-13 | 2021-11 | P2093R9 | LEWG Library Evolution |
P2198R3 | Freestanding Feature-Test Macros and Implementation-Defined Extensions | Ben Craig | 2021-11-12 | 2021-11 | P2198R2 | SG10 Feature Test,LEWG Library Evolution |
P2249R3 | Mixed comparisons for smart pointers | Giuseppe D'Angelo | 2021-11-16 | 2021-11 | P2249R2 | LEWG Library Evolution |
P2273R3 | Making std::unique_ptr constexpr | Andreas Fertig | 2021-11-09 | 2021-11 | P2273R2 | LWG Library |
P2278R2 | cbegin should always return a constant iterator | Barry Revzin | 2021-11-16 | 2021-11 | P2278R1 | LEWG Library Evolution |
P2286R3 | Formatting Ranges | Barry Revzin | 2021-11-16 | 2021-11 | P2286R2 | LEWG Library Evolution |
P2302R1 | std::ranges::contains | Christopher Di Bella | 2021-11-08 | 2021-11 | P2302R0 | SG9 Ranges |
P2338R2 | Freestanding Library: Character primitives and the C library | Ben Craig | 2021-11-11 | 2021-11 | P2338R1 | SG14 Low Latency,SG22 Compatability,LEWG Library Evolution |
P2361R4 | Unevaluated strings | Corentin Jabot | 2021-11-23 | 2021-11 | P2361R3 | EWG Evolution |
P2388R4 | Minimum Contract Support: either No_eval or Eval_and_abort | Andrzej Krzemieński | 2021-11-15 | 2021-11 | P2388R3 | SG21 Contracts,SG22 Compatability |
P2407R1 | Freestanding Library: Partial Classes | Emil Meissner | 2021-11-23 | 2021-11 | P2407R0 | LEWG Library Evolution |
P2408R3 | Ranges iterators as inputs to non-Ranges algorithms | David Olsen | 2021-11-08 | 2021-11 | P2408R2 | SG9 Ranges,LEWG Library Evolution |
P2408R4 | Ranges iterators as inputs to non-Ranges algorithms | David Olsen | 2021-11-16 | 2021-11 | P2408R3 | LEWG Library Evolution |
P2441R1 | views::join_with | Barry Revzin | 2021-11-16 | 2021-11 | P2441R0 | LEWG Library Evolution |
P2443R1 | views::chunk_by | Tim Song | 2021-11-19 | 2021-11 | P2443R0 | LWG Library |
P2446R1 | views::all_move | Barry Revzin | 2021-11-16 | 2021-11 | P2446R0 | LEWG Library Evolution |
P2454R0 | 2021 November Library Evolution Polls | Bryce Adelstein Lelbach | 2021-11-03 | 2021-11 | LEWG Library Evolution | |
P2461R1 | Closure-based Syntax for Contracts | Gašper Ažman | 2021-11-15 | 2021-11 | P2461R0 | SG21 Contracts |
P2467R0 | Support exclusive mode for fstreams | Jonathan Wakely | 2021-11-15 | 2021-11 | LEWG Library Evolution | |
P2477R1 | Allow programmer to control and detect coroutine elision by static constexpr bool must_elide() and | Chuanqi Xu | 2021-10-25 | 2021-11 | P2477R0 | EWG Evolution,LEWG Library Evolution |
P2477R2 | Allow programmer to control and detect coroutine elision | Chuanqi Xu | 2021-11-14 | 2021-11 | P2477R1 | EWG Evolution,LEWG Library Evolution |
P2483R0 | Support Non-copyable Types for single_view | Hui Xie | 2021-10-26 | 2021-11 | LEWG Library Evolution | |
P2484R0 | Extending class types as non-type template parameters | Richard Smith | 2021-11-16 | 2021-11 | EWG Evolution | |
P2485R0 | Do not add value_exists and value_or to C++23 | Jonathan Wakely | 2021-11-01 | 2021-11 | LEWG Library Evolution | |
P2486R0 | Structured naming for function object and CPO values | Kirk Shoop | 2021-11-01 | 2021-11 | LEWG Library Evolution | |
P2487R0 | Attribute-like syntax for contract annotations | Andrzej Krzemieński | 2021-11-12 | 2021-11 | SG21 Contracts,EWG Evolution | |
P2489R0 | Library Evolution Plan for Completing C++23 | Bryce Adelstein Lelbach | 2021-11-09 | 2021-11 | LEWG Library Evolution | |
P2490R0 | Zero-overhead exception stacktraces | Antony Peacock | 2021-11-25 | 2021-11 | LEWGI SG18: LEWG Incubator | |
P2491R0 | Text encodings follow-up | Jens Maurer | 2021-11-15 | 2021-11 | SG16 Unicode,LEWG Library Evolution | |
P2492R0 | Attending C++ Standards Committee Meetings During a Pandemic | René Ferdinand Rivera Morell | 2021-11-09 | 2021-11 | All of WG21 | |
P2493R0 | Missing feature test macros for C++20 core papers | Barry Revzin | 2021-11-15 | 2021-11 | CWG Core |
The 2021-09 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
P0288R7 | move_only_function (was any_invocable) | Matt Calabrese, Ryan McDougall | 2021-08-27 | 2021-09 | P0288R6 | LWG Library |
P0447R16 | Introduction of std::hive to the standard library | Matt Bentley | 2021-09-08 | 2021-09 | P0447R15 | SG14 Low Latency,LEWG Library Evolution,All of WG21 |
P0627R5 | Function to mark unreachable code | Jens Maurer | 2021-09-19 | 2021-09 | P0627R3 | LWG Library |
P0849R8 | auto(x): decay-copy in the language | Zhihao Yuan | 2021-08-26 | 2021-09 | P0849R7 | CWG Core,LWG Library |
P1018R13 | C++ Language Evolution status pandemic edition 2021/06–2021/08 | JF Bastien | 2021-09-06 | 2021-09 | P1018R12 | EWG Evolution,All of WG21 |
P1072R10 | basic_string::resize_and_overwrite | Chris Kennelly | 2021-09-14 | 2021-09 | P1072R9 | LWG Library |
P1885R7 | Naming Text Encodings to Demystify Them | Corentin Jabot | 2021-09-14 | 2021-09 | P1885R6 | LEWG Library Evolution |
P2012R1 | Fix the range-based for loop, Rev1 | Nicolai Josuttis | 2021-09-16 | 2021-09 | P2012R0 | EWG Evolution,CWG Core |
P2036R3 | Changing scope for lambda trailing-return-type | Barry Revzin | 2021-09-14 | 2021-09 | P2036R2 | CWG Core |
P2066R9 | Suggested draft TS for C++ Extensions for Minimal Transactional Memory | Jens Maurer | 2021-09-15 | 2021-09 | P2066R8 | CWG Core,LWG Library |
P2093R9 | Formatted output | Victor Zverovich | 2021-09-09 | 2021-09 | P2093R8 | LEWG Library Evolution |
P2128R6 | Multidimensional subscript operator | Corentin Jabot | 2021-09-14 | 2021-09 | P2128R5 | CWG Core |
P2214R1 | A Plan for C++23 Ranges | Barry Revzin | 2021-09-14 | 2021-09 | P2214R0 | LEWG Library Evolution |
P2266R2 | Simpler implicit move | Arthur O'Dwyer | 2021-08-31 | 2021-09 | P2266R1 | EWG Evolution,CWG Core |
P2276R1 | Fix cbegin | Nicolai Josuttis | 2021-09-10 | 2021-09 | P2276R0 | LEWG Library Evolution,LWG Library |
P2278R1 | cbegin should always return a constant iterator | Barry Revzin | 2021-09-15 | 2021-09 | P2278R0 | LEWG Library Evolution |
P2314R3 | Character sets and encodings | Jens Maurer | 2021-09-15 | 2021-09 | P2314R2 | CWG Core,LWG Library |
P2316R2 | Consistent character literal encoding | Corentin Jabot | 2021-09-14 | 2021-09 | P2316R1 | SG22 Compatability,CWG Core |
P2322R4 | ranges::fold | Barry Revzin | 2021-09-12 | 2021-09 | P2322R3 | LEWG Library Evolution |
P2348R1 | Whitespaces Wording Revamp | Corentin Jabot | 2021-09-15 | 2021-09 | P2348R0 | SG16 Unicode |
P2362R3 | Remove non-encodable wide character literals and multicharacter wide character literals | Peter Brett | 2021-08-27 | 2021-09 | P2362R2 | SG22 Compatability,CWG Core |
P2363R1 | Extending associative containers with the remaining heterogeneous overloads | Konstantin Boyarinov | 2021-09-15 | 2021-09 | P2363R0 | LEWG Library Evolution |
P2372R3 | Fixing locale handling in chrono formatters | Victor Zverovich | 2021-09-12 | 2021-09 | P2372R2 | LWG Library |
P2388R1 | Abort-only contract support | Andrzej Krzemieński | 2021-09-14 | 2021-09 | P2388R0 | SG21 Contracts |
P2388R2 | Minimum Contract Support: either Ignore or Check_and_abort | Andrzej Krzemieński | 2021-09-19 | 2021-09 | P2388R1 | SG21 Contracts |
P2390R1 | Add annotations for unreachable control flow | Jens Gustedt | 2021-09-17 | 2021-09 | P2390R0 | SG22 Compatability |
P2408R1 | Ranges views as inputs to non-Ranges algorithms | David Olsen | 2021-08-31 | 2021-09 | P2408R0 | LEWG Library Evolution |
P2418R1 | Add support for std::generator-like types to std::format | Victor Zverovich | 2021-09-12 | 2021-09 | P2418R0 | LWG Library |
P2419R1 | Clarify handling of encodings in localized formatting of chrono types | Victor Zverovich | 2021-09-19 | 2021-09 | P2419R0 | LEWG Library Evolution |
P2430R0 | Slides: Partial success scenarios with P2300 | Christopher Kohlhoff | 2021-08-23 | 2021-09 | LEWG Library Evolution | |
P2431R0 | Presentation: Plans for P2300 Revision 2 | Michael Garland | 2021-08-25 | 2021-09 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P2432R0 | Fixing istream_view | Nicolai Josuttis | 2021-08-27 | 2021-09 | SG9 Ranges,LEWG Library Evolution,LWG Library | |
P2435R0 | 2021 Summer Library Evolution Poll Outcomes | Bryce Adelstein Lelbach | 2021-09-09 | 2021-09 | LEWG Library Evolution | |
P2436R0 | 2021 September Library Evolution Polls | Bryce Adelstein Lelbach | 2021-09-14 | 2021-09 | LEWG Library Evolution | |
P2437R0 | Support for #warning | Aaron Ballman | 2021-09-09 | 2021-09 | EWG Evolution | |
P2438R0 | std::string::substr() && | Federico Kircheis | 2021-09-14 | 2021-09 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P2439R0 | Slides for P2415R1, what is a view? | Tim Song | 2021-09-10 | 2021-09 | LEWG Library Evolution | |
P2440R0 | ranges::iota, ranges::shift_left, and ranges::shift_right | Tim Song | 2021-09-12 | 2021-09 | LEWG Library Evolution | |
P2441R0 | views::join_with | Barry Revzin | 2021-09-14 | 2021-09 | LEWG Library Evolution | |
P2442R0 | Windowing range adaptors: views::chunk and views::slide | Tim Song | 2021-09-14 | 2021-09 | LEWG Library Evolution | |
P2443R0 | views::chunk_by | Tim Song | 2021-09-14 | 2021-09 | LEWG Library Evolution | |
P2444R0 | The Asio asynchronous model | Christopher Kohlhoff | 2021-09-15 | 2021-09 | LEWG Library Evolution | |
P2446R0 | views::move | Barry Revzin | 2021-09-17 | 2021-09 | LEWG Library Evolution |
The 2021-08 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4895 | Concurrency TS2 | Michael Wong | 2021-08-22 | 2021-08 | All of WG21 | |
P1018R12 | C++ Language Evolution status pandemic edition 2021/06–2021/08 | JF Bastien | 2021-08-02 | 2021-08 | P1018R11 | EWG Evolution,All of WG21 |
P1072R9 | basic_string::resize_and_overwrite | Chris Kennelly | 2021-08-14 | 2021-08 | P1072R8 | LWG Library |
P1169R2 | static operator() | Barry Revzin | 2021-08-14 | 2021-08 | P1169R1 | EWG Evolution |
P1206R5 | Conversions from ranges to containers | Corentin Jabot | 2021-08-01 | 2021-08 | P1206R4 | LEWG Library Evolution |
P1206R6 | Conversions from ranges to containers | Corentin Jabot | 2021-08-03 | 2021-08 | P1206R5 | LEWG Library Evolution |
P1664R5 | reconstructible_range - a concept for putting ranges back together | JeanHeyd Meneide | 2021-08-16 | 2021-08 | P1664R4 | SG9 Ranges,LEWG Library Evolution |
P1673R4 | A free function linear algebra interface based on the BLAS | Mark Hoemmen | 2021-08-14 | 2021-08 | P1673R3 | LEWG Library Evolution |
P1885R6 | Naming Text Encodings to Demystify Them | Corentin Jabot | 2021-08-14 | 2021-08 | P1885R5 | LEWG Library Evolution |
P2047R2 | An allocator-aware optional type | Nina Ranns | 2021-08-13 | 2021-08 | P2047R1 | LEWG Library Evolution |
P2093R8 | Formatted output | Victor Zverovich | 2021-08-15 | 2021-08 | P2093R7 | SG16 Unicode,LEWG Library Evolution |
P2280R3 | Using unknown references in constant expressions | Barry Revzin | 2021-08-18 | 2021-08 | P2280R2 | EWG Evolution |
P2286R2 | Formatting Ranges | Barry Revzin | 2021-08-15 | 2021-08 | P2286R1 | LEWG Library Evolution |
P2291R2 | Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in Header | Daniil Goncharov | 2021-08-17 | 2021-08 | P2291R1 | LEWG Library Evolution,LWG Library |
P2361R2 | Unevaluated strings | Corentin Jabot | 2021-08-13 | 2021-08 | P2361R1 | SG16 Unicode,SG22 Compatability,EWG Evolution |
P2362R2 | Remove non-encodable wide character literals and multicharacter wide character literals | Peter Brett | 2021-07-29 | 2021-08 | P2362R1 | EWG Evolution |
P2370R1 | Stacktrace from exception | Andrei Nekrashevich | 2021-08-15 | 2021-08 | P2370R0 | LEWG Library Evolution,LWG Library |
P2372R2 | Fixing locale handling in chrono formatters | Victor Zverovich | 2021-08-14 | 2021-08 | P2372R1 | LWG Library |
P2387R1 | Pipe support for user-defined range adaptors | Barry Revzin | 2021-08-14 | 2021-08 | P2387R0 | LEWG Library Evolution |
P2388R1 | Minimum Contract Support: either Ignore or Check_and_abort | Andrzej Krzemieński | 2021-08-15 | 2021-08 | SG21 Contracts | |
P2393R1 | Cleaning up integer-class types | Tim Song | 2021-08-06 | 2021-08 | P2393R0 | LWG Library |
P2414R1 | Pointer lifetime-end zap proposed solutions | Paul E. McKenney | 2021-08-13 | 2021-08 | P2414R0 | EWG Evolution |
P2415R1 | What is a view? | Barry Revzin | 2021-08-15 | 2021-08 | P2415R0 | LEWG Library Evolution |
P2418R0 | Add support for std::generator-like types to std::format | Victor Zverovich | 2021-08-08 | 2021-08 | LEWG Library Evolution | |
P2419R0 | Clarify handling of encodings in localized formatting of chrono types | Victor Zverovich | 2021-08-12 | 2021-08 | SG16 Unicode,LEWG Library Evolution | |
P2420R0 | 2021 Summer Library Evolution Polls | Bryce Adelstein Lelbach | 2021-08-03 | 2021-08 | LEWG Library Evolution | |
P2423R0 | C Floating Point Study Group Liaison Report | Rajan Bhakta | 2021-08-04 | 2021-08 | SG6 Numerics,SG22 Compatability | |
P2425R0 | Expression Function Body | Mihail Naydenov | 2021-08-22 | 2021-08 | EWGI SG17: EWG Incubator | |
P2428R0 | Slides: BSI issues with P2300 | Gašper Ažman | 2021-08-16 | 2021-08 | LEWG Library Evolution |
The 2021-07 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4894 | Business Plan and Convener's Report | Herb Sutter | 2021-07-13 | 2021-07 | All of WG21 | |
P0288R6 | move_only_function (was any_invocable) | Ryan McDougall, Matt Calabrese | 2021-07-13 | 2021-07 | P0288R5 | LWG Library |
P0847R7 | Deducing this | Barry Revzin | 2021-07-13 | 2021-07 | P0847R6 | CWG Core |
P1206R4 | Conversions from ranges to containers | Corentin Jabot | 2021-07-14 | 2021-07 | P1206R3 | LEWG Library Evolution |
P1726R5 | Pointer lifetime-end zap (informational/historical) | Paul E. McKenney | 2021-07-14 | 2021-07 | P1726R4 | SG1 Concurrency and Parallelism,SG12 Undefined and Unspecified Behavior,EWG Evolution |
P2036R2 | Changing scope for lambda trailing-return-type | Barry Revzin | 2021-07-22 | 2021-07 | P2036R1 | CWG Core |
P2066R8 | Suggested draft TS for C++ Extensions for Minimal Transactional Memory | Jens Maurer | 2021-07-15 | 2021-07 | P2066R7 | LEWG Library Evolution,CWG Core |
P2093R7 | Formatted output | Victor Zverovich | 2021-07-04 | 2021-07 | P2093R6 | SG16 Unicode,LEWG Library Evolution |
P2167R1 | Improved Proposed Wording for LWG 2114 (contextually convertible to bool) | Daniel Krügler | 2021-07-15 | 2021-07 | P2167R0 | LWG Library |
P2198R2 | Freestanding Feature-Test Macros and Implementation-Defined Extensions | Ben Craig | 2021-07-10 | 2021-07 | P2198R1 | SG10 Feature Test,LEWG Library Evolution |
P2242R3 | Non-literal variables (and labels and gotos) in constexpr functions | Ville Voutilainen | 2021-07-13 | 2021-07 | P2242R2 | CWG Core |
P2249R1 | Mixed comparisons for smart pointers | Giuseppe D'Angelo | 2021-07-14 | 2021-07 | P2249R0 | LEWG Library Evolution |
P2273R2 | Making std::unique_ptr constexpr | Andreas Fertig | 2021-07-05 | 2021-07 | P2273R1 | LEWG Library Evolution |
P2290R2 | Delimited escape sequences | Corentin Jabot | 2021-07-15 | 2021-07 | P2290R1 | SG22 Compatability,EWG Evolution |
P2295R5 | Support for UTF-8 as a portable source file encoding | Corentin Jabot | 2021-07-16 | 2021-07 | P2295R4 | SG22 Compatability,EWG Evolution |
P2300R1 | `std::execution` | Michał Dominiak | 2021-07-06 | 2021-07 | P2300R0 | SG1 Concurrency and Parallelism,LEWG Library Evolution |
P2316R1 | Consistent character literal encoding | Corentin Jabot | 2021-07-11 | 2021-07 | P2316R0 | SG22 Compatability,EWG Evolution |
P2338R1 | Freestanding Library: Character primitives and the C library | Ben Craig | 2021-07-10 | 2021-07 | P2338R0 | SG14 Low Latency,SG22 Compatability,LEWG Library Evolution |
P2347R1 | Argument type deduction for non-trailing parameter packs | Corentin Jabot | 2021-07-15 | 2021-07 | P2347R0 | EWG Evolution |
P2350R1 | constexpr class | Andreas Fertig | 2021-07-15 | 2021-07 | P2350R0 | EWG Evolution |
P2362R1 | Remove non-encodable wide character literals and multicharacter wide character literals | Peter Brett | 2021-07-15 | 2021-07 | P2362R0 | EWG Evolution |
P2392R1 | Pattern matching using "is" and "as" | Herb Sutter | 2021-07-19 | 2021-07 | P2392R0 | EWG Evolution |
P2401R0 | Add a conditional noexcept specification to std::exchange | Giuseppe D'Angelo | 2021-07-14 | 2021-07 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution | |
P2402R0 | A free function linear algebra interface based on the BLAS (slides) | Mark Hoemmen | 2021-06-29 | 2021-07 | LEWG Library Evolution | |
P2403R0 | Presentation on P2300 - std::execution | Michael Garland | 2021-07-06 | 2021-07 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P2404R0 | Relaxing equality_comparable_with's and three_way_comparable_with's common reference requirements to | Justin Bassett | 2021-07-25 | 2021-07 | LWG Library | |
P2405R0 | nullopt_t and nullptr_t should both have operator and operator== | Justin Bassett | 2021-07-25 | 2021-07 | LWG Library | |
P2406R0 | Fix counted_iterator interaction with input iterators | Yehezkel Bernat | 2021-07-11 | 2021-07 | SG9 Ranges | |
P2407R0 | Freestanding Library: Partial Classes | Emil Meissner | 2021-07-12 | 2021-07 | LEWG Library Evolution | |
P2408R0 | Ranges views as inputs to non-Ranges algorithms | David Olsen | 2021-07-14 | 2021-07 | LEWG Library Evolution | |
P2409R0 | Requirements for Usage of C++ Modules at Bloomberg | Daniel Ruoso | 2021-07-12 | 2021-07 | SG15 Tooling | |
P2410R0 | Type-and-resource safety in modern C++ | Bjarne Stroustrup | 2021-07-22 | 2021-07 | All of WG21 | |
P2411R0 | Thoughts on pattern matching | Bjarne Stroustrup | 2021-07-22 | 2021-07 | All of WG21 | |
P2412R0 | Minimal module support for the standard library | Bjarne Stroustrup | 2021-07-22 | 2021-07 | All of WG21 | |
P2413R0 | Remove unsafe conversions of unique_ptr | Lénárd Szolnoki | 2021-07-25 | 2021-07 | LEWGI SG18: LEWG Incubator | |
P2414R0 | Pointer lifetime-end zap proposed solutions | Paul E. McKenney | 2021-07-14 | 2021-07 | EWG Evolution | |
P2415R0 | What is a view? | Barry Revzin | 2021-07-14 | 2021-07 | LEWG Library Evolution | |
P2416R0 | Presentation of requirements in the standard library | Jens Maurer | 2021-07-15 | 2021-07 | LWG Library | |
P2417R0 | A more constexpr bitset | Daniil Goncharov | 2021-07-25 | 2021-07 | LEWG Library Evolution,LWG Library |
The 2021-06 mailing of new standards papers is now available.
WG21 Number | Title | Author | Document Date | Mailing Date | Previous Version | Subgroup |
---|---|---|---|---|---|---|
N4887 | PL22.16/WG21 agenda: 7 June 2021, Virtual Meeting | John Spicer | 2021-05-21 | 2021-06 | All of WG21 | |
N4888 | WG21 virtual meetings: 2021-06, and -10 | Herb Sutter | 2021-05-24 | 2021-06 | All of WG21 | |
N4889 | WG21 admin telecon meeting: 2021-09 | Herb Sutter | 2021-05-24 | 2021-06 | All of WG21 | |
N4890 | WG21 2021-05 Admin telecon minutes | Nina Ranns | 2021-06-25 | 2021-06 | All of WG21 | |
N4891 | WG21 2021-06 Virtual Meeting Minutes of Meeting | Nina Ranns | 2021-06-24 | 2021-06 | All of WG21 | |
N4892 | Working Draft, Standard for Programming Language C++ | Thomas Köppe | 2021-06-18 | 2021-06 | All of WG21 | |
N4893 | Editors' Report - Programming Languages - C++ | Thomas Köppe | 2021-06-18 | 2021-06 | All of WG21 | |
P0205R1 | Efficient Seeding of Random Number Engines | Moritz Klammler | 2021-06-24 | 2021-06 | P0205R0 | SG6 Numerics,LEWG Library Evolution,LWG Library |
P0447R15 | Introduction of std::hive to the standard library | Matt Bentley | 2021-06-16 | 2021-06 | P0447R14 | SG14 Low Latency,LEWG Library Evolution,All of WG21 |
P0533R7 | constexpr for cmath and cstdlib | Oliver Rosten | 2021-06-24 | 2021-06 | P0533R6 | LEWG Library Evolution |
P0533R8 | constexpr for cmath and cstdlib | Oliver Rosten | 2021-06-24 | 2021-06 | P0533R7 | CWG Core,LWG Library |
P1018R11 | C++ Language Evolution status pandemic edition 2021/05 | JF Bastien | 2021-06-01 | 2021-06 | P1018R10 | EWG Evolution,All of WG21 |
P1072R8 | basic_string::resize_and_overwrite | Chris Kennelly | 2021-06-03 | 2021-06 | P1072R7 | LWG Library |
P1072R8 | basic_string::resize_and_overwrite | Chris Kennelly | 2021-06-03 | 2021-06 | P1072R7 | LWG Library |
P1132R8 | out_ptr - a scalable output pointer abstraction | JeanHeyd Meneide | 2021-06-10 | 2021-06 | P1132R7 | LWG Library |
P1202R3 | Asymmetric Fences | David Goldblatt | 2021-06-14 | 2021-06 | P1202R2 | LWG Library |
P1642R6 | Freestanding Library: Easy [utilities], [ranges], and [iterators] | Ben Craig | 2021-05-30 | 2021-06 | P1642R5 | LWG Library |
P1664R4 | reconstructible_range - a concept for putting ranges back together | JeanHeyd Meneide | 2021-06-15 | 2021-06 | P1664R3 | SG9 Ranges,LEWG Library Evolution |
P1675R2 | rethrow_exception must be allowed to copy | Billy O'Neal | 2021-05-25 | 2021-06 | P1675R1 | CWG Core,LWG Library |
P1689R4 | Format for describing dependencies of source files | Ben Boeckel | 2021-06-14 | 2021-06 | P1689R3 | SG15 Tooling,SG16 Unicode |
P1708R5 | Simple Statistical Functions | Richard Dosselman | 2021-06-14 | 2021-06 | P1708R4 | SG6 Numerics,SG19 Machine Learning,LEWG Library Evolution |
P1967R4 | #embed - a simple, scannable preprocessor-based resource acquisition method | JeanHeyd Meneide | 2021-06-19 | 2021-06 | P1967R3 | EWG Evolution |
P2164R5 | views::enumerate | Corentin Jabot | 2021-06-15 | 2021-06 | P2164R4 | SG9 Ranges |
P2165R2 | Compatibility between tuple, pair and tuple-like objects | Corentin Jabot | 2021-06-15 | 2021-06 | P2165R1 | LEWG Library Evolution |
P2290R1 | Delimited escape sequences | Corentin Jabot | 2021-06-07 | 2021-06 | P2290R0 | SG22 Compatability,EWG Evolution |
P2295R4 | Support for UTF-8 as a portable source file encoding | Corentin Jabot | 2021-06-14 | 2021-06 | P2295R3 | SG16 Unicode,SG22 Compatability,EWG Evolution |
P2299R3 | `mdspan`s of All Dynamic Extents | Bryce Adelstein Lelbach | 2021-06-07 | 2021-06 | P2299R2 | LEWG Library Evolution |
P2300R0 | `std::execution` | Michał Dominiak | 2021-06-16 | 2021-06 | SG1 Concurrency and Parallelism,LEWG Library Evolution | |
P2301R1 | Add a pmr alias for std::stacktrace | Steve Downey | 2021-06-14 | 2021-06 | P2301R0 | LWG Library |
P2321R2 | zip | Tim Song | 2021-06-11 | 2021-06 | P2321R1 | LWG Library |
P2322R3 | ranges::fold | Barry Revzin | 2021-06-13 | 2021-06 | P2322R2 | LEWG Library Evolution |
P2340R1 | Clarifying the status of the "C headers" | Thomas Köppe | 2021-06-11 | 2021-06 | P2340R0 | SG22 Compatability,LEWG Library Evolution,LWG Library |
P2347R0 | Argument type deduction for non-trailing parameter packs | Corentin Jabot | 2021-06-14 | 2021-06 | EWG Evolution | |
P2361R1 | Unevaluated string literals | Corentin Jabot | 2021-06-11 | 2021-06 | P2361R0 | SG16 Unicode,EWG Evolution |
P2368R1 | 2021 Spring Library Evolution Polls | Bryce Adelstein Lelbach | 2021-05-27 | 2021-06 | P2368R0 | LEWG Library Evolution |
P2370R0 | Stacktrace from exception | Andrei Nekrashevich | 2021-06-08 | 2021-06 | LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library | |
P2380R1 | reference_wrapper Associations | Robert Leahy | 2021-06-03 | 2021-06 | P2380R0 | LEWG Library Evolution |
P2384R0 | 2021 Spring Library Evolution Poll Outcomes | Bryce Adelstein Lelbach | 2021-06-07 | 2021-06 | LEWG Library Evolution | |
P2385R0 | C++ Standard Library Issues to be moved in Virtual Plenary, June 2021 | Jonathan Wakely | 2021-05-26 | 2021-06 | All of WG21 | |
P2386R0 | Core Language Working Group "ready" issues for the June, 2021 meeting | William M. (Mike) Miller | 2021-06-25 | 2021-06 | All of WG21 | |
P2387R0 | Pipe support for user-defined range adaptors | Barry Revzin | 2021-06-12 | 2021-06 | LEWG Library Evolution | |
P2388R0 | Abort-only contract support | Andrzej Krzemieński | 2021-06-15 | 2021-06 | SG21 Contracts | |
P2390R0 | Add annotations for unreachable control flow | Jens Gustedt | 2021-06-07 | 2021-06 | SG22 Compatability | |
P2391R0 | C23 Update Report | Aaron Ballman | 2021-06-07 | 2021-06 | All of WG21 | |
P2392R0 | Pattern matching using "is" and "as" | Herb Sutter | 2021-06-14 | 2021-06 | EWG Evolution | |
P2393R0 | Cleaning up integer-class types | Tim Song | 2021-06-12 | 2021-06 | LWG Library | |
P2395R0 | WG21 2021-06 Virtual Meeting Record of Discussion | Nina Ranns | 2021-06-24 | 2021-06 | All of WG21 | |
P2396R0 | Concurrency TS 2 fixes | David Goldblatt | 2021-06-14 | 2021-06 | LEWG Library Evolution,LWG Library | |
P2397R0 | SG16: Unicode meeting summaries 2021-04-14 through 2021-05-26 | Tom Honermann | 2021-06-15 | 2021-06 | SG16 Unicode | |
P2400R1 | Library Evolution Report: 2021-02-23 to 2021-05-25 | Bryce Adelstein Lelbach | 2021-06-07 | 2021-06 | P2400R0 | All of WG21 |
Standards progress continues:
Trip report: Summer 2021 ISO C++ standards meeting (virtual)
by Herb Sutter
From the article:
]]>On Monday, the ISO C++ committee held its third full-committee (plenary) meeting of the pandemic and adopted a few more features and improvements for draft C++23...