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]

Dades ràpides Tipus, Epònim ...
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 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,...) ".[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 i post.[4]
  • Nous identificadors/especificadors de propietats de classe trivially_relocatable_if_eligible i replaceable_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 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
  • <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

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads