Standardization

C++ at the end of 2021 -- Bartlomiej Filipek

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?

2021 C++ Standardization Highlights--Botond Ballo

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...

2021-12 Mailing Available

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

C++ Reflection TS: A First Look -- Clément Pirelli

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.

2021-11 Mailing Available

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

2021-09 Mailing Available

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

2021-08 Mailing Available

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

2021-07 Mailing Available

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

2021-06 Mailing Available

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