# C++23

C++23 és el nom informal de la propera versió de l'estàndard ISO / IEC 14882 per al llenguatge de programació C++ que seguirà C++20. L'esborrany final d'aquesta versió és N4950.
El febrer de 2020, a la reunió final de C++20 a Praga, es va adoptar un pla general per a C++23: les característiques previstes per a C++23 són suport de biblioteques per a coroutines, una biblioteca estàndard modular, executors i treball en xarxa.
La primera reunió del WG21 centrada en C++23 estava pensada per tenir lloc a Varna a principis de juny de 2020, però es va cancel·lar a causa de la pandèmia de COVID-19, igual que la reunió de novembre de 2020 a Nova York i la reunió de febrer de 2021 a Kona, Hawaii. Totes les reunions fins al novembre de 2022 van ser virtuals, mentre que la reunió de novembre de 2022 va ser híbrida.

## Noves característiques

En absència de reunions presencials del WG21 durant la pandèmia de COVID, es van afegir poques funcions noves a l'esborrany de C++23 a les primeres reunions d'estàndards. Els següents es van afegir després de la reunió virtual del GT21 del 9 de novembre de 2020, on van ser aprovats per enquestes de palla:
* Sufixos literals per std:: size_t i el tipus signat corresponent
* Una funció membre containsper std :: basic_stringi std :: basic_string_view, per comprovar si la cadena conté o no una subcadena o caràcter determinats
* Una biblioteca de stacktrace (< stacktrace >), basat en Boost. Stacktrace
* Un tret de tipus std :: is_scoped_enum
* La capçalera < stdatomic. h >, per a la interoperabilitat amb C atòmics
Després de la reunió virtual del GT21 del 22 de febrer de 2021, s'afegeixen les funcions següents on van ser aprovades per enquestes de palla:
* Eliminació de la llista de paràmetres buida innecessàriaa partir d'expressions lambda.
* S'estan reparant els adaptadors d'interval d'entrada i counted_iterator.
* Relaxeu els requisits de time_point :: clock.
* std :: visit per a les classes que es deriven de std :: variant.
* Panys amb pany.
* Intervals prestats condicionalment.
* std :: to_underlying.
Després de la reunió virtual plenaria dels estàndards ISO C++ de l'estiu de 2021 del juny de 2021, les enquestes de palla van aprovar noves característiques i informes de defectes:
* Consteval si (if consteval).
* Reducció de conversions contextuals a bool.
* Permet atributs duplicats.
* std :: span -based string-stream (< spanstream >).
* std :: out_ptr i std :: inout_ptr.
* constexpr per std :: optional, std :: variant, i std :: type_info :: operator ==.
* Els iteradors parelles constructors per a std :: stack(pila) i std :: queue(cua).
* Pocs canvis a la biblioteca d'intervals:
** Generalitzat starts_withi ends_withper a intervals arbitraris.
** S'ha canviat el nom split_viewa lazy_split_viewi nou split_view.
** Relaxant la restricció a join_view.
** S'està eliminant default_initializablerestricció des de view del concepte.
** Constructor d'interval per std :: basic_string_view.
* Prohibició de std :: basic_stringi std :: basic_string_viewconstrucció de nullptr.
* std :: invoke_r.
* Millores al std :: format.
* Afegint arguments per defecte per a std :: pairel constructor de reenviament.

## Referències

* ↑ «Working Draft, Standard for Programming Language C++» (en anglès), 10-05-2023.
* ↑ «N4951 Editors' Report: Programming Languages - C++» (en anglès), 10-05-2023. Arxivat de l'original el 2023-06-05.
* ↑ Dusíková, Hana. «N4817: 2020 Prague Meeting Invitation and Information» (en anglès), 06-11-2019. Arxivat de l'original el 2019-12-29. [Consulta: 13 febrer 2020].
* ↑ Voutilainen, Ville. «To boldly suggest an overall plan for C++23» (en anglès). www.open-std.org, 25-11-2019. Arxivat de l'original el 2019-12-24. [Consulta: 13 febrer 2020].
* ↑ «P2145R0: Evolving C++ Remotely» (en anglès). www.open-std.org.
* 1 2 Error: hi ha arxiuurl o arxiudata, però calen tots dos paràmetres.Sutter, Herb. «[Herb Sutter Business Plan and Convener's Report: ISO/IEC JTC1/SC22/WG21 (C++)]» (en anglès), 29-07-2020.
* 1 2 3 «Upcoming Meetings, Past Meetings : Standard C++» (en anglès). isocpp.org.
* ↑ Ranns, Nina. «WG21 2020-11 Virtual Meeting: Minutes of Meeting» (en anglès), 19-11-2020.
* ↑ Ranns, Nina. «WG21 2021-02 Virtual Meeting: Minutes of Meeting» (en anglès), 22-02-2021.
* ↑ Alex Christensen. «P1102R2: Down with!» (en anglès), 11-12-2020.
* ↑ Tim Song. «Repairing input range adaptors and counted_iterator» (en anglès), 12-01-2021.
* ↑ Alexey Dmitriev. «Relax Requirements for time_point::clock» (en anglès), 22-10-2020.
* ↑ Barry Revzin. «Inheriting from std::variant» (en anglès), 30-10-2020.
* ↑ Tim Song. «Locks lock lockables» (en anglès), 13-11-2020.
* ↑ Barry Revzin. «Conditionally borrowed ranges» (en anglès), 19-02-2020.
* ↑ JeanHeyd Meneide. «std::to_underlying for enumerations» (en anglès), 22-01-2021.
* ↑ Ranns, Nina. «WG21 2021-06 Virtual MeetingMinutes of Meeting» (en anglès), 07-06-2021.