P1018R19
C++ Language Evolution status

Published Proposal,

This version:
http://wg21.link/P1018r19
Author:
(Woven Planet)
Audience:
WG21, EWG
Project:
ISO/IEC JTC1/SC22/WG21 14882: Programming Language — C++
Source:
github.com/jfbastien/papers/blob/master/source/P1018r19.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

The Evolution Working Group did not meet in-person between the February 2020 meeting in Prague, until November 2022 in Kona. You will find EWG’s pandemic activities in [P1018r18].

This paper summarizes all of the work that was performed in the November 2022 Kona meeting.

2. Work Performed

This meeting was the first towards finalizing C++23, see [P1000r4] for the full schedule. In the ISO process, we received a variety of comments from different National Bodies. The full list is tracked as GitHub issues. EWG received 33 National Body comments. Of those, 16 were closed as duplicates, and 17 were reviewed with the following outcomes:

Separately from finalizing C++23, we’ve continued early work towards C++26 and later. We track outstanding proposals in GitHub as well, here are the ones for EWG which are ready to review. EWG and its incubator EWGI started the week with 83 papers to review (some not for the first time), EWG therefore had to prioritize using a variety of criteria such as the C++ Direction Group’s recommendations in [P2000r4]. During the week forwarded the following papers to CWG for C++26:

This doesn’t mean that they will all be in C++26, they are only tentatively on track to be in C++26.

The following papers were reviewed and forwarded to LEWG, the library evolution group, meaning that either EWG sees no need for language input, or provided language input to the library group, or requests library input to further the language work:

The following papers were reviewed and encouraged to come back with an update:

The following papers were reviewed and had no consensus for further work:

CWG asked for EWG feedback on:

The committee also tracks defects through various groups. EWG issues were tracked in [P1018r18], and will shortly move to GitHub. This week we reviewed EWG issues as follows:

EWG hosted an evening session on “the future of C++”. The results in a few weeks (once the committee discussed internally, based on the survey feedback that sent attendees). It was well attended with 100+ participants, and much frank discussion.

A session on [P2676r0] he Val object model was held, so that C++ committee members learn about the work David Abrahams is doing at Adobe on the Val language. We separately heard from Herb Sutter on CppFront. We also had good engagement from a few folks who have worked on the Carbon programming language. As this is the C++ committee, we also often talk about languages such as Rust, Circle, Zig and others.

References

Informative References

[CWG2463]
Daveed Vandevoorde. Trivial copyability and unions with non-trivial members. 20201130. open. URL: https://wg21.link/cwg2463
[P0609R1]
Aaron Ballman. Attributes for Structured Bindings. 14 September 2017. URL: https://wg21.link/p0609r1
[P0876R5]
Oliver Kowalke, Nat Goodspeed. fiber_context - fibers without scheduler. 19 January 2019. URL: https://wg21.link/p0876r5
[P0901R2]
Andrew Hunter, Chris Kennelly. Size feedback in operator new. 25 November 2018. URL: https://wg21.link/p0901r2
[P1000r4]
Herb Sutter. C++ IS schedule. 14 February 2020. URL: https://wg21.link/p1000r4
[P1018r18]
JF Bastien. C++ Language Evolution status - pandemic edition - 2022/08-2022/011. 2022-10-24. URL: https://wg21.link/p1018r18
[P1061R0]
Barry Revzin, Jonathan Wakely. Structured Bindings can introduce a Pack. 1 May 2018. URL: https://wg21.link/p1061r0
[P1967R0]
JeanHeyd Meneide. #embed - a simple, scannable preprocessor-based resource acquisition method. 25 November 2019. URL: https://wg21.link/p1967r0
[P2000r4]
Roger Orr, Howard Hinnant, Roger Orr, Bjarne Stroustrup, Daveed Vandevoorde, Michael Wong. Direction for ISO C++. 15 October 2022. URL: https://wg21.link/p2000r4
[P2014R0]
Lewis Baker, Gor Nishanov. Proposed resolution for US061/US062 - aligned allocation of coroutine frames. 13 January 2020. URL: https://wg21.link/p2014r0
[P2141R0]
Antony Polukhin. Aggregates are named tuples. 27 May 2020. URL: https://wg21.link/p2141r0
[P2169R0]
Corentin Jabot, Michael Park. A Nice Placeholder With No Name. 16 May 2020. URL: https://wg21.link/p2169r0
[P2174R0]
Zhihao Yuan. Compound Literals. 16 May 2020. URL: https://wg21.link/p2174r0
[P2188R0]
Anthony Williams. Zap the Zap: Pointers should just be bags of bits. 15 June 2020. URL: https://wg21.link/p2188r0
[P2211R0]
David Sankel, Sergei Murzin, Michael Park, Dan Sarginson. Exhaustiveness Checking for Pattern Matching. 16 November 2020. URL: https://wg21.link/p2211r0
[P2361R0]
Corentin Jabot. Unevaluated string literals. 14 April 2021. URL: https://wg21.link/p2361r0
[P2381R0]
Jarrad J. Waterloo. Pattern Matching with Exception Handling. 16 May 2021. URL: https://wg21.link/p2381r0
[P2392R2]
Herb Sutter. Pattern matching using is and as. 25 September 2022. URL: https://wg21.link/p2392r2
[P2546R0]
René Ferdinand Rivera Morell. Debugging Support. 15 February 2022. URL: https://wg21.link/p2546r0
[P2547R0]
Lewis Baker, Corentin Jabot, Gašper Ažman. Language support for customisable functions. 15 February 2022. URL: https://wg21.link/p2547r0
[P2558R0]
Steve Downey. Add @, $, and ` to the basic character set. 17 March 2022. URL: https://wg21.link/p2558r0
[P2561R1]
Barry Revzin. An error propagation operator. 11 October 2022. URL: https://wg21.link/p2561r1
[P2593R0]
Barry Revzin. Allowing static_assert(false). 21 May 2022. URL: https://wg21.link/p2593r0
[P2621R0]
Corentin Jabot. UB? In my Lexer?. 9 July 2022. URL: https://wg21.link/p2621r0
[P2632R0]
Corentin Jabot, Pablo Halpern, John Lakos, Alisdair Meredith, Joshua Berne, Gašper Ažman. A plan for better template meta programming facilities in C++26. 16 October 2022. URL: https://wg21.link/p2632r0
[P2641R0]
Barry Revzin. Checking if a union alternative is active. 17 September 2022. URL: https://wg21.link/p2641r0
[P2656R0]
René Ferdinand Rivera Morell, Ben Craig. C++ Ecosystem International Standard. 14 October 2022. URL: https://wg21.link/p2656r0
[P2669R0]
Bengt Gustafsson. Deprecate changing kind of names in class template specializations. 15 October 2022. URL: https://wg21.link/p2669r0
[P2671R0]
Barry Revzin. Syntax choices for generalized pack declaration and usage. 15 October 2022. URL: https://wg21.link/p2671r0
[P2676r0]
Dave Abrahams, Sean Parent, Dimitri Racordon, David Sankel. The Val Object Model. 16 October 2022. URL: https://wg21.link/p2676r0
[P2677R0]
Mike Spertus. Reconsidering concepts in-place syntax. 15 October 2022. URL: https://wg21.link/p2677r0
[P2686R0]
Corentin Jabot. Updated wording and implementation experience for P1481 (constexpr structured bindings). 15 October 2022. URL: https://wg21.link/p2686r0
[P2688R0]
Michael Park. Pattern Matching Discussion for Kona 2022. 16 October 2022. URL: https://wg21.link/p2688r0