Espacios de nombres
Variantes

Apoyo de compiladores para C++23

De cppreference.com

Características principales del lenguaje C++23

Característica de C++23
 
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
El tipo del literal para size_t (con signo)  (FTM)* P0330R8 11 13 19.43*

13.1.6*

6.5 2022.2 23.9
Hacer () más opcional para lambdas P1102R2 11 13 19.44*

13.1.6*

6.3 2022.2 22.5
if consteval  (FTM)* P1938R3 12 14 19.44*

14.0.0*

6.3 2022.2 24.1
Eliminar apoyo para recolección de basura P2186R2 12 N/A 19.30* N/A N/A
Conversiones contextuales estrechantes en static_assert y constexpr if P1401R5 9 13 (partial)*
14
19.44*

14.0.0*

2022.2 20.7
Recorte de espacios en blanco antes del empalme de línea P2223R2 19.50* 6.7 2022.2
Hacer obligatoria la distribución del orden de declaración P1847R4 19.30* 2022.2
Eliminar el modo mezclado de la concatenación de literales de cadena P2201R1 19.44*
Funciones miembro de objeto explícito (deducción de this)  (FTM)* P0847R7 14 18
19*
19.32*
(partial)*
19.43*
6.3 22.5
auto(x) y auto{x}  (FTM)* P0849R8 12 15 19.50*

14.0.3*

6.4 2022.2 23.3
#elifdef y #elifndef P2334R1 12 13 19.40*

13.1.6*

6.5 2022.2 23.9
Variables no literales (así como etiquetas y sentencias goto) en funciones constexpr  (FTM)* P2242R3 12 15 19.43*

14.0.3*

6.3 2022.2 22.5
Codificación consistente de literales de carácter P2316R2 19.30* 2022.2
Juegos de caracteres y codificaciones P2314R4 10 19.51* 2022.2
Extender la instrucción de inicialización para permitir la declaración de alias en el bucle for P2360R0 12 14 19.50*

14.0.0*

2022.2
Operador de subíndice multidimensional  (FTM)* P2128R6 12 15 19.42*

14.0.3*

2022.2
Atributos en lambdas P2173R1 9 13 19.44*

13.1.6*

6.6 2022.2 22.5
#warning P2437R1 Yes* 19.50*

15.0.0*

6.5 2023.2
Eliminar literales de caracteres anchos no codificables y literales de caracteres anchos de múltiples caracteres P2362R3 13 14 19.51*

15.0.0*

6.7 2023.2
Etiquetas al final de las sentencias compuestas P2324R2 13 16 19.51*

16.0.0*

6.5 2023.2 23.9
Secuencias de escape delimitadas P2290R3 13 15 19.50*

15.0.0*

6.7 2023.2
Secuencias de escape universales denominadas  (FTM)* P2071R2 13 15 19.51*

15.0.0*

6.7 2023.2
Relajar algunas restricciones de constexpr  (FTM)* P2448R2 13 17 (partial)
19
19.51* 2024.0 (partial)
Movimiento implícito más simple  (FTM)* P2266R3 13 13 19.50* 6.7 2022.2
static operator()  (FTM)* P1169R4 13 16 19.44*

16.0.0*

6.7 2023.2
Requisitos para los tipos de punto flotante extendidos opcionales P1467R9 13 N/A 6.4
Deducción de argumentos de plantilla de clase a partir de constructores heredados P2582R1 14 19.51*
Attribute [[assume]] P1774R8 13 19 19.51*
Apoyo para UTF-8 como codificación de archivo fuente portátil P2295R6 13* 15* 19.0 (Update 2)**

15.0.0*

2023.2
static operator[]  (FTM)* P2589R1 13 16 19.44*

16.0.0*

6.7 2023.2
Permitir variables static constexpr en funciones constexpr  (FTM)* P2647R1 13 16 19.51*

16.0.0*

2023.2
Extender la vida útil de los temporales en el inicializador del bucle basado en rangos  (FTM)* P2644R1
P2718R0
CWG2659
15 19 19.51*
DR11: Cambiar el ámbito del tipo de retorno posterior de las expresiones lambda P2036R3
P2579R0
16 17 19.50* 2023.2
DR20: Exportaciones significativas P2615R1 15 17 (partial) 19.28 (16.8)*
DR20: consteval debe propagarse hacia arriba.  (FTM)* P2564R3 14 17 19.52*

16.0.0*

6.7 2024.0
DR98: Sintaxis de identificadores de C++ según el Anexo 31 del estándar Unicode P1949R7 12 14 19.50*

14.0.0*

6.4 2022.2
DR11: Permitir atributos duplicados P2156R1 11 13 19.50*

13.1.6*

6.5 23.9
DR20: Ajustar el valor de la macro de prueba de característica __cpp_concepts P2493R0 12 19.50* 6.4 23.3
DR98: Relajar los requisitos sobre wchar_t para que coincidan con las prácticas existentes P2460R2 19.44*

15.0.0*

N/A 2023.2
DR11: Usar punteros y referencias desconocidos en expresiones constantes P2280R4 14 20* 19.50*
DR20: El operador de igualdad que estás buscando P2468R2 13 16 19.36*

16.0.0*

2023.2
DR20: Compatibilidad y portabilidad de char8_t  (FTM)* P2513R4 13 16 19.34*

16.0.0*

2023.2
DR98/11: Aclarar la notificación de directivas de diagnóstico y permitir static_assert de expresiones no dependientes de valor en un contexto de plantilla CWG2518 13 17 16.0*
(parcial)*
19.40*
Característica de C++23
 
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

Características de la biblioteca de C++23

Característica de C++23
 
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
Biblioteca de seguimiento de pila. P0881R7 P2301R1 12 (parcial)*
14*
19.34*
<stdatomic.h>. P0943R6 12 15 19.31*

14.0.3*

std::is_scoped_enum. P1048R1 11 12 19.30*

13.0.0*

std::basic_string::contains(), std::basic_string_view::contains(). P1679R3 11 12 19.30*

13.0.0*

std::to_underlying. P1682R3 11 13 19.30*

13.1.6*

Relajación de los requisitos para std::chrono::time_point. P2212R2 N/A N/A N/A N/A
Proporcionar comentarios sobre el tamaño en la interfaz de asignador. P0401R6 16 15 19.30*

14.0.3*

<spanstream>: string-stream con búfer basado en std::span. P0448R4 12 19.31*
std::out_ptr(), std::inout_ptr(). P1132R8 14 19 19.30*
constexpr type_info::operator==(). P1328R1 12 17 19.33**
19.34*

15.0.0*

Constructores de par de iteradores para std::stack y std::queue. P1425R4 12 14 19.31*

14.0.3*

Contexto de no deducción para los asignadores en las guías de deducción de contenedores. P1518R2 12* 13* 19.31**

13.1.6**

ranges::starts_with() y ranges::ends_with(). P1659R3 16 17 (parcial)*
18
19.31*

16.0.0*

Prohibir la construcción de std::basic_string y std::basic_string_view desde nullptr. P2166R1 12 13 19.30*

13.1.6*

std::invoke_r(). P2136R3 12 17 19.31*

15.0.0*

Constructor de rangos para std::basic_string_view. P1989R2 11 14 19.30*

14.0.3*

Argumentos de plantilla por defecto para el constructor de reenvío de std::pair. P1951R1 14 14 19.30*

14.0.3*

Eliminar la recolección de basura y la detección de fugas basada en la accesibilidad (apoyo de la biblioteca). P2186R2 12 14 19.30*

14.0.3*

zip: views::zip, views::zip_transform, views::adjacent, y views::adjacent_transform. P2321R2 13 15 (parcial)*
22
19.33*(parcial)***
19.37*

14.0.3*

Sobrecargas de borrado heterogéneo para contenedores asociativos. P2077R3 16 19.32*
std::byteswap(). P1272R4 12 14 19.31*

14.0.3*

Impresión de volatile T*. P1147R1 11.3 14 19.31*

14.0.3*

basic_string::resize_and_overwrite(). P1072R10 12 14 19.31*

14.0.3*

Operaciones monádicas para std::optional. P0798R8 12 14 19.32*

14.0.3*

std::move_only_function. P0288R9 12 19.32*
Agregar una especificación noexcept condicional a std::exchange. P2401R0 12 14 19.31*

14.0.3*

Requerir que std::span y std::basic_string_view sean TriviallyCopyable. P2251R1 19.31*
Aclarar el estado de los “encabezados de C”. P2340R1
<expected>. P0323R12 P2549R1 12 16 19.33*

15.0.0*

constexpr para <cmath> y <cstdlib>. P0533R9 4.6 (parcial)*
std::unreachable(). P0627R6 12 15 19.32*

14.0.3*

Desaconsejar el uso de std::aligned_storage y std::aligned_union. P1413R3 13 16 19.33*
std::reference_constructs_from_temporary y std::reference_converts_from_temporary. P2255R2 13 (parcial)*
14
21 (parcial)* 19.51*
constexpr std::unique_ptr. P2273R3 12 16 19.33*

15.0.0*

Construcción de contenedores y cadenas a partir de rangos con ranges::to(), constructores etiquetados, funciones miembro insert y assign P1206R7 14 (parcial)*
15
17 19.34*

15.0.0*

Apoyo de tuberías para adaptadores de rango definidos por el usuario (ranges::range_adaptor_closure, std::bind_back). P2387R3 13 (parcial)*
14
19 19.34*
ranges::iota(), ranges::shift_left(), y ranges::shift_right(). P2440R1 13 (parcial)*
16
23 19.34*
views::join_with P2441R2 13 21 19.34*
views::chunk y views::slide. P2442R1 13 19.33*
views::chunk_by. P2443R1 13 18 19.33*

16.0.0*

std::mdspan: una referencia a un array multidimensional sin propiedad. P0009R18 P2599R2 P2604R0 P2613R1 P2763R1 16 17 (parcial)*
18
19.39*

15.0.0*

<flat_map>. P0429R9 15 20 19.51*
<flat_set>. P1222R4 15 21 19.51*
ranges::find_last(), ranges::find_last_if(), y ranges::find_last_if_not(). P1223R5 13 19 19.36*
Biblioteca independiente: <utility>, <ranges>, y <iterator> sencillos. P1642R11 13* 19.38*
views::stride. P1899R3 13 23 19.34*
Compatibilidad entre std::tuple y objetos similares a tuplas. P2165R4 14 2.9 (parcial)* 19.36* (parcial)*
19.37*
parcial*
Corrección de iteradores constantes, centinelas y rangos. views::as_const. P2278R4 13 19.35* (parcial)*
19.36*
Formato a rangos. P2286R8 15 16 19.37*(parcial)*
19.39*(parcial)*
19.41*(parcial)*
19.42*

15.0.0*

Mejorar el formato por defecto de formato de contenedores. P2585R1 15 16 (parcial)*
17
19.42*

15.0.0*

Biblioteca de salida formateada <print>. P2093R14 P2539R4 14 17 (parcial)*
18
19.37*

15.0.0**
16.0.0*

Formato para std::thread::id y std::stacktrace P2693R1 14 17 (parcial)* 19.38*

15.0.0*

constexpr para sobrecargas integrales de std::to_chars() y std::from_chars(). P2291R3 13 16 19.34*

15.0.0*

ranges::contains() y ranges::contains_subrange(). P2302R4 13 19 19.34*

16.0.0**

Algoritmos de pliegue para rangos. P2322R6 13 23
18 (parcial)*
19.35*
views::cartesian_product. P2374R4 P2540R1 13 19.37*
Añadir apoyo para tipos de solo movimiento a los conceptos de comparación (equality_comparable, totally_ordered, three_way_comparable). P2404R3 16 22 19.36*
Iteradores de rangos como entradas para algoritmos que no operan con rangos. P2408R5 16 19.34*
constexpr std::bitset. P2417R2 13 16 19.34*

15.0.0*

basic_string::substr() &&. P2438R2 16 16 19.34*

15.0.0*

views::as_rvalue. P2446R2 13 16 19.34*

15.0.0*

Módulos de la biblioteca estándar. P2465R3 15* 17 (parcial)* 19.35*
(parcial)*
19.36*
std::forward_like(). P2445R1 14 16 19.34*

15.0.0*

Compatibilidad con el modo exclusivo para std::fstream. P2467R1 12 18 19.36*

16.0.0*

views::repeat. P2474R2 13 17 19.36*

15.0.0*

Relajamiento de los adaptadores de rango para permitir tipos de solo movimiento. P2494R2 14 17 19.34*

15.0.0*

El constructor de rango de std::basic_string_view debería ser explicit. P2499R0 12.2 16 19.34*

15.0.0*

std::generator: generador de corrutinas síncronas para rangos. P2502R2 P2787R0 14 19.43*
Agregar una especificación noexcept condicional a std::apply. P2517R1 10 18 19.34*

16.0.0*

Gestión explícita del tiempo de vida (std::start_lifetime_as). P2590R2 P2679R2 16 19.51*
Aclarar el manejo de codificaciones en el formateo de configuración regional de tipos chrono. P2419R2 15* 19.34**
std::move_iterator no debería ser siempre un input_iterator. P2520R0 12.3* 17* 19.34**

15.0.0*

Actualización de guías de deducción para operadores de llamada con parámetro de objeto explícito parámetro de objeto explícito. LWG3617 14 19.34*
Actualización de guías de deducción para static operator(). P1169R4 13 16 19.39*

15.0.0*

Nombres estándar y apoyo de biblioteca para tipos de punto flotante extendidos. P1467R9 13 19.37**
Operaciones monádicas para std::expected. P2505R5 13 17 19.36*

15.0.0*

views::enumerate. P2164R9 13 23 19.37*
std::is_implicit_lifetime. P2674R1 16 20 19.51*
std::common_reference_t de std::reference_wrapper debería ser un tipo referencia. P2655R3 16 21* 19.37*
Prohibir la especialización de usuario de std::allocator_traits P2652R2 19 19.37*
Desaconsejar el uso de std::numeric_limits::has_denorm. P2614R2 17 18 19.37*

16.0.0*

Hacer los constructores de múltiples parámetros de views explicit. P2711R1 16 21
17 (parcial)*
19.36**

15.0.0*

DR20: Relajamiento de rangos solo un poquito. P2609R3 15 20 19.37*
DR20: Almacenamiento de iteradores para un aplanamiento adecuado. P2770R0 14 21
18 (parcial)
19.37*
DR17: std::visit() para clases derivadas de std::variant. P2162R2 11.3 13 19.20**
19.30*

13.1.6*

DR20: Rangos prestados condicionalmente. P2017R1 11 16 19.30*
DR20: Reparar adaptadores de rango de entrada y std::counted_iterator. P2259R1 12 19.30*(parcial)*
19.31*
DR20: views::join debería unir todas las vistas de rangos. P2328R1 11.2 15 19.30*

14.0.3*

DR20: view no requiere default_initializable. P2325R3 11.3 16 19.30*

15.0.0*

DR20: Los objetos adaptadores de rango vinculan argumentos por valor. P2281R1 11 14 19.29 (16.10)*
(parcial)*
19.31*

14.0.3*

DR20: constexpr para std::optional y std::variant. P2231R1 11.3 (parcial)*
12
13 (parcial)*
19
19.31*

13.1.6* (parcial)

DR20: views::lazy_split y se rediseñó views::split. P2210R2 12 16 19.31*

15.0.0*

DR20: Fix ranges::istream_view P2432R1 12 16 19.31*

15.0.0*

DR20: view con propiedad. P2415R2 12 14 19.31*

14.0.3*

DR20: Arreglar el manejo de configuraciones regionales en los formateadores de chrono. P2372R3 P2418R2 13 19.31*
DR20: Limpieza de tipos de clase enteros. P2393R1 19.32*
DR20: Comprobaciones de cadenas de formato en tiempo de compilación; reducción del tamaño binario de la familia std::format(). P2216R3 13 14 (parcial)*
15
19.32*

14.0.3*

DR20: Añadir apoyo para tipos const no formateables a std::format. P2418R2 13 15 19.32*

14.0.3*

DR20: std::basic_format_string. P2508R1 13 15 19.35*

14.0.3*

DR20: Las pastillas venenosas son demasiado tóxicas. P2602R2 14 19 19.36*
DR20: Tolerancia de caracteres de relleno de std::format. P2572R1 14 17 19.37*
DR20: Mejora de la estimación de ancho de std::format. P2675R1 14 17 19.38*
DR20: Garantías de finalización de fase de std::barrier P2588R3 19.28 (16.8)**
19.36*
Característica de C++23
 
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
Morty Proxy This is a proxified and sanitized view of the page, visit original site.