P1018R7
C++ Language Evolution status 🦠 pandemic edition 🦠 2020/03–2020/10

Published Proposal,

This version:
http://wg21.link/P1018r7
Author:
(Toyota Research Institute—Advanced Development)
Audience:
WG21, EWG
Project:
ISO/IEC JTC1/SC22/WG21 14882: Programming Language — C++
Source:
github.com/jfbastien/papers/blob/master/source/P1018r7.bs

Abstract

This paper is a collection of items that the C++ Language Evolution group has worked on in the latest meeting, their status, and plans for the future.

1. Executive summary

We have not met in-person since the February 2020 meeting in Prague because of the global pandemic. We’re instead holding weekly teleconferences, as detailed in [P2145R1]. We focus on providing non-final guidance, and will use electronic straw polls as detailed in [P2195R0] to move papers and issues forward in a asynchronous manner.

Our main achievements have been:

2. Paper of note

3. Tentatively ready papers

Following our process in [P1999R0], we usually mark papers as tentatively ready for CWG. We would usually take a brief look at the next meeting, and if nothing particular concerns anyone, send them to CWG. However, given the pandemic, we’ve decided to provide guidance only in virtual teleconferences, and have an asynchronous polling mechanism to officially send papers to CWG or other groups as detailed in [P2195R0]. This system hasn’t been used by EWG yet. We’re waiting for LEWG’s first successful attempt at using this system before using it ourselves.

You can follow the lists of papers on GitHub:

The current list of papers which EWG will poll are:

We’ve also reviewed 50 Language Evolution issues at the Core groups' request, and have tentative resolutions for most. All of these issues will also be part of our asynchronous polling. Details on all these issues will be published in a separate paper.

4. Teleconferences

Here are the minutes for the virtual discussions that were held since the Prague meeting in February 2020:

  1. 2020-04-09 Issue Processing
  2. 2020-04-15 Issue Processing
  3. 2020-04-23 Issue Processing
  4. 2020-04-29 Issue Processing
  5. 2020-05-07 Issue Processing
  6. 2020-05-13 Issue Processing
  7. 2020-05-21 A General Property Customization Mechanism[P1393R0] (P1393 tracking issue)
  8. 2020-06-10 Reviewing Deprecated Facilities of C++20 for C++23[P2139R1] (P2139 tracking issue)
  9. 2020-06-18 C++ Identifier Syntax using Unicode Standard Annex 31[P1949R4] (P1949 tracking issue)
  10. 2020-06-24 Extended floating-point types and standard names[P1467R4] (P1467 tracking issue)
  11. 2020-07-02 Allow Duplicate Attributes, Attributes on Lambda-Expressions[P2156R0] (P2156 tracking issue) and [P2173R0] (P2173 tracking issue)
  12. 2020-07-08 Pointer lifetime-end zap and provenance, too[P1726R3] (P1726 tracking issue)
  13. 2020-07-16 Guaranteed copy elision for return variables[P2025R1] (P2025 tracking issue)
  14. 2020-07-30 Reviewing Deprecated Facilities of C++20 for C++23, Removing Garbage Collection Support[P2139R2] (P2139 tracking issue) and [P2186R0] (P2186 tracking issue)
  15. 2020-08-05 Transactional Memory Lite Support in C++[P1875R0] (P1875 tracking issue)
  16. 2020-08-19 Freestanding Language: Optional ::operator new, Mixed string literal concatenation[P2013R2] (P2013 tracking issue) and [P2201R0] (P2201 tracking issue)
  17. 2020-08-27 Exhaustiveness Checking for Pattern Matching[P1371R3] (P1371 tracking issue)
  18. 2020-09-02 #embed - a simple, scannable preprocessor-based resource acquisition method[P1967R2] (P1967 tracking issue)
  19. 2020-09-10 A pipeline-rewrite operator[P2011R1] (P2011 tracking issue)
  20. 2020-09-16 Pattern matching: inspect is always an expression[P1371R3] (P1371 tracking issue)
  21. 2020-09-24 C++ Identifier Syntax using Unicode Standard Annex 31, Member Templates for Local Classes[P1949R6] (P1949 tracking issue) and [P2044R0] (P2044 tracking issue)
  22. 2020-09-30 Narrowing contextual conversions to bool, Generalized pack declaration and usage[P1401R3] (P1401 tracking issue) and [P1858R2] (P1858 tracking issue)
  23. 2020-10-08 Compound Literals, if consteval[P2174R0] (P2174 tracking issue) and [P1938R1] (P1938 tracking issue)
  24. 2020-10-14 Inline Namespaces: Fragility Bites, Trimming whitespaces before line splicing[P1701R1] (P1701 tracking issue) and [P2223R0] (P2223 tracking issue)
  25. 2020-10-22 Issues Processing
  26. 2020-10-28 Issues Processing

5. Near-future EWG plans

We will continue to work on issue resolution and C++23, prioritizing according to [P0592R4].

6. Attendance

The Language Evolution meetings have attracted a mean of 31.9 attendees per meeting, with a median of 30.

References

Informative References

[P0592R4]
Ville Voutilainen. To boldly suggest an overall plan for C++23. 25 November 2019. URL: https://wg21.link/p0592r4
[P1000R4]
Herb Sutter. C++ IS schedule. 14 February 2020. URL: https://wg21.link/p1000r4
[P1371R3]
Michael Park, Bruno Cardoso Lopes, Sergei Murzin, David Sankel, Dan Sarginson, Bjarne Stroustrup. Pattern Matching. 15 September 2020. URL: https://wg21.link/p1371r3
[P1393R0]
D. S. Hollman, Chris Kohlhoff, Bryce Lelbach, Jared Hoberock, Gordon Brown, Michał Dominiak. A General Property Customization Mechanism. 13 January 2019. URL: https://wg21.link/p1393r0
[P1401R3]
Andrzej Krzemieński. Narrowing contextual conversions to bool. 27 May 2020. URL: https://wg21.link/p1401r3
[P1467R4]
David Olsen, Michał Dominiak. Extended floating-point types and standard names. 14 June 2020. URL: https://wg21.link/p1467r4
[P1701R1]
Nathan Sidwell. Inline Namespaces: Fragility Bites. 13 September 2020. URL: https://wg21.link/p1701r1
[P1726R3]
Paul E. McKenney, Maged Michael, Jens Mauer, Peter Sewell, Martin Uecker, Hans Boehm, Hubert Tong, Niall Douglas, Will Deacon, Michael Wong, and David Goldblatt. Pointer lifetime-end zap. 21 February 2020. URL: https://wg21.link/p1726r3
[P1847R3]
Pal Balog. Make declaration order layout mandated. 1 March 2020. URL: https://wg21.link/p1847r3
[P1858R2]
Barry Revzin. Generalized pack declaration and usage. 1 March 2020. URL: https://wg21.link/p1858r2
[P1875R0]
Michael Spear, Hans Boehm, Victor Luchangco, Michael Scott, Michael Wong. Transactional Memory Lite Support in C++. 7 October 2019. URL: https://wg21.link/p1875r0
[P1938R1]
Barry Revzin, Daveed Vandevoorde, Richard Smith, Andrew Sutton. if consteval. 2 March 2020. URL: https://wg21.link/p1938r1
[P1949R4]
Steve Downey, Zach Laine, Tom Honermann, Peter Bindels, Jens Maurer. C++ Identifier Syntax using Unicode Standard Annex 31. 5 June 2020. URL: https://wg21.link/p1949r4
[P1949R6]
Steve Downey, Zach Laine, Tom Honermann, Peter Bindels, Jens Maurer. C++ Identifier Syntax using Unicode Standard Annex 31. 15 September 2020. URL: https://wg21.link/p1949r6
[P1967R2]
JeanHeyd Meneide. #embed - a simple, scannable preprocessor-based resource acquisition method. 2 March 2020. URL: https://wg21.link/p1967r2
[P1999R0]
Ville Voutilainen. Process proposal: double-check evolutionary material via a Tentatively Ready status. 25 November 2019. URL: https://wg21.link/p1999r0
[P2011R1]
Barry Revzin, Colby Pike. A pipeline-rewrite operator. 16 April 2020. URL: https://wg21.link/p2011r1
[P2013R2]
Ben Craig. Freestanding Language: Optional ::operator new. 14 August 2020. URL: https://wg21.link/p2013r2
[P2013R3]
Ben Craig. Freestanding Language: Optional ::operator new. 13 September 2020. URL: https://wg21.link/p2013r3
[P2025R1]
Anton Zhilin. Guaranteed copy elision for return variables. 15 June 2020. URL: https://wg21.link/p2025r1
[P2044R0]
Robert Leahy. Member Templates for Local Classes. 12 January 2020. URL: https://wg21.link/p2044r0
[P2139R1]
Alisdair Meredith. Reviewing Deprecated Facilities of C++20 for C++23. 15 June 2020. URL: https://wg21.link/p2139r1
[P2139R2]
Alisdair Meredith. Reviewing Deprecated Facilities of C++20 for C++23. 15 July 2020. URL: https://wg21.link/p2139r2
[P2145R1]
Bryce Adelstein Lelbach, Titus Winters, Fabio Fracassi, Billy Baker, Nevin Liber, JF Bastien, David Stone, Botond Ballo, Tom Honermann. Evolving C++ Remotely. 15 September 2020. URL: https://wg21.link/p2145r1
[P2156R0]
Erich Keane. Allow Duplicate Attributes. 15 April 2020. URL: https://wg21.link/p2156r0
[P2156R1]
Erich Keane. Allow Duplicate Attributes. 2 July 2020. URL: https://wg21.link/p2156r1
[P2173R0]
Daveed Vandevoorde, Inbal Levi, Ville Voutilainen. Attributes on Lambda-Expressions. 15 May 2020. URL: https://wg21.link/p2173r0
[P2174R0]
Zhihao Yuan. Compound Literals. 16 May 2020. URL: https://wg21.link/p2174r0
[P2186R0]
JF Bastien, Alisdair Meredith. Removing Garbage Collection Support. 12 July 2020. URL: https://wg21.link/p2186r0
[P2195R0]
Bryce Adelstein Lelbach. Electronic Straw Polls. 15 September 2020. URL: https://wg21.link/p2195r0
[P2201R0]
Jens Maurer. Mixed string literal concatenation. 14 July 2020. URL: https://wg21.link/p2201r0
[P2223R0]
Corentin Jabot. Trimming whitespaces before line splicing. 14 September 2020. URL: https://wg21.link/p2223r0