C++26 és el nom informal de la versió de l'estàndard 14882 de l'Organització Internacional per a l'Estandardització (ISO) i de la Comissió Electrotècnica Internacional (IEC) per al llenguatge de programació C++ que segueix a C++23. L'esborrany de treball actual d'aquesta versió és N5008.
Característiques Els canvis que s'han acceptat a C++26 inclouen:
Llenguatge Reflexió en temps de compilació. Cadenes no avaluades. Afegint @, $ i ` al conjunt de caràcters bàsic. constexpr convertit des del void*. Missatges static_assert generats per l'usuari. Variables de marcador de posició sense nom. Indexació de paquets. Atributs per a enllaços estructurats. Comportament erroni per a lectures no inicialitzades. = delete("reason"); Amics variats. new col·locació constexpr. Declaració d'enllaç estructurat com a condició. Ordenació de restriccions que impliquen expressions de plegament. Suprimir un punter a un tipus incomplet hauria d'estar mal format. Les fixacions estructurades poden introduir un paquet. Permetent la generació d'excepcions en l'avaluació constant. Enllaços estructurats constexpr i referències a variables constexpr. Coma variadica d'Oxford, és a dir, "S'obliden els paràmetres suspensius sense una coma precedent. La sintaxi (int...) és incompatible amb C, perjudicial per a C++ i fàcilment substituïble per (int,...) ". Eliminació de comparacions de matrius obsoletes. Contractes (cap compilador encara no els dona suport, ni paraules clau per a ells) afegint la paraula clau contract_assert, i a més hi ha identificadors amb significats especials, pre i post. Nous identificadors/especificadors de propietats de classe trivially_relocatable_if_eligible i replaceable_if_eligible. Afegeix la directiva #embed (introduïda per primera vegada a C23) per a la inclusió de recursos binaris i __has_embed, que permet comprovar la disponibilitat d'un recurs mitjançant directives de preprocessador.
Biblioteca Suport de resum per a les classes de valor std::chrono std::is_within_lifetime Identificadors natius en fluxos de fitxers Interfície de fluxos de cadenes amb std::string_view Interfície std::bitset amb std::string_view Més constexpr per <cmath> i <complex> Afegint els nous prefixos SI 2022 sobre les proporcions: std::quecto, std::ronto, std::ronna i std::quetta std::copyable_function std::submdspan() <contracts> : Suport de disseny per contracte <debugging> : Suport de depuració i funcions d'idioma per ajudar els programes depuradors <hazard_pointer> : Punters de perill per a fils <hive> : Suport per a l'estructura de dades Hive que reutilitza la memòria dels elements esborrats. <inplace_vector> : Suport per a l'estructura de dades vectorials in situ, que és una matriu contigua in situ, de capacitat fixa i redimensionable. <linalg> : Una interfície d'àlgebra lineal de funcions lliures basada en el BLAS : Suport de reflexió en temps de compilació <rcu> : Suport per al mecanisme de lectura-còpia-actualització de recuperació segura <simd> : Suport per a l'accés paral·lel a dades (instrucció única, dades múltiples o SIMD) <text_encoding> : Suport per accedir al registre de conjunts de caràcters de l'IANA Suport per a anotacions que s'utilitzaran en la reflexió, que es comporten de manera diferent del sistema d'atributs existent utilitzat pel compilador. S'ha afegit el protocol de tupla a std::complex views::concat Concatenació de cadenes i vistes de cadenes std::ranges::generate_random Imprimir línies en blanc amb std::println() std::formatter<std::filesystem::path> Aritmètica de saturació amb, entre d'altres, std::add_sat, std::div_sat
Referències
Categoria:C++