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. constexpr
convertit des delvoid*
.- 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 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 dóna suport, ni paraules clau per a ells) afegint la paraula clau
contract_assert
, i a més hi ha identificadors amb significats especials,pre
ipost
.[4] - Nous identificadors/especificadors de propietats de classe
trivially_relocatable_if_eligible
ireplaceable_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::bitset
ambstd::string_view
- Més
constexpr
per<cmath>
i<complex>
- Afegint els nous prefixos SI 2022 sobre les proporcions:
std::quecto
,std::ronto
,std::ronna
istd::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<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