Espacios de nombres
Variantes
Acciones

C++26

De cppreference.com
< cpp

La próxima generación del estándar de C++.

Véase: El calendario actual para el estándar internacional de C++26 (2024-05-14).

Contenido

[editar] Nuevas características del lenguaje

[editar] Nuevas características de la biblioteca

[editar] Nuevos módulos

[editar] Nuevos archivos de encabezado

Archivos de encabezado para compatibilidad con C:

[editar] Informes de defectos

[editar] Apoyo de compiladores

Artículo principal: Apoyo de compiladores para C++26

[editar] Características principales del lenguaje C++26

Característica de C++26
 
Ponencia(s)
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XLC++
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Portland Group (PGI)
Nvidia nvcc
DR98: Eliminar el comportamiento no definido del análisis léxico. P2621R3 3.3
DR98: Hacer que los literales de cadena no codificables estén mal formados. P1854R4 14 14
Cadenas no evaluadas P2361R6 14 17 (parcial)*
18
Añadir @, $, y ` al juego de caracteres básico. P2558R2 15
Conversión constexpr a partir de void*. P2738R1 14 17
DR20: Sobre la ignorancia de los atributos estándar. P2552R3
DR11: Almacenamiento estático para inicializadores con llaves. P2752R3 14
Mensajes static_assert generados por usuario. P2741R3 14 17
Variables de marcador de posición sin nombre. P2169R4 14 18
Indexación de paquetes. P2662R3 15 19
Eliminación de la conversión aritmética obsoleta en las enumeraciones. P2864R2 14 18
DR11/20: Inicialización de parámetros de plantilla. P2308R1 18
No permitir vincular una referencia devuelta a un temporal P2748R5 14 19
Atributos para vínculos estructurados. P0609R3 15 19
Comportamiento erróneo para lecturas no inicializadas. P2795R5
= delete("razón"); P2573R2 15 19
Amigos (friend) variádicos. P2893R3 15 20
DR98: Aclaración de las reglas para la elisión de llaves en la inicialización de agregados. P3106R1 17
DR20: No permitir que las declaraciones de módulos sean macros. P3034R1 15
DR11: Los bucles infinitos triviales no son un comportamiento no definido. P2809R3 14 19
constexpr new de ubicación. P2747R2 15 20
Declaración de vinculación estructurada como condición. P0963R3 15 6 (parcial)*
Ordenación de constraints que involucran expresiones de pliegue. P2963R3 19
Eliminar un puntero a un tipo incompleto debe estar mal formado. P3144R2 15 19
Los vínculos estructurados pueden introducir un paquete. P1061R10
Vínculos estructurados constexpr y referencias a variables constexpr. P2686R5
Excepciones constexpr P3068R6
Coma variádica de Oxford. P3176R1 15 20
Eliminación de comparaciones obsoletas de arrays. P2865R5
Característica de C++26
 
Ponencia(s)
 
GCC
Clang
MSVC
Apple Clang
EDG eccp
Intel C++
IBM XLC++
Sun/Oracle C++
Embarcadero C++ Builder
Cray
Portland Group (PGI)
Nvidia nvcc

[editar] Características de la biblioteca de C++26

Característica de C++26
 
Ponencia(s)
 
GCC libstdc++
Clang libc++
MSVC
Biblioteca Estándar
Apple Clang
Sun/Oracle C++
Biblioteca Estándar
Embarcadero C++ Builder
Biblioteca Estándar
Cray C++
Biblioteca Estándar
Prueba de éxito o fracaso de las funciones <charconv>. P2497R0 14 18
std::text_encoding: identificación de codificaciones de texto. P1885R12
P2862R1
14
Las sobrecargas aritméticas de std::to_string y std::to_wstring usan std::format. P2587R3 14
Comprobación de tipos de argumentos de formato. P2757R3 15
Formato de punteros. P2510R3 14* 17* 19.40**
Compatibilidad con hashing para clases valor de std::chrono. P2592R3
Lectura-copia-actualización P2545R4
Punteros riesgo (hazard) P2530R3
std::projected anti-ADL (búsqueda dependiente de argumento). P2538R1 14* 18* 19.38**
Ordenamiento constexpr estable. P2562R1
visit para miembros. P2637R3 15 18 (parcial)*
19
std::is_within_lifetime P2641R4
Ampliación de contenedores asociativos con las sobrecargas heterogéneas restantes. P2363R5
Habilitación del uso de std::weak_ptr como claves en contenedores asociativos no ordenados. P1901R2
Identificadores nativos en flujos de archivos. P1759R6 14 18
Interfaz de secuencias de cadenas con std::string_view. {{{reference}}} 19
Interfaz de std::bitset con std::string_view. P2697R1 18
Más constexpr para <cmath> y <complex> P1383R2 4.6 (parcial)*
Adición de los nuevos prefijos SI 2022 en las proporciones: std::quecto, std::ronto, std::ronna, and std::quetta P2734R0 14 17
std::function_ref: referencia invocable de tipo borrado. P0792R14
std::copyable_function P2548R6
std::bind_front, std::bind_back, y std::not_fn a parámetros de plantilla de no tipo invocables P2714R1
std::submdspan() P2630R4
P3355R1
Lenguaje independiente: ::operator new opcional P2013R5 N/A
Saturación aritmética P0543R3 14 18
<debugging>: Apoyo de depuración P2546R5
P2810R3
<linalg>: Una interfaz de álgebra lineal de funciones libres basada en BLAS P1673R13
P3050R2
P3222R0
Cómo hacer que la macro assert() sea fácil de usar P2264R7
Cadenas de formato en tiempo de ejecución P2918R2 14 18
std::span sobre una lista de inicializadores P2447R6 18
std::span::at() P2821R5 14 18
Se agregó el protocolo de tupla a std::complex P2819R2 19
Una nueva especificación para std::generate_canonical P0952R2 19.42*
Eliminación del tipo definido obsoleto std::allocator::is_always_equal P2868R3 18
Eliminar la sobrecarga de la función std::basic_string::reserve() que no acepta argumentos P2870R3 18
Eliminación de facetas de conversión Unicode obsoletas (<codecvt>) P2871R3 18
Implementación independiente: eliminación de std::strtok P2937R0 14 19.40*
Biblioteca independiente: clases parciales P2407R5 14 19.42*
Biblioteca independiente: inout, expected, span, P2833R2 14 19.42*
DR23: std::basic_const_iterator debe seguir la convertibilidad de su tipo subyacente P2836R1
P2950R0
14 19.40*
DR20: std::make_format_args ahora acepta solo referencias a l-valor en lugar de referencias de reenvío P2905R2 14 18 19.40*
DR20: Corregir el formato de las unidades de código como números enteros P2909R4 13.3 18 19.40*
views::concat P2542R8 15
Concatenación de strings y string views P2591R5 15 19
Habilitar la inicialización de lista para los algoritmos P2248R8
P3217R0
15
std::ranges::generate_random P1068R11
Comparaciones para std::reference_wrapper P2944R3 14 19 (parcial)*
Padded mdspan layouts P2642R6
Nueva deducción de argumentos para plantillas de clase (CTAD) para std::span y std::mdspan con constantes integrales. P3029R1 19
Máximo y mínimo atómico P0493R5
std::formatter<std::filesystem::path> P2845R8
Impresión de líneas en blanco con std::println() P3142R0 14* 19* 19.41**
Volver a poner std::polymorphic_allocator::destroy en uso P2875R4 15 19.41*
Eliminación de flujos de cadena (strstreams) obsoletos P2867R2 19
Eliminación de las API de acceso atómico de std::shared_ptr obsoletas P2869R4
Eliminación de std::wstring_convert P2872R3 19
DR23: Permitir una implementación eficiente de std::print P3107R5
P3235R3
19.43*
Biblioteca de ejecución P2300R10
P3396R0
std::inplace_vector: Vector dinámicamente redimensionable con capacidad fija P0843R14
std::philox_engine: motor de números aleatorios basado en contador P2075R6
Apoyo de rangos para std::optional P3168R2
std::is_virtual_base_of: Rasgo de tipo para detectar clases base virtuales P2985R0 15 20
std::dims para std::mdspan P2389R2 19
DR11: Especificación formal del tipo de std::ignore P2968R2 15 19 19.42*
DR20: Eliminar el requisito de referencia común de los conceptos indirectamente invocables P2997R1 15 19 19.42*
Obsolescencia de std::is_trivial y std::is_trivial_v P3247R2
DR20: Algoritmos objeto función P3136R1 19.39*
views::cache_latest P3138R5
Restricción de los operadores de igualdad de std::expected P3379R1 15
std::aligned_accessor P2897R7
std::atomic_ref::address() P2835R7
DR11/20: Tipos calificados const volatile en std::atomic y std::atomic_ref P3323R1
constexpr std::atomic y std::atomic_ref P3309R3
constexpr para algoritmos de memoria especializados P3508R0
P3369R0
Se agregaron nuevos encabezados de biblioteca de C23 P3370R1
std::simd: tipos dato paralelos P1928R15
Un servicio para crear entornos de ejecución P3325R5
constexpr para tipos excepción, p. ej., std::bad_alloc, std::bad_cast etc. P3068R6
Característica de C++26
 
Ponencia(s)
 
GCC libstdc++
Clang libc++
MSVC
Biblioteca Estándar
Apple Clang
Sun/Oracle C++
Biblioteca Estándar
Embarcadero C++ Builder
Biblioteca Estándar
Cray C++
Biblioteca Estándar

* - planea sobre el número de versión para ver las notas