Apoyo de compiladores para C++26
De cppreference.com
< cpp | compiler support
* - planea sobre el número de versión para ver las notas
[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 | Sí | 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 | Sí | |||||||||||
Conversión constexpr a partir de void*. | P2738R1 | 14 | 17 | |||||||||||
DR20: Sobre la ignorancia de los atributos estándar. | P2552R3 | Sí | ||||||||||||
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 | Sí | 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 | |||||||||||
constexprnew 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 | |||||||||||||
Excepcionesconstexpr | 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 (strstream s) 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 | Sí | Sí | 19.39* | Sí | ||||
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 | ||||||||
constexprstd::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 |