Standardization

Five Awesome C++ Papers for the Q1 2021 and C++23 Status--Bartlomiej Filipek

c++ continues to evolve.

Five Awesome C++ Papers for the Q1 2021 and C++23 Status

by Bartlomiej Filipek

From the article:

Between 2018 and 2020, I released several articles with top 5 proposals just around a new ISO C++ meeting happened. Since March 2020, this pattern broke as the meeting went online. Why not restart the series? smile We can look at the recent papers from a whole Quarter.

Let’s start!

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-03 Mailing Available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4884 WG21 2021-02 Virtual Meeting Minutes of Meeting Nina Ranns 2021-03-09 2021-03   All of WG21
N4885 Working Draft, Standard for Programming Language C++ Thomas Köppe 2021-03-16 2021-03   All of WG21
N4886 Editors' Report - Programming Languages - C++ Thomas Köppe 2021-03-16 2021-03   All of WG21
P0448R4 A strstream replacement using span as buffer Peter Sommerlad 2021-03-01 2021-03 P0448R3 LWG Library
P0958R3 Networking TS changes to support proposed Executors TS Christopher Kohlhoff 2021-03-24 2021-03 P0958R2 SG4 Networking
P1018R9 C++ Language Evolution status  pandemic edition 2021/01–2021/03 JF Bastien 2021-03-08 2021-03 P1018R8 EWG Evolution,All of WG21
P1315R7 secure_clear Miguel Ojeda 2021-03-10 2021-03 P1315R6 CWG Core,LWG Library
P1425R4 Iterators pair constructors for stack and queue Corentin Jabot 2021-03-05 2021-03 P1425R3 LEWG Library Evolution,LWG Library
P1518R1 Stop overconstraining allocators in container deduction guides Arthur O'Dwyer 2021-02-23 2021-03 P1518R0 LWG Library
P1518R2 Stop overconstraining allocators in container deduction guides Arthur O'Dwyer 2021-03-14 2021-03 P1518R1 LWG Library
P1875R2 Transactional Memory Lite Support in C++ Michael Spear 2021-03-14 2021-03 P1875R1 SG1 Concurrency and Parallelism,EWG Evolution
P2025R2 Guaranteed copy elision for return variables Anton Zhilin 2021-03-24 2021-03 P2025R1 EWG Evolution,CWG Core
P2041R1 template = delete David Stone 2021-03-10 2021-03 P2041R0 EWG Evolution
P2066R6 Suggested draft TS for C++ Extensions for Minimal Transactional Memory Jens Maurer 2021-03-15 2021-03 P2066R5 SG1 Concurrency and Parallelism,SG5 Transactional Memory,EWG Evolution,LEWG Library Evolution
P2093R5 Formatted output Victor Zverovich 2021-03-14 2021-03 P2093R4 LEWG Library Evolution
P2210R2 Superior String Splitting Barry Revzin 2021-03-05 2021-03 P2210R1 LWG Library
P2242R2 Non-literal variables (and labels and gotos) in constexpr functions Ville Voutilainen 2021-03-15 2021-03 P2242R1 EWG Evolution,CWG Core
P2266R1 Simpler implicit move Arthur O'Dwyer 2021-03-13 2021-03 P2266R0 EWG Evolution,CWG Core
P2299R0 `mdspan` and CTAD Bryce Adelstein Lelbach 2021-02-27 2021-03   LEWG Library Evolution
P2303R1 Function literals and value closures Jens Gustedt 2021-03-01 2021-03 P2303R0 SG22 Compatability
P2305R1 Type inference for variable definitions and function returns Jens Gustedt 2021-03-01 2021-03 P2305R0 SG22 Compatability
P2313R0 Core Language Working Group "tentatively ready" issues for the February, 2021 meeting William M. (Mike) Miller 2021-03-24 2021-03   All of WG21
P2314R1 Character sets and encodings Jens Maurer 2021-03-15 2021-03 P2314R0 SG16 Unicode,EWG Evolution
P2318R0 A Provenance-aware Memory Object Model for C Jens Gustedt 2021-02-27 2021-03   SG22 Compatability
P2322R1 ranges::fold Barry Revzin 2021-03-16 2021-03 P2322R0 LEWG Library Evolution
P2325R1 Views should not be required to be default constructible Barry Revzin 2021-03-16 2021-03 P2325R0 LEWG Library Evolution
P2328R0 join_view should join all views of ranges Tim Song 2021-03-15 2021-03   LEWG Library Evolution
P2330R0 WG21 2021-02 Virtual Meeting Record of Discussion Nina Ranns 2021-03-09 2021-03   All of WG21
P2331R0 Unsequenced functions Étienne Alepins 2021-03-02 2021-03   SG22 Compatability
P2332R0 Establishing std::hive as replacement name for the proposed std::colony container Matthew Bentley 2021-03-08 2021-03   LEWG Library Evolution
P2333R0 2021 Winter Library Evolution Poll Outcomes Bryce Adelstein Lelbach 2021-03-12 2021-03   LEWG Library Evolution
P2334R0 Add support for preprocessing directives elifdef and elifndef Melanie Blower 2021-03-12 2021-03   SG22 Compatability,EWG Evolution
P2338R0 Freestanding Library: Character primitives and the C library Ben Craig 2021-03-13 2021-03   SG14 Low Latency,SG22 Compatability,LEWG Library Evolution
P2339R0 Contract violation handlers Andrzej Krzemieński 2021-03-15 2021-03   SG21 Contracts
P2340R0 Clarifying the status of the "C headers" Thomas Köppe 2021-03-15 2021-03   SG22 Compatability,LEWG Library Evolution,LWG Library
P2400R0 Library Evolution Report Bryce Adelstein Lelbach 2021-02-27 2021-03   All of WG21

2021-02 Mailing Available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
N4880 PL22.16/WG21 agenda: 22 February 2021, Virtual Meeting John Spicer 2021-01-23 2021-02   All of WG21
N4881 WG21 virtual meetings: 2021-02, -06, and -10 Herb Sutter 2021-02-08 2021-02   All of WG21
N4882 WG21 admin telecon meetings: 2021-02, -05, and -09 Herb Sutter 2021-02-08 2021-02   All of WG21
N4883 WG21 February 2021 admin telecon minutes Nina Ranns 2021-02-16 2021-02   All of WG21
P0401R6 Providing size feedback in the Allocator interface Chris Kennelly 2021-02-15 2021-02 P0401R5 LWG Library
P0448R3 A strstream replacement using span as buffer Peter Sommerlad 2021-02-17 2021-02 P0448R2 LWG Library
P0849R7 auto(x): decay-copy in the language Zhihao Yuan 2021-02-15 2021-02 P0849R6 EWG Evolution,LWG Library
P1018R8 C++ Language Evolution status pandemic edition 2020/11–2021/01 JF Bastien 2021-01-27 2021-02 P1018R7 EWG Evolution,All of WG21
P1072R7 basic_string::resize_and_overwrite Chris Kennelly 2021-02-15 2021-02 P1072R6 LWG Library
P1322R3 Networking TS enhancement to enable custom I/O executors Christopher Kohlhoff 2021-02-14 2021-02 P1322R2 SG4 Networking,LEWG Library Evolution
P1425R3 Iterators pair constructors for stack and queue Corentin Jabot 2021-02-18 2021-02 P1425R2 LEWG Library Evolution,LWG Library
P1659R2 starts_with and ends_with Christopher Di Bella 2021-02-10 2021-02 P1659R1 LWG Library
P1659R3 starts_with and ends_with Christopher Di Bella 2021-02-19 2021-02 P1659R2 LWG Library
P1682R3 std::to_underlying JeanHeyd Meneide 2021-01-22 2021-02 P1682R2 LWG Library
P1885R5 Naming Text Encodings to Demystify Them Corentin Jabot 2021-02-15 2021-02 P1885R4 SG16 Unicode,LEWG Library Evolution
P1951R1 Default Arguments for pair's Forwarding Constructor Logan R. Smith 2021-02-21 2021-02 P1951R0 LWG Library
P2047R1 An allocator-aware optional type Nina Ranns 2021-02-19 2021-02 P2047R0 LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P2066R5 Suggested draft TS for C++ Extensions for Minimal Transactional Memory Jens Maurer 2021-02-14 2021-02 P2066R4 SG1 Concurrency and Parallelism,SG5 Transactional Memory,EWG Evolution,LEWG Library Evolution
P2093R4 Formatted output Victor Zverovich 2021-02-15 2021-02 P2093R3 LEWG Library Evolution
P2128R3 Multidimensional subscript operator Corentin Jabot 2021-02-15 2021-02 P2128R2 EWG Evolution
P2162R2 Inheriting from std::variant (resolving LWG3052) Barry Revzin 2021-02-17 2021-02 P2162R1 LEWG Library Evolution
P2164R4 views::enumerate Corentin Jabot 2021-02-18 2021-02 P2164R3 LEWG Library Evolution
P2195R2 Electronic Straw Polls Bryce Adelstein Lelbach 2021-01-27 2021-02 P2195R1 All of WG21
P2216R3 std::format improvements Victor Zverovich 2021-02-15 2021-02 P2216R2 LWG Library
P2231R1 Add further constexpr support for optional/variant Barry Revzin 2021-02-11 2021-02 P2231R0 LEWG Library Evolution
P2234R1 Consider a UB and IF-NDR Audit Scott Schurr 2021-02-13 2021-02 P2234R0 SG12 Undefined and Unspecified Behavior,EWGI SG17: EWG Incubator
P2242R1 Non-literal variables (and labels and gotos) in constexpr functions Ville Voutilainen 2021-02-14 2021-02 P2242R0 EWG Evolution,CWG Core
P2249R0 Mixed comparisons for smart pointers Giuseppe D'Angelo 2021-01-30 2021-02   LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P2280R1 Using unknown references in constant expressions Barry Revzin 2021-02-15 2021-02 P2280R0 EWG Evolution
P2281R1 Clarifying range adaptor objects Tim Song 2021-02-19 2021-02 P2281R0 LWG Library
P2286R1 Formatting Ranges Barry Revzin 2021-02-19 2021-02 P2286R0 LEWG Library Evolution
P2287R1 Designated-initializers for base classes Barry Revzin 2021-02-15 2021-02 P2287R0 EWG Evolution
P2289R0 2021 Winter Library Evolution Polls Bryce Adelstein Lelbach 2021-01-31 2021-02   LEWG Library Evolution
P2290R0 Delimited escape sequences Corentin Jabot 2021-02-18 2021-02   SG22 Compatability,EWG Evolution
P2291R0 Add Constexpr Modifiers to Functions to_chars and from_chars for Integral Types in Header Daniil Goncharov 2021-01-28 2021-02   LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library
P2295R0 Correct UTF-8 handling during phase 1 of translation Corentin Jabot 2021-02-15 2021-02   SG16 Unicode,SG22 Compatability,EWG Evolution
P2297R0 Wording improvements for encodings and character sets Corentin Jabot 2021-02-19 2021-02   SG16 Unicode
P2301R0 Add a pmr alias for std::stacktrace Steve Downey 2021-02-15 2021-02   LEWG Library Evolution,LWG Library
P2302R0 Prefer std::ranges::contains over std::basic_string_view::contains Christopher Di Bella 2021-02-10 2021-02   LEWG Library Evolution
P2303R0 Function literals and value closures Jens Gustedt 2021-02-10 2021-02   SG22 Compatability
P2304R0 Improve type generic programming Jens Gustedt 2021-02-10 2021-02   SG22 Compatability
P2305R0 Type inference for variable definitions and function returns Jens Gustedt 2021-02-10 2021-02   SG22 Compatability
P2306R0 Type-generic lambdas Jens Gustedt 2021-02-10 2021-02   SG22 Compatability
P2307R0 Lvalue closures Jens Gustedt 2021-02-10 2021-02   SG22 Compatability
P2309R0 A common C/C++ core specification Jens Gustedt 2021-02-11 2021-02   SG22 Compatability
P2310R0 Revise spelling of keywords Jens Gustedt 2021-02-11 2021-02   SG22 Compatability
P2311R0 Make false and true first-class language features Jens Gustedt 2021-02-11 2021-02   SG22 Compatability
P2312R0 Introduce the nullptr constant Jens Gustedt 2021-02-15 2021-02   SG22 Compatability
P2314R0 Character sets and encodings Jens Maurer 2021-02-12 2021-02   SG16 Unicode,EWG Evolution
P2315R0 C++ Standard Library Issues to be moved in Virtual Plenary, Feb. 2021 Jonathan Wakely 2021-02-12 2021-02   All of WG21
P2316R0 Consistent character literal encoding Corentin Jabot 2021-02-18 2021-02   SG22 Compatability,EWG Evolution
P2317R0 C++ - An Invisible foundation of everything Bjarne Stroustrup 2021-02-14 2021-02   All of WG21
P2320R0 The Syntax of Static Reflection Andrew Sutton 2021-02-15 2021-02   SG7 Reflection
P2321R0 zip Tim Song 2021-02-20 2021-02   LEWG Library Evolution
P2322R0 ranges::fold Barry Revzin 2021-02-18 2021-02   LEWG Library Evolution
P2323R0 maybe_unused attribute for labels Martin Uecker 2021-02-16 2021-02   SG22 Compatability
P2324R0 Labels at the end of compound statements (C compatibility) Martin Uecker 2021-02-16 2021-02   SG22 Compatability
P2325R0 Views should not be required to be default constructible Barry Revzin 2021-02-17 2021-02   LEWG Library Evolution

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