Standardization

D2349: std::pony -- Ville Voutilainen

Just posted between the mid-month standards mailings:

d2349r0: std::pony

by Ville Voutilainen

From the paper:

This is a proposal to lay to rest the long-standing question of whether C++ should optimize velocity or stability... This proposal has three things it proposes:

  • two new decl-specifiers, my and little, for the core language, and an accompanying name lookup change
  • the main library facility itself
  • allocator support for the main library facility

2021-01 mailing available

The 2021-01 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
P0447R12 Introduction of std::colony to the standard library Matt Bentley 2021-01-14 2021-01 P0447R11 SG14 Low Latency,LEWG Library Evolution,All of WG21
P0847R6 Deducing this Barry Revzin 2021-01-15 2021-01 P0847R5 EWG Evolution
P1121R2 Hazard Pointers: Proposed Interface and Wording for Concurrency TS 2 Maged M. Michael 2021-01-14 2021-01 P1121R1 LWG Library
P1425R2 Iterators pair constructors for stack and queue Corentin Jabot 2021-01-18 2021-01 P1425R1 LEWG Library Evolution,LWG Library
P1682R2 std::to_underlying JeanHeyd Meneide 2021-01-16 2021-01 P1682R1 LWG Library
P1708R3 Simple Statistical Functions Richard Dosselman 2021-01-14 2021-01 P1708R2 SG19 Machine Learning
P1989R1 Range constructor for std::string_view 2: Constrain Harder Corentin Jabot 2021-01-17 2021-01 P1989R0 LWG Library
P2036R1 Changing scope for lambda trailing-return-type Barry Revzin 2021-01-13 2021-01 P2036R0 EWG Evolution
P2072R1 Differentiable programming for C++ Marco Foco 2021-01-14 2021-01 P2072R0 All of WG21
P2093R3 Formatted output Victor Zverovich 2020-12-26 2021-01 P2093R2 LEWG Library Evolution
P2168R1 generator: A Synchronous Coroutine Generator Compatible With Ranges Corentin Jabot 2021-01-18 2021-01 P2168R0 LEWG Library Evolution
P2210R1 Superior String Splitting Barry Revzin 2021-01-04 2021-01 P2210R0 LEWG Library Evolution
P2216R2 std::format improvements Victor Zverovich 2021-01-14 2021-01 P2216R1 LWG Library
P2232R0 Zero-Overhead Deterministic Exceptions: Catching Values Emil Dotchevski 2021-01-22 2021-01   EWGI SG17: EWG Incubator
P2244R0 SG14: Low Latency/Games/Embedded/Finance/Simulation Meeting Minutes Michael Wong 2021-01-14 2021-01   SG14 Low Latency
P2245R0 SG19: Machine Learning Meeting Minutes Michael Wong 2021-01-14 2021-01   SG19 Machine Learning
P2246R1 Character encoding of diagnostic text Aaron Ballman 2021-01-15 2021-01 P2246R0 EWG Evolution
P2259R1 Repairing input range adaptors and counted_iterator Tim Song 2021-01-13 2021-01 P2259R0 LWG Library
P2266R0 Simpler implicit move Arthur O'Dwyer 2021-01-07 2021-01   EWG Evolution,CWG Core
P2276R0 Fix std::cbegin(), std::ranges::cbegin, and cbegin() for span (fix of wrong fix of lwg3320) Nicolai Josuttis 2021-01-15 2021-01   LEWG Library Evolution,LWG Library
P2277R0 Packs outside of Templates Barry Revzin 2021-01-03 2021-01   EWG Evolution
P2278R0 cbegin should always return a constant iterator Barry Revzin 2021-01-10 2021-01   LEWG Library Evolution
P2279R0 We need a language mechanism for customization points Barry Revzin 2021-01-15 2021-01   EWG Evolution
P2280R0 Using unknown references in constant expressions Barry Revzin 2021-01-13 2021-01   EWG Evolution
P2281R0 Clarifying range adaptor objects Tim Song 2021-01-14 2021-01   LWG Library
P2283R0 constexpr for specialized memory algorithms Michael Schellenberger Costa 2021-01-12 2021-01   LEWG Library Evolution
P2285R0 Are default function arguments in the immediate context? Andrzej Krzemieński 2021-01-14 2021-01   EWG Evolution
P2286R0 Formatting Ranges Barry Revzin 2021-01-15 2021-01   LEWG Library Evolution
P2287R0 Designated-initializers for base classes Barry Revzin 2021-01-20 2021-01   EWG Evolution

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

A summary of the year and the future.

C++ at the end of 2020

by Bartlomiej Filipek

From the article:

While 2020 was a crazy and hard year we were fortunate - C++20 was accepted and published, and the work on new features continues.

As usually every year, here’s my overview of the year: the standardization process, features, implementation, compilers, tools, books and more...

2020-12 mailing available

The 2020-12 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4878 Working Draft, Standard for Programming Language C++ Thomas Köppe 2020-12-15 2020-12   All of WG21
N4879 Editors' Report - Programming Languages - C++ Thomas Köppe 2020-12-15 2020-12   All of WG21
P0401R5 Providing size feedback in the Allocator interface Chris Kennelly 2020-12-14 2020-12 P0401R4 LWG Library
P0561R5 An RAII Interface for Deferred Reclamation Geoffrey Romer 2020-12-15 2020-12 P0561R4 LWG Library
P0849R6 auto(x): decay-copy in the language Zhihao Yuan 2020-12-15 2020-12 P0849R5 LEWG Library Evolution,CWG Core,LWG Library
P0901R8 Size feedback in operator new Chris Kennelly 2020-12-14 2020-12 P0901R7 CWG Core
P1030R4 std::filesystem::path_view Niall Douglas 2020-12-15 2020-12 P1030R3 LEWG Library Evolution
P1072R6 basic_string::resize_and_overwrite Chris Kennelly 2020-12-14 2020-12 P1072R5 LEWG Library Evolution,LWG Library
P1102R2 Down with ()! Alex Christensen 2020-12-15 2020-12 P1102R1 CWG Core
P1315R6 secure_clear (update to N2599) Miguel Ojeda 2020-12-18 2020-12 P1315R5 LEWG Library Evolution,LWG Library
P1478R6 Byte-wise atomic memcpy Hans Boehm 2020-12-14 2020-12 P1478R5 LEWG Library Evolution
P1642R5 Freestanding Library: Easy [utilities], [ranges], and [iterators] Ben Craig 2020-12-10 2020-12 P1642R4 LEWG Library Evolution
P1689R3 Format for describing dependencies of source files Ben Boeckel 2020-12-09 2020-12 P1689R2 SG15 Tooling,SG16 Unicode,EWG Evolution
P2077R2 Heterogeneous erasure overloads for associative containers Konstantin Boyarinov 2020-12-15 2020-12 P2077R1 LEWG Library Evolution
P2136R2 invoke_r Zhihao Yuan 2020-12-05 2020-12 P2136R1 LWG Library
P2175R0 Composable cancellation for sender-based async operations Lewis Baker 2020-12-15 2020-12   SG1 Concurrency and Parallelism
P2186R1 Removing Garbage Collection Support JF Bastien 2020-12-14 2020-12 P2186R0 CWG Core,LWG Library
P2195R1 Electronic Straw Polls Bryce Adelstein Lelbach 2020-11-22 2020-12 P2195R0 All of WG21
P2213R1 Executors Naming Amir Kirsh 2020-12-15 2020-12 P2213R0 SG1 Concurrency and Parallelism
P2216R1 std::format improvements Victor Zverovich 2020-11-25 2020-12 P2216R0 LEWG Library Evolution
P2233R3 2020 Fall Library Evolution Polls Bryce Adelstein Lelbach 2020-11-22 2020-12 P2233R2 LEWG Library Evolution
P2238R0 Core Language Working Group "tentatively ready" issues for the November, 2020 meeting William M. (Mike) Miller 2020-11-28 2020-12   All of WG21
P2247R1 2020 Library Evolution Report Bryce Adelstein Lelbach 2020-12-03 2020-12 P2247R0 LEWG Library Evolution
P2248R1 Enabling list-initialization for algorithms Giuseppe D'Angelo 2020-11-26 2020-12 P2248R0 LEWGI SG18: LEWG Incubator
P2262R0 2020 Fall Library Evolution Poll Outcomes Bryce Adelstein Lelbach 2020-12-02 2020-12   LEWG Library Evolution
P2263R0 A call for a WG21 managed chat service Tom Honermann 2020-12-14 2020-12   All of WG21
P2264R0 Make assert() macro user friendly for C and C++ Peter Sommerlad 2020-12-16 2020-12   LEWGI SG18: LEWG Incubator,SG22 Compatability,LEWG Library Evolution
P2265R0 Renaming any_invocable Kevlin Henney 2020-12-06 2020-12   LEWG Library Evolution
P2268R0 Freestanding Roadmap Ben Craig 2020-12-10 2020-12   SG14 Low Latency
P2272R0 Safety & Security Review Board Matthew Butler 2020-12-15 2020-12   SG12 Undefined and Unspecified Behavior,SG14 Low Latency,EWG Evolution,LEWG Library Evolution,Direction Group
P2273R0 Making std::unique_ptr constexpr Andreas Fertig 2020-12-09 2020-12   LEWG Library Evolution
P2274R0 C and C++ Compatibility Study Group Aaron Ballman 2020-12-13 2020-12   SG22 Compatability

Remembering Beman Dawes

Remembering Beman Dawes

by Bjarne Stroustrup and Herb Sutter

beman.jpgOn December 1, we lost Beman Dawes, one of the most influential people in C++’s history. The C++ committee and communities, and we personally, owe Beman a lot. Although no funeral is planned because of Covid, we can all keep Beman and his many contributions, and his wife Sonda and their family, in our thoughts at this difficult time.

Beman was a member of the C++ standards committee (WG21) since 1992 and chair of the Library Working Group for five years during the completion of the first C++ standard, C++98.

I (Bjarne) remember that in 1994, the adoption of the STL into the standard was most uncertain because many doubted its utility and feared its novelty. At a critical point, Beman spoke up and calmly explained to the committee that he had thought the STL too complex for ordinary programmers, but as an exercise he had implemented about 10% of it himself so he no longer considered it beyond the standard. It can be argued that the STL and the techniques it pioneered saved C++ as a living language. Without Beman, this may very well not have happened.

Beman was the original developer of <filesystem> and shepherded it through its tortuous path into the standard. When it mattered, he could be patient.

Boost was an “invention” of Beman’s as a cofounder with Dave Abrahams and soon many others. Like many, Beman decided (correctly) that lack of quality libraries was a startling weakness of C++ — we had and have an incredible number of libraries, but they have no shared style and often don’t easily interoperate. Beman’s key idea was to create a community around the development of libraries that could complement the standard library. Many of the most successful Boost libraries are now part of the standard and used world-wide. In support of the community idea, Beman was one of the founders of BoostCon (later called C++ Now). That conference created an important early hub where the people working on further evolution of the C++ library and language after the first standard could meet to socialize and exchange ideas, a culture that has grown broader and now flourishes at a number of conferences.

We have relied on Beman's skills and wisdom broadly: When the Standard C++ Foundation was created in 2012, Beman was one of the founding directors along with us. When WG21 created the Library Evolution group in 2013 to have a separate group be responsible for the overall design of the C++ standard library, Beman kindly agreed to step up to be its founding chair to get it started on the right foot and find his own replacement. When WG21 created the Direction Group in 2017 so that we could have a small group of the most wise and respected C++ experts in the world to recommend direction for C++ evolution, Beman was a natural choice to invite as a founding member, and we are glad he accepted that too.

Clearly, every C++ programmer owes a debt to Beman. He was an experienced application developer who brought his insights, skills, and energies to the standards committee. Without him, C++ would not be what it is today.

On a personal note, I (Herb) attended my first WG21 meeting in summer 1997. Even then when the committee was smaller, it was a pretty intimidating thing to be an unknown person showing up unannounced to a gathering of the Who’s Who of all the world-class experts I had known only from their books and reputations. Among many who welcomed me, Beman was key — I spent most of my time there in the Library group, Beman’s group, and all I felt qualified to do was sit and listen and absorb how things worked. Beman personally, and the warm culture he fostered in his group, made me feel comfortable and welcome enough that I learned a lot that week, attended another meeting, and another, and never quite stopped.

Thanks, Beman. Thank you, very much, for your enduring contribution that has benefited so many people.

2020-11 mailing available

The 2020-11 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4869 WG21 Pre-Autumn 2020 telecon minutes Nina Ranns 2020-11-05 2020-11   All of WG21
N4870 WG21 2020-02 Prague Minutes of Meeting Nina Ranns 2020-11-09 2020-11   All of WG21
N4871 WG21 Pre-Autumn 2020 telecon minutes Nina Ranns 2020-11-09 2020-11   All of WG21
N4873 Working Draft, C++ Extensions for Library Fundamentals, Version 3 Thomas Köppe 2020-11-09 2020-11   All of WG21
N4874 Editor's Report: C++ Extensions for Library Fundamentals, Version 3 Thomas Köppe 2020-11-09 2020-11   All of WG21
N4875 WG21 admin telecon meeting: Winter 2021 Herb Sutter 2020-11-14 2020-11   All of WG21
N4876 WG21 virtual meeting: Winter 2021 Herb Sutter 2020-11-14 2020-11   All of WG21
N4877 WG21 2020-11 Virtual Meeting Minutes of Meeting Nina Ranns 2020-11-19 2020-11   All of WG21
P0401R4 Providing size feedback in the Allocator interface Chris Kennelly 2020-11-14 2020-11 P0401R3 LWG Library
P0447R11 Introduction of std::colony to the standard library Matt Bentley 2020-11-06 2020-11 P0447R10 SG14 Low Latency,LEWG Library Evolution,All of WG21
P0849R5 auto(x): decay-copy in the language Zhihao Yuan 2020-11-11 2020-11 P0849R4 EWG Evolution
P0901R7 Size feedback in operator new Chris Kennelly 2020-11-13 2020-11 P0901R6 CWG Core
P0943R6 Support C atomics in C++ Hans Boehm 2020-11-14 2020-11 P0943R5 All of WG21
P1012R1 Ternary Right Fold Expression Frank Zingsheim 2020-11-22 2020-11 P1012R0 EWG Evolution
P1018R7 C++ Language Evolution status �� pandemic edition �� 2020/03–2020/10 JF Bastien 2020-10-30 2020-11 P1018R6 EWG Evolution,All of WG21
P1102R1 Down with ()! Alex Christensen 2020-11-20 2020-11 P1102R0 CWG Core
P1206R3 ranges::to: A function to convert any range to a container Corentin Jabot 2020-11-22 2020-11 P1206R2 LEWG Library Evolution
P1478R5 Byte-wise atomic memcpy Hans Boehm 2020-11-14 2020-11 P1478R4 LEWG Library Evolution
P1787R6 Declarations and where to find them S. Davis Herring 2020-10-28 2020-11 P1787R5 CWG Core
P1885R4 Naming Text Encodings to Demystify Them Corentin Jabot 2020-11-22 2020-11 P1885R3 SG16 Unicode,LEWG Library Evolution
P1950R1 An indirect value-type for C++ Jonathan Coe 2020-11-22 2020-11 P1950R0 LEWG Library Evolution
P2012R0 Fix the range-based for loop, Rev0ix the range-based for loop Nicolai Josuttis 2020-11-15 2020-11   EWG Evolution,CWG Core
P2160R1 Locks lock lockables (wording for LWG 2363) Tim Song 2020-11-14 2020-11 P2160R0 LWG Library
P2164R3 views::enumerate Corentin Jabot 2020-11-22 2020-11 P2164R2 LEWG Library Evolution
P2181R1 Correcting the Design of Bulk Execution Jared Hoberock 2020-11-13 2020-11 P2181R0 SG1 Concurrency and Parallelism
P2182R1 Contract Support: Defining the Minimum Viable Feature Set Andrzej Krzemieński 2020-11-16 2020-11 P2182R0 SG21 Contracts
P2211R0 Exhaustiveness Checking for Pattern Matching David Sankel 2020-11-16 2020-11   EWG Evolution
P2212R2 Relax Requirements for time_point::clock Alexey Dmitriev 2020-11-12 2020-11 P2212R1 LEWG Library Evolution,LWG Library
P2233R1 2020 Fall Library Evolution Polls Bryce Adelstein Lelbach 2020-10-22 2020-11 P2233R0 LEWG Library Evolution
P2233R2 2020 Fall Library Evolution Polls Bryce Adelstein Lelbach 2020-10-22 2020-11 P2233R1 LEWG Library Evolution
P2242R0 Non-literal variables (and labels and gotos) in constexpr functions Ville Voutilainen 2020-10-21 2020-11   EWG Evolution,CWG Core
P2246R0 Character encoding of diagnostic text Aaron Ballman 2020-10-26 2020-11   SG16 Unicode,EWG Evolution
P2247R0 2020 Library Evolution Report Bryce Adelstein Lelbach 2020-11-03 2020-11   LEWG Library Evolution
P2248R0 Enabling list-initialization for algorithms Giuseppe D'Angelo 2020-11-01 2020-11   LEWGI SG18: LEWG Incubator
P2250R0 Scheduler vs Executor Ruslan Arutyunyan 2020-11-04 2020-11   SG1 Concurrency and Parallelism,LEWG Library Evolution
P2251R0 Require span & basic_string_view to be Trivially Copyable Nevin Liber 2020-11-08 2020-11   LEWGI SG18: LEWG Incubator
P2253R0 SG16: Unicode meeting summaries 2020-09-09 through 2020-11-11 Tom Honermann 2020-11-15 2020-11   SG16 Unicode
P2254R0 Executors Beyond Invocables Jared Hoberock 2020-11-15 2020-11   SG1 Concurrency and Parallelism,LEWG Library Evolution
P2255R0 A type trait to detect reference binding to temporary Tim Song 2020-11-14 2020-11   EWG Evolution,LEWG Library Evolution
P2257R0 Blocking is an insufficient description for senders and receivers Dalton M. Woodard 2020-11-22 2020-11   LEWG Library Evolution
P2259R0 Repairing input range adaptors and counted_iterator Tim Song 2020-11-19 2020-11   LWG Library
P2260R0 WG21 2020-11 Virtual Meeting Record of Discussion Nina Ranns 2020-11-19 2020-11   All of WG21

2020-10 mailing available

The 2020-10 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4863 Agenda for Fall Virtual WG21/PL22.16 Meeting John Spicer 2020-10-02 2020-10   All of WG21
N4864 WG21 virtual meeting: Autumn 2020 Herb Sutter 2020-09-21 2020-10   All of WG21
N4865 Response to Editorial Comments: ISO/IEC DIS 14882, Programming Language C++ Barry Hedquist 2020-10-19 2020-10   All of WG21
N4866 WG21 admin telecon meeting: Pre-Autumn 2020 Herb Sutter 2020-10-14 2020-10   All of WG21
N4867 Editors' Report -- Programming Languages -- C++ Richard Smith 2020-10-18 2020-10   All of WG21
N4868 Working Draft, Standard for Programming Language C++ Richard Smith 2020-10-18 2020-10   All of WG21
P0847R5 Deducing this Barry Revzin 2020-10-16 2020-10 P0847R4 EWG Evolution
P0849R4 auto(x): decay-copy in the language Zhihao Yuan 2020-10-11 2020-10 P0849R3 EWG Evolution,LWG Library
P0870R4 A proposal for a type trait to detect narrowing conversions Giuseppe D'Angelo 2020-09-23 2020-10 P0870R3 SG6 Numerics
P1048R1 A proposal for a type trait to detect scoped enumerations Juan Alday 2020-10-16 2020-10 P1048R0 LWG Library
P1206R2 ranges::to: A function to convert any range to a container Corentin Jabot 2020-10-12 2020-10 P1206R1 LEWG Library Evolution
P1401R4 Narrowing contextual conversions to bool Andrzej Krzemieński 2020-10-08 2020-10 P1401R3 EWG Evolution
P1525R1 One-Way execute is a Poor Basis Operation Eric Niebler 2020-10-14 2020-10 P1525R0 LEWG Library Evolution
P1759R3 Native handles and file streams Elias Kosunen 2020-10-12 2020-10 P1759R2 LEWG Library Evolution
P1938R2 if consteval Barry Revzin 2020-10-13 2020-10 P1938R1 EWG Evolution
P2029R4 Proposed resolution for core issues 411, 1656, and 2333; escapes in character and string literals Tom Honermann 2020-10-19 2020-10 P2029R3 CWG Core
P2066R4 Suggested draft TS for C++ Extensions for Minimal Transactional Memory Jens Maurer 2020-10-14 2020-10 P2066R3 SG1 Concurrency and Parallelism,EWG Evolution,LEWG Library Evolution
P2093R2 Formatted output Victor Zverovich 2020-10-15 2020-10 P2093R1 LEWG Library Evolution
P2148R0 Library Evolution Design Guidelines CJ Johnson 2020-09-23 2020-10   LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P2171R1 Rebasing the Networking TS on C++20 (revision 1) Jonathan Wakely 2020-10-15 2020-10 P2171R0 LWG Library
P2171R2 Rebasing the Networking TS on C++20 (revision 2) Jonathan Wakely 2020-10-18 2020-10 P2171R1 LWG Library
P2187R5 std::swap_if, std::predictable Nathan Myers 2020-10-19 2020-10 P2187R4 LEWG Library Evolution
P2192R3 std::valstat - Returns Handling Dusan B. Jovanovic 2020-10-13 2020-10 P2192R2 LEWGI SG18: LEWG Incubator
P2198R1 Freestanding Feature-Test Macros and Implementation-Defined Extensions Ben Craig 2020-10-04 2020-10 P2198R0 SG10 Feature Test
P2214R0 A Plan for C++23 Ranges Barry Revzin 2020-10-14 2020-10   LEWG Library Evolution
P2223R1 Trimming whitespaces before line splicing Corentin Jabot 2020-10-17 2020-10 P2223R0 EWG Evolution,CWG Core
P2226R0 A function template to move from an object and reset it to its default constructed state Giuseppe D'Angelo 2020-10-18 2020-10   SG1 Concurrency and Parallelism,LEWGI SG18: LEWG Incubator,SG20 Education
P2227R0 Update normative reference to POSIX Jonathan Wakely 2020-10-02 2020-10   LWG Library
P2228R0 Slide Deck for P1949 EWG Presentation 20200924 Steve Downey 2020-10-15 2020-10   EWG Evolution
P2231R0 Add further constexpr support for optional/variant Barry Revzin 2020-10-13 2020-10   LEWG Library Evolution
P2233R0 2020 Fall Library Evolution Polls Bryce Adelstein Lelbach 2020-10-15 2020-10   LEWG Library Evolution
P2234R0 Consider a UB and IF-NDR Audit Scott Schurr 2020-10-14 2020-10   SG12 Undefined and Unspecified Behavior,EWGI SG17: EWG Incubator
P2235R0 Disentangling schedulers and executors Ville Voutilainen 2020-10-15 2020-10   SG1 Concurrency and Parallelism,LEWG Library Evolution
P2236R0 C++ Standard Library Issues to be moved in Virtual Plenary, Nov. 2020 Jonathan Wakely 2020-10-15 2020-10   All of WG21
P2237R0 Metaprogramming Andrew Sutton 2020-10-15 2020-10   SG7 Reflection

2020-09 mailing available

The 2020-09 mailing of new standards papers is now available.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
P0288R5 any_invocable Ryan McDougall, Matt Calabrese 2020-09-03 2020-09 P0288R4 LWG Library
P0443R14 A Unified Executors Proposal for C++ Jared Hoberock 2020-09-22 2020-09 P0443R13 SG1 Concurrency and Parallelism,LEWG Library Evolution
P0881R7 A Proposal to add stacktrace library Antony Polukhin 2020-09-16 2020-09 P0881R6 LWG Library
P0958R2 Networking TS changes to support proposed Executors TS Christopher Kohlhoff 2020-09-22 2020-09 P0958R1 SG4 Networking
P1322R2 Networking TS enhancement to enable custom I/O executors Christopher Kohlhoff 2020-09-22 2020-09 P1322R1 SG1 Concurrency and Parallelism,SG4 Networking,LEWG Library Evolution
P1371R3 Pattern Matching Michael Park 2020-09-15 2020-09 P1371R2 EWG Evolution
P1701R1 Inline Namespaces: Fragility Bites Nathan Sidwell 2020-09-13 2020-09 P1701R0 EWG Evolution
P1885R3 Naming Text Encodings to Demystify Them Corentin Jabot 2020-09-14 2020-09 P1885R2 SG16 Unicode,LEWG Library Evolution
P1949R6 C++ Identifier Syntax using Unicode Standard Annex 31 Steve Downey 2020-09-15 2020-09 P1949R5 EWG Evolution,CWG Core
P2013R3 Freestanding Language: Optional ::operator new Ben Craig 2020-09-13 2020-09 P2013R2 EWG Evolution
P2029R3 Proposed resolution for core issues 411, 1656, and 2333; escapes in character and string literals Tom Honermann 2020-09-11 2020-09 P2029R2 CWG Core
P2066R3 Suggested draft TS for C++ Extensions for Transaction Memory Light Jens Maurer 2020-09-15 2020-09 P2066R2 SG1 Concurrency and Parallelism,EWG Evolution,LEWG Library Evolution
P2077R1 Heterogeneous erasure overloads for associative containers Konstantin Boyarinov 2020-09-15 2020-09 P2077R0 LEWG Library Evolution
P2138R3 Rules of Design<=>Specification engagement Ville Voutilainen 2020-09-15 2020-09 P2138R2 EWG Evolution,LEWG Library Evolution
P2145R1 Evolving C++ Remotely Bryce Adelstein Lelbach 2020-09-15 2020-09 P2145R0 All of WG21
P2164R2 views::enumerate Corentin Jabot 2020-09-13 2020-09 P2164R1 LEWG Library Evolution
P2166R1 A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr Yuriy Chernyshov 2020-09-07 2020-09 P2166R0 LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library
P2169R2 A Nice Placeholder With No Name Corentin Jabot 2020-09-13 2020-09 P2169R1 EWG Evolution
P2192R2 std::valstat -Transparent Returns Handling Dusan B. Jovanovic 2020-09-14 2020-09 P2192R1 LEWGI SG18: LEWG Incubator
P2194R0 The character set of the internal representation should be Unicode Corentin Jabot 2020-08-24 2020-09   SG16 Unicode,EWG Evolution,CWG Core
P2195R0 Electronic Straw Polls Bryce Adelstein Lelbach 2020-09-15 2020-09   All of WG21
P2206R0 Executors Thread Pool review report Ruslan Arutyunyan 2020-09-02 2020-09   LEWG Library Evolution
P2212R1 Relax Requirements for time_point::clock Alexey Dmitriev 2020-09-14 2020-09 P2212R0 LEWGI SG18: LEWG Incubator
P2215R1 "Undefined behavior" and the concurrency memory model Hans Boehm 2020-09-14 2020-09 P2215R0 SG1 Concurrency and Parallelism,SG12 Undefined and Unspecified Behavior
P2216R0 std::format improvements Victor Zverovich 2020-09-06 2020-09   LEWG Library Evolution
P2217R0 SG16: Unicode meeting summaries 2020-06-10 through 2020-08-26 Tom Honermann 2020-08-29 2020-09   SG16 Unicode
P2218R0 More flexible optional::value_or() Marc Mutz 2020-09-15 2020-09   LEWGI SG18: LEWG Incubator
P2219R0 P0443 Executors Issues Needing Resolution Jared Hoberock 2020-09-10 2020-09   SG1 Concurrency and Parallelism
P2220R0 redefine properties in P0443 Kirk Shoop 2020-09-14 2020-09   LEWG Library Evolution
P2221R0 define P0443 cpos with tag_invoke Kirk Shoop 2020-09-14 2020-09   LEWG Library Evolution
P2223R0 Trimming whitespaces before line splicing Corentin Jabot 2020-09-13 2020-09   EWG Evolution,CWG Core
P2224R0 A Better bulk_schedule Michael Garland 2020-09-14 2020-09   SG1 Concurrency and Parallelism

C++20 Approved -- Herb Sutter

C++20 passed unanimously, on track to publish later this year.

C++20 Approved

by Herb Sutter

About the article

On Friday September 4, C++20’s DIS (Draft International Standard) ballot ended, and it passed unanimously. This means that C++20 has now received final technical approval and is done with ISO balloting, and we expect it to be formally published toward the end of 2020 after we finish a final round of ISO editorial work.

As always, we are not counting on ISO’s publication speed to call it C++20, it’s C++20 because WG21 completed technical work in February. If for some reason ISO needs until January to get it out the door and assigns it a 2021 publication date, the standard will still be referred to as C++20. That is already its industry name, and 300,000+ search hits can’t be (retroactively made) wrong!