Standardization

A short video from Prague: C++20 is here!

Here's a 9-minute taste of what it was like to be at the Prague meeting, with attendees talking about their favorite highlights of C++20...

 

Five Awesome C++ Papers for the Prague ISO Meeting and C++20 Status--Bartlomiej Filipek

Did you know them?

Five Awesome C++ Papers for the Prague ISO Meeting and C++20 Status

by Bartlomiej Filipek

From the article:

Continuing the tradition for other ISO C++ Meetings, I prepared a blog post where you’ll learn about:

  • The current status of C++20
  • an overview about the Prague ISO C++ Meeting (10th till 15th February 2020)
  • a few interesting papers that are worth reading

Let’s start!

A Universal I/O Abstraction for C++ -- Corentin Jabot

SG-11, the study group charged of all things concurrency and parallelism made forward progress and sent the proposal to LEWG - with the hope of landing a future revision in the C++23 draft. This is rather big news given that this work has been brewing for about a decade.

A Universal I/O Abstraction for C++

by Corentin Jabot

From the article:

The year is 2020 and even consummer CPUs feature double digits number of cores, storage offers 10GB/s read speeds and networks have to accommodate ever-growing traffic.

For a long time, the C++ committee seemed to think that either async file I/O didn’t make sense or was fundamentally irreconcilable with networking. This belief would lead to two inter-incompatible APIs in the standard, which would be a nightmare in term of usability (aka ASIO and AFIO).

It seems that there is finally a way to resolve these divides:

io_uring offers very high performance I/O which doesn’t discriminate on device type.
Sender Receiver provides the composable, low-cost, non-allocating abstraction while offering a simple mental model for asynchronous operations lifetime.
Coroutines make asynchronous i/o dead simple for the 99% use case.
Asynchronous Networking is nice.

Asynchronous I/O is better.

AWAIT ALL THE THINGS!

Why were abbrev. lambdas rejected?--Barry Revzin

Did you know about the proposal?

Why were abbrev. lambdas rejected?

by Barry Revzin

From the article:

In November, 2017, I presented my proposal for abbreviated lambdas (P0573R2) to Evolution in Albuquerque. It was rejected (6-17), though the group was willing to consider future proposals for shorter lambdas which present new technical information (18-2).

Since then, there’s been a lot of confusion about what actually happened and why it was rejected, and part of this was my fault for not doing a good job communicating this to interested parties. Actually, that’s generous - I didn’t really communicate anything. So here is my making up for lost time by actually conveying this information...

2020-01 pre-Prague mailing available (2 of 2)

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup Disposition
P1970R1 Consistency for size() functions Hannes Hauswedell 2020-01-13 2020-01 P1970R0 Library
P1976R1 Fixed-size 'span' construction from dynamic-size range Tomasz Kamiński 2020-01-03 2020-01 P1976R0 Library
P1985R0 Universal template parameters Gašper Ažman, Mateusz Pusz 2020-01-13 2020-01 EWGI
P1988R0 Allow Templates in Local Classes Steve Downey 2020-01-13 2020-01 EWGI, Evolution
P1990R0 Add operator[] to std::initializer_list Daniil Goncharov, Antony Polukhin 2019-12-16 2020-01 LEWGI, Library Evolution, Library
P1993R1 Restore shared state to bulk_execute Jared Hoberock 2020-01-12 2020-01 P1993R0 SG1, Library Evolution
P1997R1 Relaxing Restrictions on Arrays Krystian Stasiowski, Theodoric Stier 2020-01-13 2020-01 P1997R0 Evolution
P1998R1 Simple Facility for Lossless Integer Conversion Ryan McDougall 2020-01-08 2020-01 P1998R0 SG6, LEWGI
P2000R0 Direction for ISO C++ Michael Wong 2020-01-13 2020-01 WG21
P2002R0 Defaulted comparison specification cleanups Richard Smith 2019-12-17 2020-01 Core
P2003R0 Fixing Internal and External Linkage Entities in Header Units Michael Spencer 2020-01-13 2020-01 SG2, Evolution
P2004R0 Numbers and their Scopes Antony Polukhin 2019-12-17 2020-01 SG6, LEWGI
P2005R0 A Brief 2D Graphics Review James Berrow 2019-12-21 2020-01 SG13
P2006R0 Eliminating heap-allocations in sender/receiver with connect()/start() as basis operations Lewis Baker, Eric Niebler, Kirk Shoop, Lee Howes 2020-01-13 2020-01 SG1, Library Evolution
P2007R0 `std::from_chars` should work with `std::string_view` Mateusz Pusz 2020-01-10 2020-01 LEWGI, Library Evolution
P2008R0 Enable variable template template parameters Mateusz Pusz 2020-01-10 2020-01 EWGI
P2009R0 SG16: Unicode meeting summaries 2019-10-09 through 2019-12-11 Tom Honermann 2019-12-28 2020-01 SG16
P2010R0 Remove iostream operators from P1889 Daniil Goncharov 2019-12-27 2020-01 SG6, LEWGI
P2011R0 A pipeline-rewrite operator Barry Revzin, Colby Pike 2020-01-07 2020-01 Evolution
P2013R0 Freestanding Language: Optional ::operator new Ben Craig 2020-01-10 2020-01 SG14, Evolution
P2014R0 Proposed resolution for US061/US062 - aligned allocation of coroutine frames Lewis Baker, Gor Nishanov 2020-01-13 2020-01 Evolution
P2016R0 A step parameter for iota Corentin Jabot 2020-01-14 2020-01 Library Evolution
P2017R0 Conditionally safe ranges Barry Revzin 2020-01-07 2020-01 Library
P2020R0 Locales, Encodings and Unicode Corentin Jabot 2020-01-13 2020-01 SG16
P2021R0 Negative zero strikes again Victor Zverovich 2020-01-09 2020-01 Library Evolution
P2024R0 Bloomberg Analysis of Unified Executors David Sankel, Frank Birbacher, Marina Efimova, Dietmar Kuhl, Vern Riedlin 2020-01-13 2020-01 Library Evolution
P2025R0 Guaranteed copy elision for named return objects Anton Zhilin 2020-01-08 2020-01 EWGI
P2026R0 A Constituent Study Group for Safety-Critical Applications Ryan McDougall, Bryce Adelstein Lelbach, JF Bastien, Andreas Weis, Ruslan Arutyunyan, Ilya Burylov 2020-01-14 2020-01 WG21, Evolution, Library Evolution
P2027R0 Moved-from objects need not be valid Geoff Romer 2020-01-10 2020-01 Library Evolution, Library
P2028R0 What is ABI, and What Should WG21 Do About It? Titus Winters 2020-01-10 2020-01 Evolution, Library Evolution
P2029R0 Proposed resolution for core issues 411, 1656, and 2333; escapes in character and string literals Tom Honermann 2020-01-12 2020-01 Core
P2030R0 SG19: Machine Learning 2019/10/10-2020/01/09 Michael Wong 2020-01-10 2020-01 SG19
P2031R0 SG14: Meeting Minutes 2019/10/08-2020/01/07 Michael Wong 2020-01-10 2020-01 SG14
P2033R0 History of Executor Properties Jared Hoberock 2020-01-10 2020-01 SG1
P2034R0 Partially Mutable Lambda Captures Ryan McDougall 2020-01-11 2020-01 EWGI
P2035R0 Value Proposition: Allocator-Aware (AA) Software Pablo Halpern, John Lakos 2020-01-13 2020-01 LEWGI, Library Evolution
P2036R0 Changing scope for lambda trailing-return-type Barry Revzin 2020-01-12 2020-01 Evolution
P2037R0 String's gratuitous assignment Andrzej Krzemieński 2020-01-11 2020-01 Library Evolution
P2038R0 Proposed nomenclature for contract-related proposals Andrzej Krzemieński, Ryan McDougall 2020-01-11 2020-01 SG21
P2039R0 do_until Loop Menashe Rosemberg 2020-01-01 2020-01 LEWGI
P2040R0 Reflection-based lazy-evaluation Corentin Jabot 2020-01-13 2020-01 SG7
P2041R0 Deleting variable templates David Stone 2020-01-11 2020-01 Evolution
P2042R0 Alternate names for make_shared_default_init Andrzej Krzemieński 2020-01-11 2020-01 Library Evolution
P2043R0 Don't constexpr All The Things David Sankel 2020-01-13 2020-01 SG7
P2044R0 Member Templates for Local Classes Robert Leahy 2020-01-12 2020-01 EWGI, Evolution
P2045R0 Missing Mandates for the standard library Marshall Clow 2020-01-13 2020-01 Library
P2046R0 Rangify New Algorithms Dan Raviv 2020-01-12 2020-01 Library
P2047R0 An allocator-aware optional type Nina Ranns, Pablo Halpern Ville Voutilainen 2020-01-13 2020-01 LEWGI, Library Evolution
P2048R0 Prohibit zero and NULL from being used as null pointer literals Vittorio Romeo 2020-01-12 2020-01 EWGI
P2049R0 Constraint refinement for special-cased functions Andrew Sutton, Wyatt Childers 2020-01-13 2020-01 SG7
P2050R0 Tweaks to the design of source code fragments Andrew Sutton, Wyatt Childers 2020-01-13 2020-01 SG7
P2051R0 C++ Library Issues to be moved in Prague Marshall Clow 2020-01-13 2020-01 WG21
P2052R0 Making modern C++ i/o a consistent API experience from bottom to top Niall Douglas 2020-01-12 2020-01 SG1, LEWGI, Library Evolution
P2054R0 Audio I/O Software Use Cases Sophia Poirier, Frank Birbacher, Timur Doumler 2020-01-13 2020-01 SG13
P2055R0 A Relaxed Guide to memory_order_relaxed Paul E. McKenney, Hans Boehm 2020-01-12 2020-01 SG1
P2057R0 SG14 SG19 Past, Present and Future status Michael Wong, Ben Craig, Paul Bendixen, Matthew Bentley, Inbal Levi, Rene Riviera, Steffan Tjernstrom, Mark Hoemmen, Ronen Friedman 2020-01-13 2020-01 SG14, SG19
P2058R0 Make std::random_device Less Inscrutable Martin Hořeňovský 2020-01-13 2020-01 Library Evolution
P2059R0 Make Pseudo-random Numbers Portable Martin Hořeňovský 2020-01-13 2020-01 Library Evolution
P2060R0 Make Random Number Engines Seedable Martin Hořeňovský 2020-01-13 2020-01 Library Evolution
P2061R0 Sequential consistency for atomic memcpy David Goldblatt 2020-01-13 2020-01 SG1
P2062R0 The Circle Meta-model Daveed Vandevoorde, Wyatt Childers, Andrew Sutton, Faisal Vali 2020-01-13 2020-01 SG7
P2064R0 Assumptions Herb Sutter 2020-01-13 2020-01 SG21, Evolution
P2065R0 naming and aliases Kirk Shoop 2020-01-13 2020-01 Library Evolution
P2066R0 Suggested draft TS for C++ Extensions for Transaction Memory Light Jens Maurer, Michael L. Scott 2020-01-13 2020-01 SG1, Evolution
P2067R0 Allowing trailing commas in ctor-initializer Marc Mutz 2020-01-13 2020-01 EWGI
P2068R0 Using ?: to reduce the scope of constexpr-if Marc Mutz 2020-01-13 2020-01 EWGI
P2069R0 Stackable, thread local, signal guards Niall Douglas 2020-01-13 2020-01 SG1, SG12, EWGI, LEWGI
P2070R0 A case for optional and object_ptr Peter Sommerlad, Anthony Williams, Michael Wong, Jan Babst 2020-01-13 2020-01 SG12, LEWGI, Library Evolution, Library
P2071R0 Named universal character escapes Tom Honermann, Peter Bindels 2020-01-13 2020-01 SG16, Evolution
P2072R0 Differentiable programming for C++ Marco Foco, Vassil Vassilev, Max Rietmann, Michael Wong 2020-01-13 2020-01 SG19
P2073R0 Debugging C++ coroutines Dmitry Duka, Ivan Shutov, Konstantin Sadov 2020-01-13 2020-01 SG15
P2074R0 Asynchronous callstacks & coroutines Dmitry Duka 2020-01-13 2020-01 SG15
P2075R0 Philox as an extension of the C++ RNG engines Pavel Dyakov, Ilya Burylov; Ruslan Arutyunyan; Andrey Nikolaev 2020-01-13 2020-01 SG6
P2076R0 Previous disagreements on Contracts Ville Voutilainen 2020-01-13 2020-01 SG21
P2077R0 Heterogeneous erasure overloads for associative containers Konstantin Boyarinov, Sergey Vinogradov; Ruslan Arutyunyan 2020-01-13 2020-01 LEWGI
P2078R0 Add new traits type std::is_complex Bob Steagall 2020-01-13 2020-01 SG6, Library Evolution
P2079R0 Shared execution engine for executors Ruslan Arutyunyan, Michael Voss 2020-01-13 2020-01 SG1
P2080R0 Polymorphic allocators: There is no such thing as One True Vocabulary Type Ville Voutilainen 2020-01-13 2020-01 Library Evolution
P2081R0 Rebase the Library Fundamentals v3 TS on C++20 Thomas Köppe 2020-01-13 2020-01 Library Evolution, Library
P2082R0 Fixing CTAD for aggregates Timur Doumler 2020-01-13 2020-01 Core
P2087R0 Reflection Naming: fix reflexpr Mihail Naydenov 2020-01-12 2020-01 SG7
P2088R0 Reflection Naming: Reification Mihail Naydenov 2020-01-12 2020-01 SG7

2020-01 pre-Prague mailing available (1 of 2)

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup Disposition
N4845 Belfast 2019 LEWG Summary Titus Winters 2019-12-18 2020-01 WG21
N4846 Agenda - Prague, February 2020 John Spicer 2019-12-31 2020-01 WG21
N4847 WG21 telecon meeting: Pre-Prague Herb Sutter 2020-01-13 2020-01 WG21
N4848 WG21 Autumn Meeting 2020 - New York, New York, USA Kevin Fleming 2020-01-14 2020-01 WG21
N4849 Working Draft, Standard for Programming Language C++ Richard Smith 2020-01-14 2020-01 N4842 WG21
N4850 Editors' Report - Programming Languages - C++ Richard Smith, Thomas Koeppe, Jens Maurer, Dawn Perchik 2020-01-14 2020-01 WG21
P0211R3 Allocator-aware library wrappers for dynamic allocation Thomas Köppe 2020-01-14 2020-01 P0211R2 Library Evolution
P0260R4 C++ Concurrent Queues Lawrence Crowl, Chris Mysen 2020-01-13 2020-01 P0260R3 Library Evolution
P0261R4 C++ Distributed Counters Lawrence Crowl 2020-01-13 2020-01 P0261R3 Library Evolution
P0330R8 Literal Suffixes for (signed) size_t JeanHeyd Meneide, Rein Halbersma 2020-01-11 2020-01 P0330R7 Core
P0350R4 Integrating simd with parallel algorithms Matthias Kretz 2020-01-13 2020-01 P0350R3 Library Evolution
P0401R2 Providing size feedback in the Allocator interface Chris Kennelly, Jonathan Wakely 2020-01-12 2020-01 P0401R1 Library Evolution, Library
P0443R12 A Unified Executors Proposal for C++ Jared Hoberock, Michael Garland, Chris Kohlhoff, Chris Mysen, Carter Edwards, Gordon Brown, David Hollman, Lee Howes, Kirk Shoop, Lewis Baker, Eric Niebler 2020-01-10 2020-01 P0443R11 SG1, Library Evolution
P0447R10 Introduction of std::colony to the standard library Matt Bentley 2019-12-10 2020-01 P0447R9 WG21, SG14, LEWGI, Library Evolution
P0539R5 A Proposal to add wide_int Template Class Antony Polukhin 2019-12-18 2020-01 P0539R4 SG6, LEWGI, Library Evolution
P0843R4 static_vector Gonzalo Brito Gadeschi 2020-01-13 2020-01 P0843R3 Library
P0847R4 Deducing this Gašper Ažman, Simon Brand, Ben Deane, Barry Revzin 2020-01-13 2020-01 P0847R2 Evolution
P0870R1 A proposal for a type trait to detect narrowing conversions Giuseppe D'Angelo 2020-01-13 2020-01 P0870R0 LEWGI
P0876R10 fiber_context - fibers without scheduler Oliver Kowalke, Nat Goodspeed 2020-01-10 2020-01 P0876R9 SG1, Evolution, Library Evolution
P0928R1 Mitigating Spectre v1 Attacks in C++ Devin Jeanpierre, Geoffrey Romer, Chandler Carruth 2020-01-13 2020-01 P0928R0 SG12, Evolution
P1018R5 Language Evolution status after Belfast 2019 JF Bastien 2020-01-05 2020-01 P1018R4 WG21, Evolution
P1028R3 SG14 status_code and standard error object Niall Douglas 2020-01-12 2020-01 P1028R2 LEWGI, Library Evolution
P1029R3 move = bitcopies Niall Douglas 2020-01-12 2020-01 P1029R2 Evolution
P1040R5 std::embed and #depend JeanHeyd Meneide 2020-01-07 2020-01 P1040R4 SG7, Evolution
P1046R2 Automatically Generate More Operators David Stone 2020-01-11 2020-01 P1046R1 Evolution, Library Evolution
P1068R3 Vector API for random number generation Ilya Burylov, Pavel Dyakov, Ruslan Arutyunyan, Andrey Nikolaev 2020-01-13 2020-01 P1068R2 Library Evolution
P1112R3 Language support for class layout control Pal Balog 2020-01-13 2020-01 P1112R2 EWGI
P1243R3 Rangify New Algorithms Dan Raviv 2020-01-09 2020-01 P1243R2 Library
P1322R1 Networking TS enhancement to enable custom I/O executors Christopher Kohlhoff 2020-01-13 2020-01 P1322R0 SG1, SG4, Library Evolution
P1371R2 Pattern Matching Sergei Murzin, Michael Park, David Sankel, Dan Sarginson 2020-01-13 2020-01 P1371R1 Evolution
P1385R5 A proposal to add linear algebra support to the C++ standard library Guy Davidson, Bob Steagall 2020-01-13 2020-01 P1385R4 Library Evolution
P1436R3 Executor properties for affinity-based execution Gordon Brown, Ruyman Reyes, Michael Wong, H. Carter Edwards, Thomas Rodgers, Mark Hoemmen, Tom Scogland 2020-01-14 2020-01 P1436R2 SG1, SG14
P1460R0 Mandating the Standard Library: Clause 20 - Utilities library Marshall Clow, Alberto Barbati 2020-01-13 2020-01 Library
P1467R3 Extended floating-point types David Olsen, Michał Dominiak 2020-01-12 2020-01 P1467R2 Evolution, Library Evolution
P1468R3 Fixed-layout floating-point type aliases Michał Dominiak, David Olsen, Boris Fomitchev, Sergei Nikolaev 2020-01-12 2020-01 P1468R2 Evolution, Library Evolution
P1496R2 Formatting of Negative Zero Alan Talbot 2020-01-12 2020-01 P1496R1 Library Evolution, Library
P1609R3 C++ Should Support Just-in-Time Compilation Hal Finkel 2020-01-13 2020-01 P1609R2 SG7, EWGI
P1641R2 Freestanding Library: Rewording the Status Quo Ben Craig 2020-01-10 2020-01 P1641R1 SG14, Library Evolution
P1642R2 Freestanding Library: Easy [utilities], [ranges], and [iterators] Ben Craig 2020-01-10 2020-01 P1642R1 SG14, Library Evolution
P1664R2 reconstructible_range - a concept for putting ranges back together JeanHeyd Meneide 2020-01-06 2020-01 P1664R1 Library Evolution
P1673R2 A free function linear algebra interface based on the BLAS Mark Hoemmen, David Hollman, Christian Trott, Daniel Sunderland, Nevin Liber, Siva Rajamanickam, Li-Ta Lo, Damien Lebrun-Grandie, Graham Lopez, Peter Caday, Sarah Knepper, Piotr Luszczek, Timothy Costa 2020-01-13 2020-01 P1673R1 SG1, SG6, SG14, SG19, Library Evolution
P1689R2 Format for describing dependencies of source files Ben Boeckel, Brad King 2020-01-13 2020-01 P1689R1 SG15, SG16, Evolution
P1706R2 Programming Language Vulnerabilities for Safety Critical C++ Michael Wong, Stephen Michel, Peter Sommerlad, Lisa Lippincott, Aaron Ballman, Richard Corden, Clive Pygott, Erhard Ploedereder, John McFarlane, Paul Preney, Andreas Weis, Federico Kircheis, Tullio Vardanega, Jorg Brown, Chris Tapp 2020-01-13 2020-01 P1706R1 SG12
P1708R2 Simple Statistical Functions Michael Wong, Micheal Chiu, Richard Dosselmann, Eric Niebler, Phillip Ratzlof, Vincent Reverdy 2020-01-10 2020-01 P1708R1 SG19
P1709R2 Graph Library Michael Wong, Phillip Ratzloff, Richard Dosselmann, Michael Wong, Matthew Galati, Andrew Lumsdaine, Jens Maurer, Domagoj Saric, Jesun Firoz, Kevin Deweese 2020-01-13 2020-01 P1709R1 SG19
P1726R2 Pointer lifetime-end zap Maged Michael, Jens Mauer, Peter Sewell, Martin Uecker, Hans Boehm, Hubert Tong, Niall Douglas, Will Deacon, Michael Wong, and David Goldblatt 2020-01-13 2020-01 P1726R1 SG1, SG12, Evolution
P1732R2 Do not promise support for function syntax of operators CJ Johnson 2019-12-10 2020-01 P1732R1 Library Evolution, Library
P1759R2 Native handle from file streams Elias Kosunen 2019-12-13 2020-01 P1759R1 Library Evolution
P1774R3 Portable assumptions Timur Doumler 2020-01-13 2020-01 P1774R2 Evolution
P1779R3 ABI isolation for member functions S. Davis Herring 2020-01-14 2020-01 P1779R2 Core
P1790R1 Networking TS changes to enable better DynamicBuffer composition Christopher Kohlhoff 2020-01-13 2020-01 P1790R0 SG4, Library Evolution
P1795R2 System topology discovery for heterogeneous & distributed computing Gordon Brown, Ruyman Reyes, Michael Wong, Mark Hoemmen, Jeff Hammond, Tom Scogland, Domagoj Šarić 2020-01-13 2020-01 P1795R1 SG1, SG14
P1818R1 Narrowing and Widening Conversions Lawrence Crowl 2020-01-13 2020-01 P1818R0 EWGI
P1838R0 Modules User-Facing Lexicon and File Extensions Bryce Adelstein Lelbach, Boris Kolpackov 2020-01-13 2020-01 SG15
P1847R2 Make declaration order layout mandated Pal Balog 2020-01-13 2020-01 P1847R1 Evolution
P1848R0 Improve rules of standard layout Pal Balog 2020-01-13 2020-01 Evolution
P1857R2 Modules Dependency Discovery Michael Spencer 2020-01-13 2020-01 P1857R1 Core
P1858R1 Generalized pack declaration and usage Barry Revzin 2020-01-08 2020-01 P1858R0 Evolution
P1863R1 ABI - Now or Never Titus Winters 2020-01-12 2020-01 P1863R0 WG21, Direction Group
P1881R1 Epochs: a backward-compatible language evolution mechanism Vittorio Romeo 2020-01-12 2020-01 P1881R0 EWGI
P1883R1 file_handle and mapped_file_handle Niall Douglas 2020-01-12 2020-01 P1883R0 SG1, LEWGI
P1884R0 Private Module Partition: An Inconsistent Boundary Nathan Sidwell 2020-01-13 2020-01 SG2, Evolution
P1885R1 Naming Text Encodings to Demystify Them Corentin Jabot 2020-01-10 2020-01 P1885R0 SG16, Library Evolution
P1887R1 Reflection on attributes Corentin Jabot 2020-01-13 2020-01 P1887R0 SG7
P1889R1 C++ Numerics Work In Progress Alexander Zaitsev, Antony Polukhin 2019-12-27 2020-01 P1889R0 SG6
P1897R2 Towards C++23 executors: A proposal for an initial set of algorithms Lee Howes 2020-01-13 2020-01 P1897R1 SG1
P1912R1 Types with array-like object representations Timur Doumler 2020-01-13 2020-01 P1912R0 Evolution
P1919R2 Expanding the Rights in SD-8 Nevin Liber 2020-01-08 2020-01 P1919R1 Library Evolution
P1935R2 A C++ Approach to Physical Units Mateusz Pusz 2020-01-13 2020-01 P1935R1 SG6, LEWGI, Library Evolution
P1937R1 Fixing inconsistencies between `constexpr` and `consteval` functions David Stone 2020-01-13 2020-01 P1937R0 Core
P1944R0 Add Constexpr Modifiers to Functions in cstring and cwchar Headers Daniil Goncharov, Antony Polukhin 2019-12-16 2020-01 LEWGI, Library Evolution, Library
P1945R0 Making More Objects Contiguous Krystian Stasiowski 2019-10-28 2020-01 Evolution
P1949R1 C++ Identifier Syntax using Unicode Standard Annex 31 Steve Downey, Zach Laine, Tom Honermann, Peter Bindels 2020-01-13 2020-01 P1949R0 SG7, SG16, Evolution
P1950R0 An indirect value-type for C++ Jonathan Coe, Antony Peacock 2020-01-13 2020-01 Library Evolution
P1956R0 On the naming of low-level bit manipulation functions Vincent Reverdy 2020-01-13 2020-01 Library
P1957R1 Converting from T* to bool should be considered narrowing (re: US 212) Zhihao Yuan 2020-01-13 2020-01 P1957R0 Core, Library
P1958R0 C++ Concurrent Buffer Queue Lawrence Crowl 2020-01-13 2020-01 Library Evolution
P1964R1 Wording for boolean-testable Tim Song 2020-01-11 2020-01 P1964R0 Library
P1967R1 #embed - a simple, scannable preprocessor-based resource acquisition method JeanHeyd Meneide 2020-01-04 2020-01 P1967R0 Evolution

2019-11 post-Belfast mailing available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup Disposition
N4838 Pre-Belfast Minutes of Meeting Nina Ranns 2019-10-28 2019-11 WG21
N4839 WG21 2019-11 Belfast Minutes of Meeting Nina Ranns 2019-11-19 2019-11 WG21
N4840 Working Draft, C++ Extensions for Library Fundamentals, Version 3 Thomas Köppe 2019-11-25 2019-11 N4806 WG21
N4841 Editor's Report: C++ Extensions for Library Fundamentals, Version 3 Thomas Köppe 2019-11-25 2019-11 WG21
N4842 Working Draft, Standard for Programming Language C++ Richard Smith 2019-11-27 2019-11 N4835 WG21
N4843 Editors' Report - Programming Languages - C++ Richard Smith, Thomas Koeppe, Jens Maurer, Dawn Perchik 2019-11-27 2019-11 WG21
N4844 Collated CD 14882 Comments Barry Hedquist 2019-10-22 2019-11 WG21
P0592R4 To boldly suggest an overall plan for C++23 Ville Voutilainen 2019-11-25 2019-11 P0592R3 Evolution, Library Evolution
P0642R4 The Concurrent Invocation Library Mingxin Wang, Wei Chen 2019-11-23 2019-11 P0642R3 SG1, Library Evolution
P0883R2 Fixing Atomic Initialization Nicolai Josuttis 2019-11-08 2019-11 P0883R1 SG1, Library Evolution, Library Adopted 2019-11
P0957R4 PFA: A Generic, Extendable and Efficient Solution for Polymorphic Programming Mingxin Wang 2019-11-23 2019-11 P0957R3 SG7, Library Evolution, Library
P1115R2 Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if Marc Mutz 2019-11-09 2019-11 P1115R1 Library
P1115R3 Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if Marc Mutz 2019-11-25 2019-11 P1115R2 Library
P1179R1 Lifetime safety: Preventing common dangling Herb Sutter 2019-11-22 2019-11 P1179R0 Evolution
P1385R4 A proposal to add linear algebra support to the C++ standard library Guy Davidson, Bob Steagall 2019-11-24 2019-11 P1385R3 Library Evolution
P1391R4 Range constructor for std::string_view Corentin Jabot 2019-11-11 2019-11 P1391R3 Library Evolution, Library Adopted 2019-11
P1394R4 Range constructor for std::span Corentin Jabot, Casey Carter 2019-11-11 2019-11 P1394R3 Library Adopted 2019-11
P1456R1 Move-only views Casey Carter 2019-11-12 2019-11 P1456R0 WG21 Adopted 2019-11
P1478R3 Byte-wise atomic memcpy Hans Boehm 2019-11-18 2019-11 P1478R2 Library Evolution
P1622R3 Mandating the Standard Library: Clause 32 - Thread support library Daniel Sunderland 2019-11-05 2019-11 P1622R2 Library Adopted 2019-11
P1645R1 constexpr for numeric algorithms Ben Deane 2019-05-14 2019-11 P1645R0 Library Evolution, Library Adopted 2019-11
P1664R1 reconstructible_range - a concept for putting ranges back together JeanHeyd Meneide 2019-11-30 2019-11 P1664R0 Library Evolution
P1686R2 Mandating the Standard Library: Clause 27 - Time library Jeff Garland 2019-11-05 2019-11 P1686R1 Library Adopted 2019-11
P1716R3 ranges compare algorithm are over-constrained Tomasz Kamiński 2019-11-07 2019-11 P1716R2 Library Adopted 2019-11
P1718R2 Mandating the Standard Library: Clause 25 - Algorithms library Marshall Clow 2019-11-08 2019-11 P1718R1 Library Adopted 2019-11
P1719R2 Mandating the Standard Library: Clause 26 - Numerics library Marshall Clow 2019-11-08 2019-11 P1719R1 Library Adopted 2019-11
P1720R2 Mandating the Standard Library: Clause 28 - Localization library Marshall Clow 2019-11-07 2019-11 P1720R1 Library Adopted 2019-11
P1721R2 Mandating the Standard Library: Clause 29 - Input/Output library Marshall Clow 2019-11-07 2019-11 P1721R1 Library Adopted 2019-11
P1722R2 Mandating the Standard Library: Clause 30 - Regular Expression library Marshall Clow 2019-11-07 2019-11 P1722R1 Library Adopted 2019-11
P1723R2 Mandating the Standard Library: Clause 31 - Atomics library Marshall Clow, Daniel Sunderland 2019-11-07 2019-11 P1723R1 Library Adopted 2019-11
P1739R3 Avoid template bloat for safe_ranges in combination with 'subrange-y' view adaptors. Hannes Hauswedell 2019-11-24 2019-11 P1739R2 Library
P1774R2 Portable assumptions Timur Doumler 2019-11-25 2019-11 P1774R1 Evolution
P1779R2 ABI isolation for member functions S. Davis Herring 2019-11-25 2019-11 P1779R1 Core
P1787R3 Declarations and where to find them S. Davis Herring 2019-11-25 2019-11 P1787R2 Core
P1788R3 Reuse of the built modules (BMI) Olga Arkhipova 2019-10-29 2019-11 P1788R2 SG15, Core
P1815R1 Translation-unit-local entities S. Davis Herring 2019-11-25 2019-11 P1815R0 Core
P1839R2 Accessing Object Representations Krystian Stasiowski 2019-11-20 2019-11 P1839R1 Core
P1844R1 Enhancement of regex Nozomu Katō 2019-11-22 2019-11 P1844R0 LEWGI
P1862R1 Ranges adaptors for non-copyable iterators Corentin Jabot, Casey Carter 2019-11-11 2019-11 P1862R0 Library Evolution, Library Adopted 2019-11
P1865R1 Add max() to latch and barrier David Olsen, Olivier Giroux 2019-11-09 2019-11 P1865R0 WG21 Adopted 2019-11
P1868R1 Unicorn width: clarifying units of width and precision in std::format Victor Zverovich, Zach Laine 2019-11-24 2019-11 P1868R0 Library
P1869R1 Rename 'condition_variable_any' interruptible wait methods Tomasz Kamiński, Michał Dominiak 2019-11-06 2019-11 P1869R0 Library Adopted 2019-11
P1870R1 forwarding-range is too subtle Barry Revzin 2019-11-25 2019-11 P1870R0 Library Evolution Adopted 2019-11
P1871R1 Concept traits should be named after concepts Barry Revzin 2019-11-25 2019-11 P1871R0 Library Adopted 2019-11
P1874R1 Dynamic Initialization Order of Non-Local Variables in Modules Michael Spencer 2019-11-12 2019-11 P1874R0 Core Adopted 2019-11
P1878R1 Constraining Readable Types Casey Carter 2019-11-14 2019-11 P1878R0 Library Evolution, Library Adopted 2019-11
P1892R1 Extended locale-specific presentation specifiers for std::format Peter Brett 2019-11-07 2019-11 P1892R0 Library Adopted 2019-11
P1897R1 Towards C++23 executors: An initial set of algorithms Lee Howes 2019-11-14 2019-11 P1897R0 SG1
P1902R1 Missing feature-test macros 2017-2019 Barry Revzin 2019-11-25 2019-11 P1902R0 Evolution, Library Evolution Adopted 2019-11
P1907R1 Inconsistencies with non-type template parameters Jens Maurer 2019-11-08 2019-11 P1907R0 Evolution, Core Adopted 2019-11
P1908R1 Reserving Attribute Names for Future Use Corentin Jabot 2019-11-16 2019-11 P1908R0 Evolution
P1919R1 Expanding the Rights in SD-8 Nevin Liber 2019-11-09 2019-11 P1919R0 Library Evolution
P1935R1 A C++ Approach to Physical Units Mateusz Pusz 2019-11-07 2019-11 P1935R0 SG6, SG16, LEWGI, Library Evolution
P1946R0 Allow defaulting comparisons by value Barry Revzin, Casey Carter 2019-11-25 2019-11 Evolution Adopted 2019-11
P1947R0 C++ exceptions and alternatives Bjarne Stroustrup 2019-11-18 2019-11 Evolution, Library Evolution
P1948R0 Modules: Keep the dot Corentin Jabot 2019-11-11 2019-11 SG2, SG15, Evolution
P1949R0 C++ Identifier Syntax using Unicode Standard Annex 31 Steve Downey 2019-11-20 2019-11 SG7, SG16, EWGI, Evolution
P1951R0 Default Arguments for pair's Forwarding Constructor Logan R. Smith 2019-11-17 2019-11 Library
P1953R0 Unicode Identifiers And Unicode Corentin Jabot 2019-11-11 2019-11 SG7, SG16
P1955R0 Top Level Is Constant Evaluated Frank Birbacher 2019-11-03 2019-11 Evolution
P1957R0 Converting from T* to bool should be considered narrowing (re: US 212) Zhihao Yuan 2019-11-18 2019-11 Core, Library
P1959R0 Remove std::weak_equality and std::strong_equality Barry Revzin 2019-11-25 2019-11 Core, Library Adopted 2019-11
P1960R0 NB Comment Changes Reviewed by SG1 David Olsen 2019-11-09 2019-11 WG21 Adopted 2019-11
P1961R0 Harmonizing the definitions of total order for pointers Gašper Ažman 2019-11-05 2019-11 Library Adopted 2019-11
P1962R0 How can you be so certain? Bjarne Stroustrup 2019-11-18 2019-11 Evolution, Library Evolution
P1963R0 Fixing US 313 Billy O'Neal 2019-11-09 2019-11 Library
P1964R0 Casting convertible_to<bool> considered harmful Tim Song 2019-11-15 2019-11 Library Evolution
P1965R0 Blanket Wording for Specifying "Hidden Friends" Walter E Brown, Daniel Sunderland, Tim Song 2019-11-06 2019-11 Library Adopted 2019-11
P1967R0 #embed - a simple, scannable preprocessor-based resource acquisition method JeanHeyd Meneide 2019-11-25 2019-11 Evolution
P1968R0 Core Language Working Group "tentatively ready" issues for the November, 2019 (Belfast) meeting William M. (Mike) Miller 2019-11-07 2019-11 WG21 Adopted 2019-11
P1969R0 Core Language Working Group "ready" issues for the November, 2019 (Belfast) meeting William M. (Mike) Miller 2019-11-08 2019-11 WG21 Adopted 2019-11
P1970R0 Consistency for size() functions Hannes Hauswedell 2019-11-08 2019-11 Library
P1971R0 Core Language Changes for NB Comments at the November, 2019 (Belfast) Meeting William M. (Mike) Miller 2019-11-08 2019-11 WG21 Adopted 2019-11
P1972R0 US105 Check satisfaction of constraints for non-templates when forming pointer to function Jens Maurer 2019-11-09 2019-11 Core Adopted 2019-11
P1975R0 Fixing the wording of parenthesized aggregate-initialization Ville Voutilainen 2019-11-07 2019-11 Evolution, Core Adopted 2019-11
P1976R0 Fixed-size `span` construction from dynamic-size range Tomasz Kamiński 2019-11-11 2019-11 Library Evolution
P1978R0 Rename _default_init functions and do nothing more Andrzej Krzemieński, Nevin Liber, Glen Joseph Fernandes, Peter Dimov 2019-11-19 2019-11 Library Evolution
P1979R0 US086 Resolution Mathias Stearn 2019-11-23 2019-11 Core Adopted 2019-11
P1980R0 Wording for CA 096 Jason Merrill 2019-11-08 2019-11 Core Adopted 2019-11
P1981R0 Rename leap to leap_second Howard Hinnant 2019-11-25 2019-11 Library
P1982R0 Rename link to time_zone_link Howard Hinnant 2019-11-25 2019-11 Library
P1983R0 Wording for GB301, US296, US292, US291, and US283 Tim Song 2019-11-15 2019-11 Library
P1989R0 Range constructor for std::string_view 2: Constrain Harder Corentin Jabot 2019-11-25 2019-11 Library
P1991R0 WG21 2019-11 Belfast Record of Discussion Nina Ranns 2019-11-19 2019-11 WG21
P1993R0 Restore factories to bulk_execute Jared Hoberock 2019-11-21 2019-11 SG1, Library Evolution
P1994R0 elements_view needs its own sentinel Tim Song, Christopher Di Bella 2019-11-25 2019-11 Library
P1995R0 Contracts - Use Cases Joshua Berne, Andrzej Krzemienski, Ryan McDougall, Timur Doumler, Herb Sutter 2019-11-25 2019-11 SG21
P1996R0 Propagated template parameters Dmitry Sokolov 2019-11-24 2019-11 EWGI
P1997R0 Relaxing Restrictions on Arrays Krystian Stasiowski, Theodoric Stier 2019-11-25 2019-11 Evolution
P1998R0 Simple Facility for Lossless Integer Conversion Ryan McDougall 2019-11-25 2019-11 SG6, LEWGI
P1999R0 Process proposal: double-check evolutionary material via a Tentatively Ready status Ville Voutilainen 2019-11-25 2019-11 Evolution, Library Evolution

 

Trip Report: C++ Standards Meeting in Belfast, November 2019--Botond Ballo

Another report!

Trip Report: C++ Standards Meeting in Belfast, November 2019

by Botond Ballo

From the article:

Last week I attended a meeting of the ISO C++ Standards Committee (also known as WG21) in Belfast, Northern Ireland. This was the third and last committee meeting in 2019; you can find my reports on preceding meetings here (July 2019, Cologne) and here (February 2019, Kona), and previous ones linked from those. These reports, particularly the Cologne one, provide useful context for this post...

Trip Report: Freestanding Errors in Belfast--Ben Craig

Another one!

Trip Report: Freestanding Errors in Belfast

by Ben Craig

From the article:

The C++ standards committee met in Belfast, Northern Ireland (UK) between Nov 4 and Nov 8. This was my fifth committee meeting, third evening session, and my first paper accepted into the standard. Through clever manipulation of the process, I was also able to fix 1.5% of all the national body comments SINGLE HANDEDLY (with the help of a coauthor, several reviewers, the entirety of LEWG and LWG, and a few national bodies)...