Standardization

WG21 in my own backyard: Belfast trip report--Guy Davidson

Getting closer to 20!

WG21 in my own backyard: Belfast trip report

by Guy Davidson

From the article:

November turned into a heavy travel month when I agreed to speak at both C++ Russia in St Petersburg and Meeting C++ in Berlin, either side of the Autumn WG21 committee in Belfast. I took what some considered to be “quite a risk” with St Petersburg: the date straddled the Brexit date, and I would be accompanied by my wife whom the organisers graciously agreed to pay to accompany me. She travels with an Irish passport, so the idea of both of us safely returning to the country immediately after a change to border law seemed potentially hazardous...

A Universal Async Abstraction for C++ -- Corentin Jabot

Executors - of which P0443R11 is one of the latest iterations - is poised to be the most fundamental library addition to C++23.

A Universal Async Abstraction for C++

By Corentin Jabot

From the article:

What is it about?

It is first and foremost a quest to find the most basic building blocks on top of which one could build asynchronous, concurrent and parallel code, whether it be on a small chip or a supercomputer with thousands of CPUs and GPUs.

This is not an easy task and has kept many experts and many companies busy for many years.

2019-10 pre-Belfast mailing available (2 of 2)

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

 

P1750R1 A Proposal to Add Process Management to the C++ Standard Library Klemans Morgenstern, Jeff Garland, Elias Kosunen, Fatih Bakir 2019-10-07 2019-10 P1750R0 SG1, LEWGI  
P1772R1 Variadic overload sets and overload sequences Vincent Reverdy 2019-10-06 2019-10 P1772R0 SG7, EWGI  
P1774R1 Portable optimisation hints Timur Doumler 2019-10-06 2019-10 P1774R0 SG21, EWGI, Evolution  
P1787R2 Declarations and where to find them S. Davis Herring 2019-10-05 2019-10 P1787R1 Core  
P1795R1 System topology discovery for heterogeneous & distributed computing Gordon Brown, Ruyman Reyes, Michael Wong, Mark Hoemmen, Jeff Hammond, Tom Scogland, Domagoj Šarić 2019-10-08 2019-10 P1795R0 SG1, SG14  
P1820R0 Recommendations for a compromise on handling errors and cancellations in executors Gordon Brown 2019-10-08 2019-10   SG1, Library Evolution  
P1830R1 std::dependent_false Ruslan Arutyunyan 2019-10-07 2019-10 P1830R0 LEWGI  
P1839R1 Accessing Object Representations Krystian Stasiowski 2019-10-02 2019-10 P1839R0 Core  
P1847R1 Make declaration order layout mandated Pal Balog 2019-10-01 2019-10 P1847R0 Evolution  
P1854R0 Conversion to execution encoding should not lead to loss of meaning Corentin Jabot 2019-10-06 2019-10   SG16, Evolution  
P1855R0 Make <compare> freestanding Ben Craig, Bryce Adelstein Lelbach 2019-10-05 2019-10   Library Evolution  
P1856R0 Bit operations do not work on bytes: a generic fix Vincent Reverdy 2019-10-07 2019-10   Library Evolution, Library  
P1857R0 Modules Dependency Discovery Michael Spencer 2019-10-07 2019-10   SG2, SG15, Evolution  
P1857R1 Modules Dependency Discovery Michael Spencer 2019-10-07 2019-10 P1857R0 SG2, SG15, Evolution  
P1858R0 Generalized pack declaration and usage Barry Revzin 2019-10-07 2019-10   Evolution  
P1859R0 Standard terminology for execution character set encodings Steve Downey 2019-10-09 2019-10   SG16, Evolution, Core  
P1860R0 C++ Networking Must Be Secure By Default JF Bastien, Alex Christensen 2019-10-07 2019-10   Library Evolution  
P1861R0 Secure Connections in Networking TS JF Bastien, Alex Christensen 2019-10-07 2019-10   Library Evolution  
P1862R0 Ranges adaptors for non-copyable iterators Corentin Jabot 2019-10-06 2019-10   Library Evolution, Library  
P1865R0 Add max() to latch and barrier David Olsen, Olivier Giroux 2019-09-30 2019-10   Library Evolution, Library  
P1868R0 ? width: clarifying units of width and precision in std::format Victor Zverovich, Zach Laine 2019-10-05 2019-10   SG16, Library Evolution  
P1869R0 Rename 'condition_variable_any' interruptible wait methods Tomasz Kamiński, Michał Dominiak 2019-10-01 2019-10   Library Evolution  
P1870R0 forwarding-range is too subtle Barry Revzin 2019-10-07 2019-10   Library Evolution  
P1871R0 Should concepts be enabled or disabled? Barry Revzin 2019-10-07 2019-10   Library Evolution  
P1872R0 span should have size_type, not index_type Nevin Liber 2019-10-07 2019-10   Library Evolution  
P1873R0 remove.dots.in.module.names Michael Spencer 2019-10-07 2019-10   SG2, Evolution  
P1873R1 remove.dots.in.module.names Michael Spencer 2019-10-07 2019-10 P1873R0 SG2, Evolution  
P1874R0 Dynamic Initialization Order of Non-Local Variables in Modules Michael Spencer 2019-10-07 2019-10   SG2, Evolution  
P1875R0 Transactional Memory Lite Support in C++ Michael Spear, Hans Boehm, Victor Luchangco, Michael Scott, Michael Wong 2019-10-07 2019-10   SG1  
P1876R0 All The Module Names Rene Rivera 2019-10-04 2019-10   SG15  
P1876R1 All The Module Names Rene Rivera 2019-10-08 2019-10 P1876R0 SG2  
P1877R0 Saving Private Ranges: Recovering Lost Information from Comparison and Predicate Algorithms JeanHeyd Meneide 2019-10-07 2019-10   Library Evolution  
P1878R0 Constraining Readable Types Eric Niebler, Casey Carter 2019-10-04 2019-10   Library  
P1879R0 Please Don't Rewrite My String Literals Zach Laine 2019-10-06 2019-10   SG16, EWGI  
P1880R0 uNstring Arguments Shall Be UTF-N Encoded Zach Laine 2019-10-06 2019-10   SG16, LEWGI  
P1881R0 Epochs: a backward-compatible language evolution mechanism Vittorio Romeo 2019-10-06 2019-10   EWGI  
P1882R0 Addition of a filter to recursive_directory_iterator Noel Tchidjo Moyo 2019-09-26 2019-10   EWGI  
P1883R0 Walkthrough of P1031s file_handle for LEWG-I Niall Douglas 2019-09-26 2019-10   LEWGI  
P1885R0 Naming Text Encodings to Demystify Them Corentin Jabot 2019-10-06 2019-10   SG16, Library Evolution  
P1886R0 Error speed benchmarking Ben Craig 2019-10-05 2019-10   SG14, Direction Group  
P1887R0 Typesafe Reflection on attributes Corentin Jabot 2019-10-06 2019-10   SG7  
P1888R0 Executors without exception handling support Matti Rintala, Matti Rintala, Michael Wong, David S. Hollman, Pekka Jääskeläinen 2019-10-07 2019-10   SG1  
P1889R0 C++ Numerics Work In Progress Alexander Zaitsev, Antony Polukhin 2019-10-01 2019-10   SG6  
P1890R0 C++ Numerics Work In Progress Issues Antony Polukhin, Alexander Zaitsev 2019-10-01 2019-10   SG6  
P1891R0 The Linear-Algebra Effort Guy Davidson, Mark Hoemmen, David Hollman, Bob Steagall, Christian Trott 2019-10-13 2019-10   SG6, SG14, SG19, Library Evolution  
P1892R0 Extended locale-specific presentation specifiers for std::format Peter Brett 2019-10-07 2019-10   SG16, LEWGI  
P1893R0 Proposal of Contract Primitives Andrew Tomazos 2019-10-01 2019-10   SG21  
P1894R0 Proposal of std::upto, std::indices and std::enumerate Andrew Tomazos 2019-10-02 2019-10   LEWGI  
P1895R0 tag_invoke: A general pattern for supporting customisable functions Lewis Baker, Eric Niebler, Kirk Shoop 2019-10-08 2019-10   Library Evolution  
P1896R0 SG16: Unicode meeting summaries 2019/06/12 - 2019/09/25 Tom Honermann 2019-10-02 2019-10   SG16  
P1897R0 Towards C++23 executors: An initial set of algorithms Lee Howes 2019-10-07 2019-10   SG1  
P1898R0 Forward progress delegation for executors Lee Howes 2019-10-07 2019-10   SG1  
P1899R0 stride_view Christopher Di Bella 2019-10-07 2019-10   Library Evolution  
P1900R0 Concepts-Adjacent Problems Barry Revzin 2019-10-07 2019-10   Evolution  
P1901R0 Enabling the Use of weak_ptr as Keys in Unordered Associative Containers Daryl Haresign 2019-10-03 2019-10   Library Evolution  
P1902R0 Missing feature-test macros 2018-2019 Barry Revzin 2019-10-07 2019-10   Evolution, Library Evolution  
P1905R0 In-Source Mechanism to Identify Importable Headers Corentin Jabot 2019-10-06 2019-10   SG15, Evolution  
P1906R0 Provided operator= return lvalue-ref on rvalue Peter Sommerlad 2019-10-07 2019-10   SG12, EWGI, Evolution, Core  
P1907R0 Inconsistencies with non-type template parameters Jens Maurer 2019-10-07 2019-10   Evolution  
P1908R0 Reserving Attribute Names for Future Use Corentin Jabot 2019-10-06 2019-10   Evolution  
P1912R0 Interconvertible object representations Timur Doumler 2019-10-06 2019-10   EWGI, Evolution  
P1913R0 Comments on Audio Devices Frank Birbacher 2019-10-06 2019-10   SG13  
P1914R0 On the names of shift algorithms Vincent Reverdy 2019-10-07 2019-10   Library Evolution, Library  
P1915R0 Expected Feedback from simd in the Parallelism TS 2 Matthias Kretz 2019-10-07 2019-10   SG1, Library Evolution  
P1916R0 There might not be an elegant OOTA fix David Goldblatt 2019-10-07 2019-10   SG1  
P1917R0 C++ Library Issues to be moved in Belfast Marshall Clow 2019-10-07 2019-10   WG21  
P1919R0 Expanding the Rights in SD-8 Nevin Liber 2019-10-07 2019-10   Library Evolution  
P1920R0 Proposal of Namespace Templates Andrew Tomazos 2019-10-07 2019-10   EWGI  
P1921R0 What's in a Name? Nevin Liber 2019-10-07 2019-10   Library Evolution  
P1922R0 Making std::list constexpr Alexander Zaitsev 2019-10-07 2019-10   LEWGI  
P1923R0 Making std::deque constexpr Alexander Zaitsev 2019-10-07 2019-10   LEWGI  
P1924R0 Making std::stack constexpr Alexander Zaitsev 2019-10-07 2019-10   LEWGI  
P1925R0 Making std::queue constexpr Alexander Zaitsev 2019-10-07 2019-10   LEWGI  
P1926R0 Making std::priority_queue constexpr Alexander Zaitsev 2019-10-07 2019-10   LEWGI  
P1927R0 Add std::is_partitioned_until algorithm Alexander Zaitsev 2019-10-07 2019-10   LEWGI  
P1928R0 Merge data-parallel types from the Parallelism TS 2 Matthias Kretz 2019-10-07 2019-10   SG1  
P1929R0 Making std::forward_list constexpr Alexander Zaitsev 2019-10-07 2019-10   LEWGI  
P1930R0 Towards a standard unit systems library Vincent Reverdy 2019-10-07 2019-10   SG6, LEWGI  
P1932R0 Extension of the C++ random number generators Pavel Dyakov, Ilya Burylov; Ruslan Arutyunyan; Andrey Nikolaev 2019-10-07 2019-10   SG6  
P1933R0 Suggestions for bulk_execute Jared Hoberock 2019-10-07 2019-10   SG1  
P1936R0 Dependent Static Assertion Ruslan Arutyunyan 2019-10-07 2019-10   EWGI  
P1937R0 Fixing inconsistencies between `constexpr` and `consteval` functions David Stone 2019-10-07 2019-10   Evolution  
P1938R0 if consteval Barry Revzin, Daveed Vandevoorde, Richard Smith 2019-10-10 2019-10   Evolution  
P1943R0 Networking TS changes to improve completion token flexibility and performance Christopher Kohlhoff 2019-10-07 2019-10   SG1, Library Evolution  

2019-10 pre-Belfast mailing available (1 of 2)

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

 

N4831 2022 Portland Meeting Invitation and Information Erich Keane 2019-10-04 2019-10 WG21
N4832 2021 Kona meeting information Herb Sutter 2019-10-02 2019-10 WG21
N4833 Agenda for Belfast John Spicer 2019-10-04 2019-10 WG21
N4834 WG21 telecon meeting: Pre-Belfast Herb Sutter 2019-10-04 2019-10 WG21
N4835 Working Draft, Standard for Programming Language C++ Richard Smith 2019-10-08 2019-10 N4830 WG21
N4836 Editors’ Report - Programming Languages - C++ Richard Smith 2019-10-08 2019-10 WG21
N4837 2020 Varna Meeting Information Vassil Vassilev 2019-10-08 2019-10 N4825 WG21
P0267R10 A Proposal to Add 2D Graphics Rendering and Display to C++ Michael B McLaughlin, Herb Sutter, Jason Zink, Guy Davidson, Michael Kazakov 2019-10-07 2019-10 P0267R9 SG13, SG16
P0288R5 any_invocable Matt Calabrese, Ryan McDougall 2019-10-07 2019-10 P0288R4 Library
P0443R11 A Unified Executors Proposal for C++ Jared Hoberock, Michael Garland, Chris Kohlhoff, Chris Mysen, Carter Edwards, Gordon Brown, David Hollman, Lee Howes, Kirk Shoop, Eric Niebler 2019-10-07 2019-10 P0443R10 SG1, Library Evolution
P0447R8 Introduction of std::colony to the standard library Matt Bentley 2019-09-05 2019-10 P0447R7 WG21
P0447R9 Introduction of std::colony to the standard library Matt Bentley 2019-10-10 2019-10 P0447R8 WG21
P0549R6 Adjuncts to std::hash Walter E Brown 2019-10-05 2019-10 P0549R5 Library
P0592R3 To boldly suggest an overall plan for C++23 Ville Voutilainen 2019-10-07 2019-10 P0592R2 Evolution, Library Evolution
P0593R5 Implicit creation of objects for low-level object manipulation Richard Smith 2019-10-07 2019-10 P0593R4 Evolution, Core, Library
P0596R1 Side-effects in constant evaluation: Output and consteval variables Daveed Vandevoorde 2019-10-08 2019-10 P0596R0 Evolution
P0642R3 The Concurrent Invocation Library Mingxin Wang, Wei Chen 2019-10-07 2019-10 P0642R2 SG1, Library Evolution, Library
P0792R5 function_ref: a non-owning reference to a Callable Vittorio Romeo 2019-10-06 2019-10 P0792R4 Library
P0849R2 auto(x): decay-copy in the language Zhihao Yuan 2019-10-07 2019-10 P0849R1 Evolution, Library Evolution
P0876R9 fiber_context - fibers without scheduler Oliver Kowalke, Nat Goodspeed 2019-10-06 2019-10 P0876R8 SG1, SG14, Evolution, Library Evolution
P0901R5 Size feedback in operator new Chris Kennelly, Andrew Hunter 2019-10-06 2019-10 P0901R4 Evolution, Library Evolution
P0917R3 Making operator?: overloadable Matthias Kretz 2019-10-07 2019-10 P0917R2 EWGI
P0939R4 Direction for ISO C++ Howard Hinnant, R. Orr, B. Stroustrup, D. Vandevoorde, M. Wong 2019-10-07 2019-10 P0939R3 WG21
P0957R3 PFA: A Generic, Extendable and Efficient Solution for Polymorphic Programming Mingxin Wang 2019-10-07 2019-10 P0957R2 SG7, EWGI, Library Evolution, Library
P1000R3 C++ IS schedule Herb Sutter 2019-10-04 2019-10 P1000R2 WG21
P1030R3 std::filesystem::path_view Niall Douglas 2019-09-26 2019-10 P1030R2 Library Evolution
P1045R1 constexpr Function Parameters David Stone 2019-09-27 2019-10 P1045R0 Evolution
P1046R1 Automatically Generate More Operators David Stone 2019-09-26 2019-10 P1046R0 Evolution, Library Evolution
P1061R1 Structured Bindings can introduce a Pack Barry Revzin, Jonathan Wakely 2019-10-07 2019-10 P1061R0 Evolution
P1068R2 Vector API for random number generation Ilya Burylov, Pavel Dyakov, Ruslan Arutyunyan, Andrey Nikolaev 2019-10-07 2019-10 P1068R1 SG1, SG6
P1072R5 basic_string::resize_default_init Chris Kennelly, Mark Zeren 2019-10-07 2019-10 P1072R4 Library Evolution, Library
P1108R3 web_view Hal Finkel 2019-10-04 2019-10 P1108R2 SG1, SG12, SG13, SG16, LEWGI
P1108R4 web_view Hal Finkel 2019-10-07 2019-10 P1108R3 SG1, SG12, SG13, SG16, LEWGI
P1115R1 Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if Marc Mutz 2019-09-26 2019-10 P1115R0 Library
P1132R6 out_ptr - a scalable output pointer abstraction JeanHeyd Meneide, Todor Buyukliev, Isabella Muerte 2019-10-07 2019-10 P1132R5 Library
P1160R1 Add Test Polymorphic Memory Resource to the Standard Library Attila Fehér, Alisdair Meredith 2019-10-07 2019-10 P1160R0 Library Evolution
P1219R2 Homogeneous variadic function parameters James Touton 2019-10-06 2019-10 P1219R1 Evolution
P1240R1 Scalable Reflection in C++ Daveed Vandevoorde, Wyatt Childers, Andrew Sutton, Faisal Vali, Daveed Vandevoorde 2019-10-08 2019-10 P1240R0 SG7
P1255R5 A view of 0 or 1 elements: views::maybe Steve Downey 2019-10-09 2019-10 P1255R4 Library Evolution
P1315R4 secure_clear Miguel Ojeda 2019-10-07 2019-10 P1315R3 SG1
P1385R3 A proposal to add linear algebra support to the C++ standard library Guy Davidson, Bob Steagall 2019-10-07 2019-10 P1385R2 SG6, SG14, Library Evolution
P1389R1 Standing Document for SG20: Guidelines for Teaching C++ to Beginners Christopher Di Bella, Simon Brand, Michael Adams 2019-10-07 2019-10 P1389R0 SG20
P1401R2 Narrowing contextual conversions to bool Andrzej Krzemieński 2019-10-03 2019-10 P1401R1 Evolution
P1436R2 Executor properties for affinity-based execution Gordon Brown, Ruyman Reyes, Michael Wong, H. Carter Edwards, Thomas Rodgers, Mark Hoemmen 2019-10-08 2019-10 P1436R1 SG1, SG14
P1450R2 Enriching type modification traits Vincent Reverdy 2019-10-06 2019-10 P1450R1 Library Evolution
P1467R2 Extended floating-point types Michał Dominiak, David Olsen 2019-10-07 2019-10 P1467R1 Evolution, Library Evolution
P1468R2 Fixed-layout floating-point type aliases Michał Dominiak, David Olsen, Boris Fomitchev, Sergei Nikolaev 2019-10-07 2019-10 P1468R1 Evolution, Library Evolution
P1494R1 Partial program correctness S. Davis Herring 2019-10-03 2019-10 P1494R0 Evolution, Core, Library Evolution
P1496R0 Formatting of Negative Zero Alan Talbot, Jorg Brown, Victor Zverovich 2019-02-20 2019-10 Library Evolution
P1496R1 Formatting of Negative Zero Alan Talbot, Jorg Brown 2019-10-06 2019-10 P1496R0 Library Evolution, Library
P1609R2 C++ Should Support Just-in-Time Compilation Hal Finkel 2019-10-07 2019-10 P1609R1 EWGI
P1619R1 Functions for Testing Boundary Conditions on Integer Operations Lisa Lippincott 2019-10-04 2019-10 P1619R0 SG6, Library Evolution
P1622R2 Mandating the Standard Library: Clause 32 - Thread support library Daniel Sunderland 2019-10-07 2019-10 P1622R1 Library
P1636R2 Formatters for library types Lars Gullik Bjønnes 2019-10-06 2019-10 P1636R1 Library
P1640R1 Error size benchmarking: Redux Ben Craig 2019-09-29 2019-10 P1640R0 WG21, Direction Group
P1641R1 Freestanding Library: Rewording the Status Quo Ben Craig 2019-09-29 2019-10 P1641R0 SG14, Library Evolution
P1642R1 Freestanding Library: Easy [utilities], [ranges], and [iterators] Ben Craig 2019-09-30 2019-10 P1642R0 SG14, Library Evolution
P1648R2 A Library for Sink Argument Passing Mingxin Wang, Agustín Bergé 2019-10-07 2019-10 P1648R1 Library Evolution, Library
P1673R1 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, Graham Lopez, Peter Caday, Sarah Knepper, Piotr Luszczek, Timothy Costa 2019-06-17 2019-10 P1673R0 SG6, SG14, SG19, Library Evolution
P1677R2 Cancellation is not an Error Kirk Shoop, Lisa Lippincott, Lewis Baker 2019-10-06 2019-10 P1677R1 Evolution
P1678R2 Callbacks and Composition Kirk Shoop 2019-10-06 2019-10 P1678R1 Library Evolution
P1679R1 String Contains function Wim Leflere, Paul Fee 2019-10-03 2019-10 P1679R0 Library
P1686R1 Mandating the Standard Library: Clause 27 - Time library Jeff Garland 2019-10-07 2019-10 P1686R0 Library
P1690R1 Refinement Proposal for P0919 Heterogeneous lookup for unordered containers Xiao Shi, Mateusz Pusz, Geoffrey Romer 2019-08-12 2019-10 P1690R0 Library
P1705R1 Enumerating Core Undefined Behavior Shafik Yaghmour 2019-10-07 2019-10 P1705R0 SG12
P1706R1 Programming Language Vulnerabilities for C++ update Michael Wong, Stephen Michel 2019-10-07 2019-10 P1706R0 SG12
P1716R2 ranges compare algorithm are over-constrained Tomasz Kamiński 2019-10-06 2019-10 P1716R1 Library
P1718R1 Mandating the Standard Library: Clause 25 - Algorithms library Marshall Clow 2019-10-07 2019-10 P1718R0 Library
P1719R1 Mandating the Standard Library: Clause 26 - Numerics library Marshall Clow 2019-10-07 2019-10 P1719R0 Library
P1720R1 Mandating the Standard Library: Clause 28 - Localization library Marshall Clow 2019-10-07 2019-10 P1720R0 Library
P1721R1 Mandating the Standard Library: Clause 29 - Input/Output library Marshall Clow 2019-10-07 2019-10 P1721R0 Library
P1722R1 Mandating the Standard Library: Clause 30 - Regular Expression library Marshall Clow 2019-10-07 2019-10 P1722R0 Library
P1723R1 Mandating the Standard Library: Clause 31 - Atomics library Marshall Clow 2019-10-07 2019-10 P1723R0 Library
P1725R1 Modular Topic Design Christopher Di Bella 2019-10-07 2019-10 P1725R0 SG20
P1729R1 Text Parsing Victor Zverovich , Elias Kosunen 2019-10-06 2019-10 P1729R0 Library Evolution
P1731R1 Memory helper functions for containers Ruslan Arutyunyan, Ilya Burylov, Pablo Halpern 2019-10-07 2019-10 P1731R0 Library Evolution
P1739R2 Avoid template bloat for forwarding ranges in combination with 'subrange-y' view adaptors. Hannes Hauswedell (h2 AT fsfe.org) 2019-10-06 2019-10 P1739R1 Library
P1748R1 Fill in [delay.cpp] TODO in D1389 Yehezkel Bernat 2019-10-13 2019-10 P1748R0 SG20

fixing c++ with epochs -- Vittorio Romeo

This article covers a possible mechanism that would allow the C++ committee to make breaking changes to the language syntax while still fully preserving backwards compatibility. This would allow dangerous or obsolete constructs to be removed from C++, increasing safety and approachability of the language.

fixing c++ with epochs

by Vittorio Romeo

From the article:

Imagine that you have been designing a programming language for over 30 years and that it gradually became widely used across the globe. Some of the decisions you made at the beginning were excellent and contributed to the success of your project. Some others, however, were not the best: over the years you and your users realized that the world would have been a better place if those choices you made eons ago were slightly different. [...]

What if I told you that I could fix all of your problems? Even better, what if I told you that backward-compatibility will never be broken and that migration to newer versions of your language could be automated?

Trip Report: ISO C++ Meeting Cologne (2019) -- Matthias Gehre

Matthias Gehre’s trip report of the ISO C++ committee meeting in Cologne in 2019.

Trip Report: ISO C++ Meeting Cologne (2019)

by Matthias Gehre

From the trip report:

This is my trip report of the ISO C++ Meeting in Cologne – my first ISO C++ Meeting.

I will not so much focus on the big features that were approved for C++20 (there are better reports),

but more describe my personal experience. The report also contains discussions on

many lesser-known papers.

Highlighting the Student and Support Tickets for Meeting C++ 2019

Also available in this year: the programs for students and diversity & support for Meeting C++ 2019

Highlighting the Student and Support Tickets for Meeting C++ 2019

by Jens Weller

From the article:

With the Schedule for Meeting C++ 2019 being complete regarding submitted talks, I want to highlight, that there is an opportunity for folks to attend the conference with a free ticket!

2019-08 post-Cologne mailing available

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

 

N4823 Cologne 2019 LEWG Summary Titus Winters 2019-07-25 2019-08   WG21  
N4824 Business plan and convener's report Herb Sutter 2019-07-29 2019-08   WG21  
N4825 2020 Varna Meeting Information Vassil Vassilev, Mark Zeren, Vassil Keremidchiev, Anton Stoyanov 2019-08-09 2019-08   WG21  
N4826 WG21 2019-07 Cologne Minutes of Meeting Nina Dinka Ranns 2019-08-09 2019-08   WG21  
N4829 Editors' Report - Programming Languages - C++ Richard Smith 2019-08-15 2019-08   WG21  
N4830 Committee Draft, Standard for Programming Language C++ Richard Smith 2019-08-15 2019-08 N4820 WG21  
P0323R9 std::expected JF Bastien, Vicente Botet 2019-08-03 2019-08 P0323R8 Library  
P0325R4 to_array from LFTS with updates Zhihao Yuan 2019-07-29 2019-08 P0325R3 Library Adopted 2019-07
P0330R5 Literal Suffixes for ptrdiff_t and size_t JeanHeyd Meneide, Rein Halbersma 2019-07-24 2019-08 P0330R4 Core  
P0350R3 Integrating simd with parallel algorithms Matthias Kretz 2019-07-23 2019-08 P0350R2 Library Evolution  
P0388R4 Permit conversions to arrays of unknown bound Robert Haberlach, Richard Smith 2019-07-18 2019-08 P0388R3 Core Adopted 2019-07
P0408R7 Efficient Access to basic_stringbuf’s Buffer Peter Sommerlad 2019-07-18 2019-08 P0408R6 Library Evolution, Library Adopted 2019-07
P0466R5 Layout-compatibility and Pointer-interconvertibility Traits Lisa Lippincott 2019-07-26 2019-08 P0466R4 Core, Library Adopted 2019-07
P0592R2 To boldly suggest an overall plan for C++23 Ville Voutilainen 2019-08-04 2019-08 P0592R1 Evolution, Library Evolution  
P0631R8 Math Constants Lev Minkovsky, John McFarlane 2019-07-28 2019-08 P0631R7 Library Adopted 2019-07
P0645R10 Text Formatting Victor Zverovich 2019-07-18 2019-08 P0645R9 Library Adopted 2019-07
P0660R10 Stop Token and Joining Thread Nicolai Josuttis, Lewis Baker, Billy O'Neal, Herb Sutter, Anthony Williams 2019-07-21 2019-08 P0660R9 Library Adopted 2019-07
P0709R4 Zero-overhead deterministic exceptions: Throwing values Herb Sutter 2019-08-04 2019-08 P0709R3 Evolution, Library Evolution  
P0784R7 More constexpr containers Daveed Vandevoorde, Peter Dimov,Louis Dionne, Nina Ranns, Richard Smith, Daveed Vandevoorde 2019-07-22 2019-08 P0784R6 Core, Library Adopted 2019-07
P0848R3 Conditionally Trivial Special Member Functions Barry Revzin, Casey Carter 2019-07-28 2019-08 P0848R2 Core Adopted 2019-07
P0876R8 fiber_context - fibers without scheduler Oliver Kowalke, Nat Goodspeed 2019-08-05 2019-08 P0876R7 SG1  
P0943R4 Support C atomics in C++ Hans Boehm 2019-08-05 2019-08 P0943R3 Library  
P0980R1 Making std::string constexpr Louis Dionne 2019-07-19 2019-08 P0980R0 Library Evolution Adopted 2019-07
P1000R2 C++ IS schedule Herb Sutter 2019-07-29 2019-08 P1000R1 WG21  
P1004R2 Making std::vector constexpr Louis Dionne 2019-07-19 2019-08 P1004R1 Library Adopted 2019-07
P1018R4 Evolution status after Cologne 2019 Ville Voutilainen 2019-08-04 2019-08 P1018R3 WG21  
P1021R5 Filling holes in Class Template Argument Deduction Mike Spertus, Timur Doumler, Richard Smith 2019-08-04 2019-08 P1021R4 Core  
P1035R7 Input Range Adaptors Christopher Di Bella, Casey Carter, Corentin Jabot 2019-08-02 2019-08 P1035R6 Library Adopted 2019-07
P1065R2 constexpr INVOKE Barry Revzin, Tomasz Kaminski 2019-07-28 2019-08 P1065R1 Library Adopted 2019-07
P1099R5 Using Enum Gašper Ažman, Jonathan Mueller 2019-07-20 2019-08 P1099R4 WG21 Adopted 2019-07
P1112R2 Language support for class layout control Pal Balog 2019-08-04 2019-08 P1112R1 SG7, EWGI, Evolution  
P1132R5 out_ptr - a scalable output pointer abstraction JeanHeyd Meneide, Todor Buyukliev, Isabella Muerte 2019-08-05 2019-08 P1132R4 Library  
P1135R6 The C++20 Synchronization Library David Olsen, Olivier Giroux, JF Bastien, Detlef Vollmann, Bryce Lelbach 2019-07-20 2019-08 P1135R5 WG21 Adopted 2019-07
P1143R2 Adding the constinit keyword Eric Fiselier 2019-07-18 2019-08 P1143R1 Evolution, Core Adopted 2019-07
P1152R4 Deprecating volatile JF Bastien 2019-07-22 2019-08 P1152R3 Core Adopted 2019-07
P1186R3 When do you actually use <=>? Barry Revzin 2019-07-28 2019-08 P1186R2 Core Adopted 2019-07
P1207R3 Movability of Single-pass Iterators Corentin Jabot 2019-08-02 2019-08 P1207R2 Library  
P1207R4 Movability of Single-pass Iterators Corentin Jabot 2019-07-19 2019-08 P1207R3 Library Adopted 2019-07
P1208R6 Adopt source location from Library Fundamentals V3 for C++20 Corentin Jabot, Robert Douglas, Daniel Krugler, Peter Sommerlad 2019-08-02 2019-08 P1208R5 Library Adopted 2019-07
P1301R4 [[nodiscard("should have a reason")]] JeanHeyd Meneide, Isabella Muerte 2019-08-05 2019-08 P1301R3 WG21 Adopted 2019-07
P1315R3 secure_clear Miguel Ojeda 2019-08-05 2019-08 P1315R2 SG1  
P1331R2 Permitting trivial default initialization in constexpr contexts CJ Johnson 2019-07-26 2019-08 P1331R1 Core Adopted 2019-07
P1361R2 Integration of chrono with text formatting Victor Zverovich, Daniela Engert, Howard E. Hinnant 2019-07-19 2019-08 P1361R1 Library Adopted 2019-07
P1375R2 More Constrained: Apples or Oranges? Hubert Tong 2019-08-03 2019-08 P1375R1 WG21  
P1391R3 Range constructor for std::string_view Corentin Jabot 2019-08-02 2019-08 P1391R2 Library Evolution, Library  
P1394R3 Range constructor for std::span Corentin Jabot, Casey Carter 2019-08-02 2019-08 P1394R2 Library  
P1413R2 Deprecate std::aligned_storage and std::aligned_union CJ Johnson 2019-07-26 2019-08 P1413R1 Library Evolution, Library  
P1423R3 char8_t backward compatibility remediation Tom Honermann 2019-07-20 2019-08 P1423R2 WG21 Adopted 2019-07
P1429R3 Contracts That Work Joshua Berne, John Lakos 2019-07-23 2019-08 P1429R2 Evolution  
P1452R2 On the non-uniform semantics of return-type-requirements Hubert Tong 2019-07-18 2019-08 P1452R1 Core, Library Adopted 2019-07
P1466R3 Miscellaneous minor fixes for chrono Howard E. Hinnant 2019-07-17 2019-08 P1466R2 Library Adopted 2019-07
P1474R1 Helpful pointers for ContiguousIterator Casey Carter 2019-07-22 2019-08 P1474R0 WG21 Adopted 2019-07
P1478R2 Byte-wise atomic memcpy Hans Boehm 2019-08-05 2019-08 P1478R1 SG1  
P1502R1 Standard library header units for C++20 Richard Smith 2019-08-15 2019-08 P1502R0 Library Adopted 2019-07
P1510R0 Core Language Working Group "tentatively ready" Issues for the July, 2019 (Cologne) meeting William M. Miller 2019-07-19 2019-08   WG21 Adopted 2019-07
P1522R1 Iterator Difference Type and Integer Overflow Eric Niebler 2019-07-28 2019-08 P1522R0 Library Evolution, Library Adopted 2019-07
P1523R1 Views and Size Types Eric Niebler 2019-07-28 2019-08 P1523R0 Library Evolution, Library Adopted 2019-07
P1607R1 Minimizing Contracts Joshua Berne, Jeff Snyder, Ryan McDougall 2019-07-23 2019-08 P1607R0 Evolution  
P1612R1 Relocate Endian's Specification Arthur O'Dwyer 2019-07-20 2019-08 P1612R0 Library Adopted 2019-07
P1614R2 The Mothership Has Landed: Adding <=> to the Library Barry Revzin 2019-07-28 2019-08 P1614R1 Library Adopted 2019-07
P1616R1 Using unconstrained template template parameters with constrained templates Mike Spertus, Roland Bock 2019-07-28 2019-08 P1616R0 Core Adopted 2019-07
P1624R1 Resolving technical issues in parameter mapping equivalence and related problems Hubert Tong 2019-08-05 2019-08 P1624R0 Core  
P1630R1 Spaceship needs a tune-up Barry Revzin 2019-07-17 2019-08 P1630R0 Evolution, Core Adopted 2019-07
P1631R0 Object detachment and attachment Niall Douglas, Bob Steagall 2019-07-11 2019-08   SG1, SG12, SG14  
P1633R1 Amendments to the C++20 Synchronization Library David Olsen, Olivier Giroux 2019-07-19 2019-08 P1633R0 SG1  
P1636R1 Formatters for library types Lars Gullik Bjønnes 2019-08-02 2019-08 P1636R0 Library Evolution, Library  
P1638R1 basic_istream_view's iterator should not be copyable Corentin Jabot, Christopher Di Bella 2019-08-02 2019-08 P1638R0 SG16, Library Evolution, Library Adopted 2019-07
P1643R1 Add wait/notify to atomic_ref David Olsen 2019-07-20 2019-08 P1643R0 WG21 Adopted 2019-07
P1648R1 The Concept of Extending Argument and a Support Library Mingxin Wang, Agustín Bergé 2019-08-05 2019-08 P1648R0 LEWGI, Library Evolution, Library  
P1652R1 Printf corner cases in std::format Zhihao Yuan, Victor Zverovich 2019-07-18 2019-08 P1652R0 Library Adopted 2019-07
P1661R1 Remove dedicated precalculated hash lookup interface Tomasz Kamiński 2019-07-18 2019-08 P1661R0 Library Adopted 2019-07
P1664R0 reconstructible_range - a concept for putting ranges back together JeanHeyd Meneide 2019-08-05 2019-08   Library Evolution, Library  
P1668R1 Enabling constexpr Intrinsics By Permitting Unevaluated inline-assembly in constexpr Functions Erich Keane 2019-07-17 2019-08   EWGI, Evolution Adopted 2019-07
P1675R1 rethrow_exception must be allowed to copy Billy O'Neal 2019-07-19 2019-08 P1675R0 Evolution, Core, Library  
P1677R1 Cancellation is not an Error Kirk Shoop 2019-08-05 2019-08 P1677R0 SG1, Evolution, Library Evolution  
P1678R1 Callbacks and Composition Kirk Shoop 2019-08-05 2019-08 P1678R0 SG1, SG13, Library Evolution  
P1682R1 std::to_underlying JeanHeyd Meneide 2019-08-05 2019-08 P1682R0 Library  
P1687R1 Summary of the Tooling Study Group's Modules Ecosystem Technical Report Telecons Bryce Adelstein Lelbach, Ben Craig 2019-08-06 2019-08 P1687R0 SG2, SG15, Evolution  
P1689R1 Format for describing dependencies of source files Ben Boeckel, Brad King 2019-08-09 2019-08 P1689R0 SG15, SG16, Evolution  
P1703R1 Recognizing Header Unit Imports Requires Full Preprocessing Boris Kolpackov 2019-07-19 2019-08 P1703R0 SG2, Evolution Adopted 2019-07
P1714R1 NTTP are incomplete without float, double, and long double! Jorg Brown 2019-07-19 2019-08 P1714R0 Evolution, Core  
P1716R1 ranges compare algorithm are over-constrained Tomasz Kamiński 2019-07-28 2019-08 P1716R0 Library Evolution  
P1732R1 Do not promise support for function syntax of operators CJ Johnson 2019-07-26 2019-08 P1732R0 Library Evolution, Library  
P1739R1 Type erasure for forwarding ranges in combination with "subrange-y" view adaptors Hannes Hauswedell 2019-07-15 2019-08 P1739R0 Library  
P1746R1 Feedback on P1386R2 std::audio Sophia Poirier, Richard Powell, David Singer, Dan Klingler, Tony Guetta, Doug Wyatt 2019-07-24 2019-08 P1746R0 SG13, Library Evolution  
P1754R1 Rename concepts to standard_case for C++20, while we still can Herb Sutter, Casey Carter, Gabriel Dos Reis, Eric Niebler, Bjarne Stroustrup, Andrew Sutton, Ville Voutilainen 2019-07-18 2019-08 P1754R0 Evolution, Library Evolution, Library Adopted 2019-07
P1759R1 Native handle from file streams Elias Kosunen 2019-07-29 2019-08 P1759R0 Library Evolution  
P1766R1 Mitigating minor modules maladies Richard Smith 2019-08-07 2019-08 P1766R0 Evolution Adopted 2019-07
P1771R1 [[nodiscard]] for constructors Peter Sommerlad 2019-07-19 2019-08 P1771R0 EWGI, Evolution, Core Adopted 2019-07
P1779R1 ABI isolation for member functions S. Davis Herring 2019-08-02 2019-08 P1779R0 Evolution  
P1782R1 Local contract restrictions S. Davis Herring 2019-08-02 2019-08 P1782R0 SG21  
P1787R1 Declarations and where to find them S. Davis Herring 2019-08-02 2019-08 P1787R0 Core  
P1788R2 Reuse of the built modules (BMI) Olga Arkhipova 2019-07-18 2019-08 P1788R1 SG15, Core  
P1801R0 Clarifying atomic[thread::id]::compare_exchange_* Herb Sutter 2019-07-17 2019-08   SG1, Library Evolution, Library  
P1803R0 packexpr(args, I) - compile-time friendly pack inspection JeanHeyd Meneide 2019-08-06 2019-08   EWGI, Evolution  
P1807R0 An Overview of Contracts Papers for Cologne Joshua Berne 2019-07-23 2019-08   Evolution  
P1808R0 Contra P0339 "polymorphic_allocator as a vocabulary type" Arthur O'Dwyer 2019-07-11 2019-08   Library Evolution, Library  
P1810R0 A Quick Look at What P1754 Will Change Christopher Di Bella 2019-08-05 2019-08   Evolution, Library Evolution, Library  
P1811R0 Relaxing redefinition restrictions for re-exportation robustness Richard Smith, Gabriel Dos Reis 2019-08-07 2019-08   Evolution Adopted 2019-07
P1812R0 Axioms should be assumable: a minimal fix for contracts Timur Doumler, Ville Voutilainen 2019-07-18 2019-08   Evolution, Core  
P1813R0 A Concept Design for the Numeric Algorithms Christopher Di Bella 2019-08-02 2019-08   SG6, Library Evolution  
P1814R0 Wording for Class Template Argument Deduction for Alias Templates Mike Spertus 2019-07-28 2019-08   Core Adopted 2019-07
P1815R0 Translation-unit-local entities S. Davis Herring 2019-08-02 2019-08   Core  
P1816R0 Wording for class template argument deduction for aggregates Timur Doumler 2019-07-18 2019-08   Core Adopted 2019-07
P1818R0 Narrowing and Widening Conversions Lawrence Crowl 2019-07-16 2019-08   EWGI  
P1819R0 Interpolated Literals Vittorio Romeo 2019-07-20 2019-08   EWGI  
P1823R0 Remove Contracts from C++20 Nicolai Josuttis, Ville Voutilainen, Roger Orr, Daveed Vandevoorde, John Spicer, Christopher Di Bella 2019-07-21 2019-08   Evolution, Core Adopted 2019-07
P1825R0 Merged wording for P0527R1 and P1155R3 David Stone 2019-07-19 2019-08   Core Adopted 2019-07
P1830R0 std::dependent_false Ruslan Arutyunyan 2019-07-18 2019-08   LEWGI  
P1831R0 deprecating volatile: library JF Bastien 2019-08-02 2019-08   Library  
P1832R0 Improving Debug Builds Inline With User Expectation John McFarlane 2019-08-05 2019-08   SG2, SG14, SG15  
P1837R0 Remove NTTPs of class type from C++20 Arthur O'Dwyer 2019-07-29 2019-08   Evolution, Library Evolution  
P1839R0 Accessing Object Representations Krystian Stasiowski 2019-08-09 2019-08   Core  
P1840R0 Cologne 2019, Record of Discussion Nina Ranns 2019-08-05 2019-08   WG21  
P1841R0 Wording for Individually Specializable Numeric Traits Walter E Brown 2019-08-03 2019-08   Library  
P1842R0 Generalized Module (Dependency?) Mapper Boris Kolpackov 2019-08-04 2019-08   SG15  
P1843R0 Comparison and Hasher Requirements Billy O'Neal 2019-08-01 2019-08   Library Evolution  
P1844R0 Enhancement of regex Nozomu Katō 2019-08-04 2019-08   SG16, LEWGI  
P1845R0 2019-09-21 Denver Tooling Meeting Bryce Adelstein Lelbach, Jon Kalb 2019-08-06 2019-08   SG15  
P1846R0 Teach class Last John McFarlane 2019-08-05 2019-08   SG20  
P1847R0 Make declaration order layout mandated Pal Balog 2019-08-05 2019-08   Evolution  
P1851R0 Guidelines For snake_case Concept Naming Jonathan Müller 2019-08-09 2019-08   Library Evolution  

 

Trip report: July 2019 ISO C++ committee meeting, Cologne, Germany -- Timur Doumler

Timur Doumler's trip report from the ISO C++ committee meeting in Cologne in July 2019. A snapshot of what's going on in the world of C++ standardisation, from the perspective of an audio developer.

Trip Report July 2019 ISO C++ Committee Meeting

by Timour Doumler

About the trip report

A few weeks ago, the C++ committee descended upon Cologne, Germany, to finalise the C++20 Committee Draft (or in other words, our “release candidate” for C++20).

As usual, my trip report does not aim for completeness at all. Instead, it focuses on a few particular areas that I was involved in personally and/or things that might be relevant for the audio community.