Standardization

C++23 “Pandemic Edition” is complete -- Herb Sutter

image.pngC++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...

2022-12 Mailing Available

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

2022-09 Mailing Available

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

2022-08 Mailing Available

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

2022-07 Mailing Available

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

Advancing the State of the Art for std::unordered_map Implementations -- boost.org

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.

 

2022-06 Mailing Available

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

2022-05 Mailing Available

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