C++26
estàndard del llenguatge de programació C++ From Wikipedia, the free encyclopedia
Remove ads
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.[1]
Remove ads
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. constexprconvertit des delvoid*.- Missatges
static_assertgenerats 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.
newcol·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
constexpri referències a variablesconstexpr. - 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,...)".[2] - Eliminació de comparacions de matrius obsoletes.
- Contractes[3] (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,preipost.[4] - Nous identificadors/especificadors de propietats de classe
trivially_relocatable_if_eligibleireplaceable_if_eligible.[5] - 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::bitsetambstd::string_view - Més
constexprper<cmath>i<complex> - Afegint els nous prefixos SI 2022 sobre les proporcions:
std::quecto,std::ronto,std::ronnaistd::quetta std::copyable_functionstd::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<meta>: 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
Remove ads
Referències
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads