Standardization

2020-07 mailing available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
P1068R4 Vector API for random number generation Ilya Burylov 2020-07-15 2020-07 P1068R3 LEWG Library Evolution
P1184R2 A Module Mapper Nathan Sidwell 2020-07-10 2020-07 P1184R1 SG15 Tooling
P1272R3 Byteswapping for fun&&nuf Isabella Muerte 2020-07-14 2020-07 P1272R2 LWG Library
P1478R4 Byte-wise atomic memcpy Hans Boehm 2020-07-14 2020-07 P1478R3 LEWG Library Evolution
P1642R4 Freestanding Library: Easy [utilities], [ranges], and [iterators] Ben Craig 2020-07-12 2020-07 P1642R3 LEWG Library Evolution
P1659R1 starts_with and ends_with Christopher Di Bella 2020-07-15 2020-07 P1659R0 LWG Library
P1679R3 String Contains function Wim Leflere 2020-07-21 2020-07 P1679R2 LWG Library
P1726R4 Pointer lifetime-end zap Paul E. McKenney 2020-07-08 2020-07 P1726R3 SG1 Concurrency and Parallelism,SG12 Undefined and Unspecified Behavior,EWG Evolution
P1864R0 Defining Target Tuplets Isabella Muerte 2020-07-11 2020-07   SG15 Tooling
P2000R2 Direction for ISO C++ Michael Wong 2020-07-15 2020-07 P2000R1 All of WG21,Direction Group
P2029R2 Proposed resolution for core issues 411, 1656, and 2333; escapes in character and string literals Tom Honermann 2020-07-14 2020-07 P2029R1 CWG Core
P2075R1 Philox as an extension of the C++ RNG engines Pavel Dyakov 2020-07-15 2020-07 P2075R0 SG6 Numerics,LEWG Library Evolution
P2093R1 Formatted output Victor Zverovich 2020-07-18 2020-07 P2093R0 SG16 Unicode,LEWG Library Evolution
P2128R2 Multidimensional subscript operator Corentin Jabot 2020-07-12 2020-07 P2128R1 EWG Evolution
P2139R2 Reviewing Deprecated Facilities of C++20 for C++23 Alisdair Meredith 2020-07-15 2020-07 P2139R1 EWG Evolution,LEWG Library Evolution
P2146R2 Modern std::byte stream IO for C++ Amanda Kornoushenko 2020-07-21 2020-07 P2146R1 LEWGI SG18: LEWG Incubator
P2156R1 Allow Duplicate Attributes Erich Keane 2020-07-02 2020-07 P2156R0 EWG Evolution,CWG Core
P2161R2 Remove Default Candidate Executor Robert Leahy 2020-07-13 2020-07 P2161R1 LEWG Library Evolution
P2165R1 Compatibility between tuple and tuple-like objects Corentin Jabot 2020-07-14 2020-07 P2165R0 LEWG Library Evolution
P2169R1 A Nice Placeholder With No Name Corentin Jabot 2020-07-12 2020-07 P2169R0 EWG Evolution
P2178R1 Misc lexing and string handling improvements Corentin Jabot 2020-07-14 2020-07 P2178R0 SG16 Unicode,EWG Evolution
P2183R0 Executors Review: Properties David Olsen 2020-07-14 2020-07   LEWG Library Evolution
P2186R0 Removing Garbage Collection Support JF Bastien 2020-07-12 2020-07   EWG Evolution,LEWG Library Evolution
P2187R3 std::swap_if, std::predictable Nathan Myers 2020-07-14 2020-07 P2187R2 LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P2188R1 Zap the Zap: Pointers are sometimes just bags of bits Anthony Williams 2020-07-15 2020-07 P2188R0 EWG Evolution
P2191R0 Modules: ADL & GMFs do not play together well (anymore) Nathan Sidwell 2020-07-10 2020-07   EWG Evolution
P2192R0 std::valstat - function return type Dusan B. Jovanovic 2020-07-13 2020-07   LEWGI SG18: LEWG Incubator
P2193R0 How to structure a teaching topic JC van WInkel 2020-06-26 2020-07   SG20 Education
P2193R1 How to structure a teaching topic JC van WInkel 2020-07-02 2020-07 P2193R0 SG20 Education
P2196R0 A lifetime-extending forwarder Vincent Reverdy 2020-07-15 2020-07   LEWGI SG18: LEWG Incubator
P2198R0 Freestanding Feature-Test Macros and Implementation-Defined Extensions Ben Craig 2020-07-12 2020-07   SG10 Feature Test
P2199R0 Concepts to differentiate types Isabella Muerte 2020-07-11 2020-07   LEWGI SG18: LEWG Incubator,LEWG Library Evolution
P2201R0 Mixed string literal concatenation Jens Maurer 2020-07-14 2020-07   SG16 Unicode
P2202R0 Senders/Receivers group Executors review report Gašper Ažman 2020-07-15 2020-07   LEWG Library Evolution
P2203R0 LEWG Executors Customization Point Report Ryan McDougall, Tomasz Kamiński 2020-07-15 2020-07   LEWG Library Evolution

"C++ Move Semantics - The Complete Guide" now Feature Complete -- Nico Josuttis

The new book by Nico Josuttis is now available as an ebook draft.

C++ Move Semantics - The Complete Guide

by Nico Josuttis

About the book:

Having 200 pages, the description of move semantics is feature complete now. Only a few chapters about the use of move semantics in the C++ standard library are missing.

The book teaches all aspects of C++ move semantics. Starting from the basic principles it motivates and explains all features and corner cases (such as perfect returning with decltype(auto)) so that a C++ programmer can understand and use move semantics right in application code, when implementing classes, in generic code, and in foundation libraries.


 

2020-06 mailing available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
P1401R3 Narrowing contextual conversions to bool Andrzej Krzemieński 2020-05-27 2020-06 P1401R2 EWG Evolution
P1450R3 Enriching type modification traits Vincent Reverdy 2020-06-15 2020-06 P1450R2 LWG Library
P1467R4 Extended floating-point types and standard names David Olsen 2020-06-14 2020-06 P1467R3 EWG Evolution,LEWG Library Evolution
P1468R4 Fixed-layout floating-point type aliases David Olsen 2020-06-14 2020-06 P1468R3 LEWG Library Evolution
P1642R3 Freestanding Library: Easy [utilities], [ranges], and [iterators] Ben Craig 2020-05-24 2020-06 P1642R2 LEWG Library Evolution
P1944R1 Add Constexpr Modifiers to Functions in cstring and cwchar Headers Daniil Goncharov 2020-05-26 2020-06 P1944R0 SG16 Unicode,LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library
P1949R4 C++ Identifier Syntax using Unicode Standard Annex 31 Steve Downey 2020-06-05 2020-06 P1949R3 SG16 Unicode,EWG Evolution,CWG Core
P1990R1 Add operator[] to std::initializer_list Daniil Goncharov 2020-05-26 2020-06 P1990R0 LEWG Library Evolution,LWG Library
P2025R1 Guaranteed copy elision for return variables Anton Zhilin 2020-06-17 2020-06 P2025R0 EWG Evolution,CWG Core
P2034R2 Partially Mutable Lambda Captures Ryan McDougall 2020-06-12 2020-06 P2034R1 EWGI SG17: EWG Incubator
P2037R1 String's gratuitous assignment Andrzej Krzemieński 2020-06-15 2020-06 P2037R0 LEWG Library Evolution
P2093R0 Formatted output Victor Zverovich 2020-06-13 2020-06   SG16 Unicode,LEWG Library Evolution
P2138R2 Rules of Design<=>Wording engagement Ville Voutilainen 2020-06-15 2020-06 P2138R1 EWG Evolution,LEWG Library Evolution
P2139R1 Reviewing Deprecated Facilities of C++20 for C++23 Alisdair Meredith 2020-06-15 2020-06 P2139R0 EWG Evolution,LEWG Library Evolution
P2141R0 Aggregates are named tuples Antony Polukhin 2020-05-27 2020-06   EWGI SG17: EWG Incubator,LEWGI SG18: LEWG Incubator,EWG Evolution,LEWG Library Evolution,LWG Library
P2146R1 Modern std::byte stream IO for C++ Amanda Kornoushenko 2020-06-17 2020-06 P2146R0 LEWGI SG18: LEWG Incubator
P2152R0 Querying the alignment of an object Inbal Levi 2020-06-15 2020-06   EWGI SG17: EWG Incubator,EWG Evolution,CWG Core
P2161R1 Remove Default Candidate Executor Robert Leahy 2020-06-12 2020-06 P2161R0 SG4 Networking
P2164R1 views::enumerate Corentin Jabot 2020-06-14 2020-06 P2164R0 LEWG Library Evolution
P2166R0 A Proposal to Prohibit std::basic_string and std::basic_string_view construction from nullptr Yuriy Chernyshov 2020-05-19 2020-06   LEWGI SG18: LEWG Incubator,LEWG Library Evolution,LWG Library
P2176R0 A different take on inexpressible conditions Andrzej Krzemieński 2020-05-27 2020-06   SG21 Contracts
P2178R0 Misc lexing and string handling improvements Corentin Jabot 2020-06-15 2020-06   SG16 Unicode,EWG Evolution
P2179R0 SG16: Unicode meeting summaries 2020-01-08 through 2020-05-27 Tom Honermann 2020-06-02 2020-06   SG16 Unicode
P2181R0 Correcting the Design of Bulk Execution Jared Hoberock 2020-06-14 2020-06   SG1 Concurrency and Parallelism
P2182R0 Contract Support: Defining the Minimum Viable Feature Set Andrzej Krzemieński 2020-06-15 2020-06   SG21 Contracts
P2184R0 Thriving in a crowded and changing world: C++ 2006-2020 Bjarne Stroustrup 2020-06-12 2020-06   All of WG21
P2185R0 Contracts Use Case Categorization Caleb Sunstrum 2020-06-14 2020-06   SG21 Contracts
P2187R0 std::swap_if, std::predictable Nathan Myers 2020-06-18 2020-06   LEWGI SG18: LEWG Incubator,Direction Group
P2188R0 Zap the Zap: Pointers should just be bags of bits Anthony Williams 2020-06-15 2020-06   EWG Evolution

2020-05 mailing available

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

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup
P0493R1 Atomic maximum/minimum Al Grant 2020-05-17 2020-05 P0493R0 SG1 Concurrency and Parallelism,LEWG Library Evolution
P0870R3 A proposal for a type trait to detect narrowing conversions Giuseppe D'Angelo 2020-05-17 2020-05 P0870R2 SG6 Numerics
P1679R2 String Contains function Wim Leflere 2020-05-17 2020-05 P1679R1 LWG Library
P1841R1 Wording for Individually Specializable Numeric Traits Walter E Brown 2020-05-14 2020-05 P1841R0 LWG Library
P1861R1 Secure Networking in C++ JF Bastien 2020-05-11 2020-05 P1861R0 SG4 Networking,LEWG Library Evolution
P1897R3 Towards C++23 executors: A proposal for an initial set of algorithms Lee Howes 2020-05-16 2020-05 P1897R2 SG1 Concurrency and Parallelism
P1898R1 Forward progress delegation for executors Lee Howes 2020-05-16 2020-05 P1898R0 SG1 Concurrency and Parallelism
P1974R0 Non-transient constexpr allocation using propconst Jeff Snyder 2020-05-15 2020-05   EWG Evolution,LEWG Library Evolution,LWG Library
P1985R1 Universal template parameters Gašper Ažman 2020-05-15 2020-05 P1985R0 EWG Evolution
P2066R2 Suggested draft TS for C++ Extensions for Transaction Memory Light Jens Maurer 2020-05-12 2020-05 P2066R1 SG1 Concurrency and Parallelism,EWG Evolution
P2128R1 Multidimensional subscript operator Corentin Jabot 2020-05-15 2020-05 P2128R0 EWG Evolution
P2136R1 invoke_r Zhihao Yuan 2020-05-15 2020-05 P2136R0 LEWG Library Evolution,LWG Library
P2142R1 Allow '.' operator to work on pointers Jim Buckeyne 2020-05-17 2020-05 P2142R0 EWGI SG17: EWG Incubator
P2145R0 Evolving C++ Remotely Bryce Adelstein Lelbach 2020-04-21 2020-05   All of WG21
P2159R0 An Unbounded Decimal Floating-Point Type Bill Seymour 2020-04-23 2020-05   SG6 Numerics,LEWGI SG18: LEWG Incubator
P2160R0 Locks lock lockables (wording for LWG 2363) Tim Song 2020-05-13 2020-05   LWG Library
P2161R0 Remove Default Candidate Executor Robert Leahy 2020-05-14 2020-05   SG4 Networking
P2162R0 Inheriting from std::variant (resolving LWG3052) Barry Revzin 2020-05-05 2020-05   LEWG Library Evolution
P2163R0 Native tuples in C++ Mike Spertus 2020-05-17 2020-05   EWGI SG17: EWG Incubator,EWG Evolution
P2164R0 views::enumerate Corentin Jabot 2020-05-15 2020-05   LEWG Library Evolution
P2165R0 Comparing pair and tuples Corentin Jabot 2020-05-15 2020-05   LEWG Library Evolution
P2167R0 Improved Proposed Wording for LWG 2114 Daniel Krügler 2020-05-13 2020-05   LWG Library
P2168R0 generator: A Synchronous Coroutine Generator Compatible With Ranges Corentin Jabot 2020-05-16 2020-05   LEWG Library Evolution
P2169R0 A Nice Placeholder With No Name Corentin Jabot 2020-05-16 2020-05   EWG Evolution
P2170R0 Feedback on implementing the proposed std::error type Charles Salvia 2020-05-15 2020-05   All of WG21
P2171R0 Rebasing the Networking TS on C++20 Jonathan Wakely 2020-05-15 2020-05   LWG Library
P2172R0 What do we want from a modularized Standard Library? Corentin Jabot 2020-05-16 2020-05   EWG Evolution
P2173R0 Attributes on Lambda-Expressions Daveed Vandevoorde 2020-05-15 2020-05   EWG Evolution
P2174R0 Compound Literals Zhihao Yuan 2020-05-15 2020-05   EWGI SG17: EWG Incubator

2020-04 mailing available

cpp_logo.pngThe 2020-04 mailing of new standards papers is now available.

Note: Partly due to Covid-19, we are experimenting with having monthly mailings. This is the first of those.

 

WG21 Number Title Author Document Date Mailing Date Previous Version Subgroup Disposition
2020-04
N4858 Disposition of Comments: SC22 5415, ISO/IEC CD 14882 Barry Hedquist 2020-02-15 2020-04   WG21  
N4859 Editors' Report - Programming Languages - C++ Richard Smith, Thomas Koeppe, Jens Maurer, Dawn Perchik 2020-04-03 2020-04   WG21  
N4860 Draft International Standard - Programming Languages - C++ Richard Smith 2020-04-08 2020-04   WG21  
N4861 Working Draft, Standard for Programming Language C++ Richard Smith, Thomas Koeppe, Jens Maurer, Dawn Perchik 2020-04-08 2020-04 N4849 WG21  
P0533R6 constexpr for <cmath> and <cstdlib> Oliver Rosten, Edward Rosten 2020-04-14 2020-04 P0533R5 Library  
P0870R2 A proposal for a type trait to detect narrowing conversions Giuseppe D'Angelo 2020-04-06 2020-04 P0870R1 SG6, LEWGI  
P1255R6 A view of 0 or 1 elements: views::maybe Steve Downey 2020-04-05 2020-04 P1255R5 Library Evolution  
P1315R5 secure_clear Miguel Ojeda 2020-04-15 2020-04 P1315R4 Library Evolution  
P1641R3 Freestanding Library: Rewording the Status Quo Ben Craig 2020-04-11 2020-04 P1641R2 SG14, Library Evolution  
P1654R1 ABI breakage - summary of initial comments Roger Orr 2020-04-10 2020-04 P1654R0 WG21  
P1949R3 C++ Identifier Syntax using Unicode Standard Annex 31 Steve Downey, Zach Laine, Tom Honermann, Peter Bindels, Jens Maurer 2020-04-15 2020-04 P1949R2 SG16, Evolution, Core  
P2011R1 A pipeline-rewrite operator Barry Revzin, Colby Pike 2020-04-16 2020-04 P2011R0 EWGI  
P2013R1 Freestanding Language: Optional ::operator new Ben Craig 2020-04-14 2020-04 P2013R0 SG14, Evolution, Library Evolution  
P2034R1 Partially Mutable Lambda Captures Ryan McDougall, Patrick McMichael 2020-04-16 2020-04 P2034R0 EWGI  
P2044R2 Member Templates for Local Classes Robert Leahy 2020-04-14 2020-04 P2044R1 Evolution  
P2096R1 Generalized wording for partial specializations James Touton 2020-04-15 2020-04 P2096R0 Core  
P2098R1 Proposing std::is_specialization_of Walter E Brown, Bob Steagall 2020-04-11 2020-04 P2098R0 Library Evolution, Library  
P2138R1 Rules of Design<=>Wording engagement Ville Voutilainen 2020-04-14 2020-04 P2138R0 Evolution, Library Evolution  
P2146R0 Modern std::byte stream IO for C++ Amanda Kornoushenko 2020-03-19 2020-04   LEWGI  
P2149R0 Remove system_executor Robert Leahy 2020-04-14 2020-04   SG4  
P2150R0 Down with typename in the library! Alisdair Meredith 2020-04-14 2020-04   Library  
P2155R0 Policy property for describing adjacency Gordon Brown, Ruyman Reyes, Michael Wong, H. Carter Edwards, Thomas Rodgers, Mark Hoemmen, Tom Scogland 2020-04-15 2020-04   SG1, SG14  
P2156R0 Allow Duplicate Attributes Erich Keane 2020-04-15 2020-04   EWGI, Evolution, Core  

Pure Virtual C++ Conference 2020 (April 30, online)

pvcpp.PNGEven though most spring C++ events are cancelled, a new one was just announced for the end of this month!

Sign up for Pure Virtual C++ Conference 2020

by Sy Brand

From the post:

Pure Virtual C++ 2020 is a free single-track one-day virtual conference for the whole C++ community. It is taking place on Thursday 30th April 2020 from 14:30 to 23:00 UTC. Sign up on the event website.

All talks will be pre-recorded and streamed on YouTube Live with a live Q&A session with the speakers. After the event, the talks will be available to watch online for free.

Third Annual C++ Foundation Developer Survey "Lite"

cpp_logo.pngNote: Given the pandemic, we weren't sure whether to run our annual survey now at all. Thank you very much to the several hundred people who gave their feedback on our poll about that... you overwhelmingly encouraged us to go ahead, and so here we are trying to do it. We look forward to your responses and insights, but most of all we want to send our best wishes to all of you in our global C++ community and your families and loved ones; C++ has always enjoyed a cohesive global community, and never more so than now as we are all going through this dreadful shared experience together in virtually all countries. Please be safe, everyone.

 

The Standard C++ Foundation's third annual global C++ developer survey is now open. As the name suggests, it's a one-pager:

2020 Annual C++ Developer Survey "Lite"

Please take 10 minutes or so to participate! A summary of the results, including aggregated highlights of common answers in the write-in responses, will be posted publicly here on isocpp.org and shared with the C++ standardization committee to help inform C++ evolution.

The survey closes in one week.

Thank you for participating and helping to inform our committee and community.

Kafka’s uncle spends a week with Les Booloise: Prague trip report--Guy Davidson

Another point of view.

Kafka’s uncle spends a week with Les Booloise: Prague trip report

by Guy Davidson

From the article:

I love Czechia and I love Prague. I have visited a few times: most recently to give a talk at the Avast meetup last February, organised by Hana Dusíková, who also organised this WG21 meeting. She did an absolutely outstanding job, and I know that I share that opinion with many committee folk.

Of course, this was the meeting that C++20 was due to be signed off by WG21 and sent for polling by the National Bodies (NB) before going to ISO for publication. Plenty of time was spent on attending to outstanding NB comments but there was still scope for reviewing new proposals.

On top of that, there was a social event on Wednesday evening to celebrate the release, which took place at Pražská Křižovatka. The whole week was as tiring as ever, but I was delighted to be there, to make “the team photo” and to advance some of my work. If you are interested in a detailed report of the work completed you can find one on reddit: I am going to discuss my work and experiences...