Apoyo de compiladores para C++20 - cppreference.com
Espacios de nombres
Variantes

Apoyo de compiladores para C++20

De cppreference.com

Características principales del lenguaje C++20

Característica de C++20
 
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
Permitir captura de lambda [=, this] [https://wg21.link/P0409R2 [HTTPS://WG21.LINK/P0409R2
[1] P0409R2]]
8 6 19.22*

10.0.0*

5.1 2021.1 20.7
__VA_OPT__ [https://wg21.link/P0306R4 [HTTPS://WG21.LINK/P0306R4
[2]
P0306R4
[3]
[4] P1042R1]]
8 (parcial)*
10 (parcial)*
9 19.25*

11.0.3*

5.1 2021.1 20.7
Inicializadores designados [https://wg21.link/P0329R4 [HTTPS://WG21.LINK/P0329R4
[5] P0329R4]]
4.7 (parcial)*
8
3.0 (parcial)*
10
19.21* (parcial)* 5.1 2021.1 20.7
Lista de parámetros de plantilla para lambdas genéricas [https://wg21.link/P0428R2 [HTTPS://WG21.LINK/P0428R2
[6] P0428R2]]
8 9 19.22*

11.0.0*

5.1 2021.1 20.7
Inicializadores de miembros por defecto para campos de bits [https://wg21.link/P0683R1 [HTTPS://WG21.LINK/P0683R1
[7] P0683R1]]
8 6 19.25*

10.0.0*

5.1 2021.1 20.7
Constructores con inicialización de lista en la deducción de argumentos de plantillas de clase [https://wg21.link/P0702R1 [HTTPS://WG21.LINK/P0702R1
[8] P0702R1]]
8 6 19.14* 5.0 2021.1 20.7
Punteros a miembros calificados const& [https://wg21.link/P0704R1 [HTTPS://WG21.LINK/P0704R1
[9] P0704R1]]
8 6 19.0 (2015)*

10.0.0*

5.1 2021.1 20.7
Conceptos [https://wg21.link/P0734R0 [HTTPS://WG21.LINK/P0734R0
[10] P0734R0]]
6
(sólo TS)
10
10 19.23* (parcial)*

12.0.0* (parcial)

6.1 2021.5 20.11
Lambdas en contextos no evaluados [https://wg21.link/P0315R4 [HTTPS://WG21.LINK/P0315R4
[11] P0315R4]]
9 13 (parcial)*
14 (parcial)*
19.28 (16.8)*
Operador de comparación de tres vías [https://wg21.link/P0515R3 [HTTPS://WG21.LINK/P0515R3
[12] P0515R3]]
10 8 (parcial)
10
19.20* 5.1 2021.1 20.7
ID: Simplificar captura de lambda implícita [https://wg21.link/P0588R1 [HTTPS://WG21.LINK/P0588R1
[13] P0588R1]]
8 19.24* 5.1 2021.1 20.7
Instrucciones de inicialización para bucle for basado en rango}} [https://wg21.link/P0614R1 [HTTPS://WG21.LINK/P0614R1
[14] P0614R1]]
9 8 19.25*

11.0.0*

6.0 20.11
Lambdas sin estado construibles y asignables por defecto [https://wg21.link/P0624R2 [HTTPS://WG21.LINK/P0624R2
[15] P0624R2]]
9 8 19.22*

10.0.1*

5.1 2021.1 20.7
Coincidencia errónea const con constructor de copia por defecto (= default) [https://wg21.link/P0641R2 [HTTPS://WG21.LINK/P0641R2
[16] P0641R2]]
9 8 19.0 (2015)*

10.0.1*

5.1 2021.1 20.7
Verificación de acceso en especializaciones [https://wg21.link/P0692R1 [HTTPS://WG21.LINK/P0692R1
[17] P0692R1]]
8 (parcial) 19.26*

10.0.1* (parcial)

5.1 2021.1 20.7
Búsqueda dependiente de argumento (ADL) y plantillas de función que no son visibles [https://wg21.link/P0846R0 [HTTPS://WG21.LINK/P0846R0
[18] P0846R0]]
9 9 19.21*

11.0.3*

5.1 2021.1 20.7
ID: Especificar cuándo las definiciones de funciones constexpr son necesarias para la evaluación constante [https://wg21.link/P0859R0 [HTTPS://WG21.LINK/P0859R0
[19] P0859R0]]
5.2 (parcial)*
9
8 19.27* (parcial)*
19.31*
Atributos [[likely]] y [[unlikely]] [https://wg21.link/P0479R5 [HTTPS://WG21.LINK/P0479R5
[20] P0479R5]]
9 12 19.26*

13.0.0*

5.1 20.7
Hacer typename más opcional [https://wg21.link/P0634R3 [HTTPS://WG21.LINK/P0634R3
[21] P0634R3]]
9 19.29 (16.10)* 5.1 20.7
Expansión de paquete en captura de inicialización (init-capture) de lambda [https://wg21.link/P0780R2 [HTTPS://WG21.LINK/P0780R2
[22] P0780R2]]
9 9 19.22*

11.0.3*

6.1 20.11
Atributo [[no_unique_address]] [https://wg21.link/P0840R2 [HTTPS://WG21.LINK/P0840R2
[23] P0840R2]]
9 9 19.28 (16.9)**

11.0.3*

5.1 2021.1 20.7
Funciones miembro especiales condicionalmente triviales [https://wg21.link/P0848R3 [HTTPS://WG21.LINK/P0848R3
[24] P0848R3]]
10 19.28 (16.8)* 6.1 20.11
ID: Relajar las reglas para encontrar un punto de personalización para vínculos estructurados [https://wg21.link/P0961R1 [HTTPS://WG21.LINK/P0961R1
[25] P0961R1]]
8 8 19.21*

10.0.1*

5.1 2021.1 20.7
ID: Relajar las reglas para encontrar un punto de personalización para el bucle for basado en rango [https://wg21.link/P0962R1 [HTTPS://WG21.LINK/P0962R1
[26] P0962R1]]
8 8 19.25* 5.1 2021.1 20.7
ID: Permitir vínculos estructurados para miembros accesibles [https://wg21.link/P0969R0 [HTTPS://WG21.LINK/P0969R0
[27] P0969R0]]
8 8 19.21*

10.0.1*

5.1 2021.1 20.7
Destruir el operador delete [https://wg21.link/P0722R3 [HTTPS://WG21.LINK/P0722R3
[28] P0722R3]]
9 6 19.27*

10.0.0*

6.1 20.11
Tipos clase en parámetros de plantilla de no tipo [https://wg21.link/P0732R2 [HTTPS://WG21.LINK/P0732R2
[29] P0732R2]]
9 12 (parcial) 19.26*(parcial)*
19.28 (16.9)*
6.2
Poner en desuso la captura implícita de this mediante [=] [https://wg21.link/P0806R2 [HTTPS://WG21.LINK/P0806R2
[30] P0806R2]]
9 7 19.22* 5.1 20.7
explicit(bool) [https://wg21.link/P0892R2 [HTTPS://WG21.LINK/P0892R2
[31] P0892R2]]
9 9 19.24*

11.0.3*

5.1 2021.1 20.7
Integrar macros de prueba de característica [https://wg21.link/P0941R2 [HTTPS://WG21.LINK/P0941R2
[32] P0941R2]]
5 3.4 19.15* (parcial)
19.20*
5.0 2021.1 20.7
Prohibir agregados con constructores declarados por el usuario [https://wg21.link/P1008R1 [HTTPS://WG21.LINK/P1008R1
[33] P1008R1]]
9 8 19.20*

10.0.1*

5.1 2021.1 20.7
Función virtual constexpr [https://wg21.link/P1064R0 [HTTPS://WG21.LINK/P1064R0
[34] P1064R0]]
9 9 19.28 (16.9)*

11.0.3*

5.1 2021.1 20.7
Mejoras de consistencia para comparaciones [https://wg21.link/P1120R0 [HTTPS://WG21.LINK/P1120R0
[35] P1120R0]]
10 8 (parcial)
10
19.22*

10.0.1* (parcial)

5.1 20.7
char8_t [https://wg21.link/P0482R6 [HTTPS://WG21.LINK/P0482R6
[36] P0482R6]]
9 7* 19.22*

10.0.0*

5.1 2021.1 20.7
std::is_constant_evaluated() [https://wg21.link/P0595R2 [HTTPS://WG21.LINK/P0595R2
[37] P0595R2]]
9 9 19.25*

11.0.3*

5.1 19.1
Bloques try-catch constexpr [https://wg21.link/P1002R1 [HTTPS://WG21.LINK/P1002R1
[38] P1002R1]]
9 8 19.25*

10.0.1*

5.1 20.7
Funciones inmediatas (consteval) [https://wg21.link/P1073R3 [HTTPS://WG21.LINK/P1073R3
[39] P1073R3]]
10 (parcial)*
11
11 (parcial)
14 (parcial)*
19.28 (16.8)**
(parcial)
19.29 (16.10)*
5.1 2021.1 20.7
Espacios de nombres en línea anidados [https://wg21.link/P1094R2 [HTTPS://WG21.LINK/P1094R2
[40] P1094R2]]
9 8 19.27*

10.0.1*

5.1 2021.1 20.7
Aún otro enfoque para declaraciones restringidas [https://wg21.link/P1141R2 [HTTPS://WG21.LINK/P1141R2
[41] P1141R2]]
10 10 19.26* (parcial)
19.28 (16.9)*
6.1 20.11
Enteros con signo son complemento a dos [https://wg21.link/P1236R1 [HTTPS://WG21.LINK/P1236R1
[42] P1236R1]]
9 9

11.0.3*

N/A N/A yes
dynamic_cast constexpr typeid polimórfico en expresiones constantes [https://wg21.link/P1327R1 [HTTPS://WG21.LINK/P1327R1
[43] P1327R1]]
10 9 19.28 (16.9)*

11.0.3*

5.1 2021.1 20.7
Cambiar el miembro activo de una unión dentro de constexpr [https://wg21.link/P1330R0 [HTTPS://WG21.LINK/P1330R0
[44] P1330R0]]
9 9 19.10*

11.0.3*

5.1 2021.1 20.7
Corrutinas [https://wg21.link/P0912R5 [HTTPS://WG21.LINK/P0912R5
[45] P0912R5]]
10 8 (parcial) 19.0 (2015)* (parcial)
19.10* (sólo TS)
19.28 (16.8)*

10.0.1* (parcial)

5.1 2021.1
Inicialización de agregados usando paréntesis [https://wg21.link/P0960R3 [HTTPS://WG21.LINK/P0960R3
[46] P0960R3]]
10 19.28 (16.8)* 5.1 2021.1 20.7
ID: Deducción de tamaños de arrays en expresiones new [https://wg21.link/P1009R2 [HTTPS://WG21.LINK/P1009R2
[47] P1009R2]]
11 9 19.27*

11.0.3*

5.1 2021.1 20.7
Módulos [https://wg21.link/P1103R3 [HTTPS://WG21.LINK/P1103R3
[48] P1103R3]]
11 (parcial) 8 (parcial) 19.0 (2015)* (parcial)
19.10* (sólo TS)
19.28 (16.8)*

10.0.1* (parcial)

Requerimientos de Unicode más firmes [https://wg21.link/P1041R4 [HTTPS://WG21.LINK/P1041R4
[49]
P1041R4
[50]
[51] P1139R2]]
10 19.0 (2015)* (P1041R4)
19.26* (P1139R2)
N/A
<=> != == [https://wg21.link/P1185R2 [HTTPS://WG21.LINK/P1185R2
[52] P1185R2]]
10 10 19.22* 5.1 2021.1 20.7
ID: Funciones explícitamente marcadas como =default con diferentes especificaciones de excepción [https://wg21.link/P1286R2 [HTTPS://WG21.LINK/P1286R2
[53] P1286R2]]
10 9 19.28 (16.8)*

11.0.3*

5.1 2021.1 20.7
Captura de lambdas y especificadores de clase de almacenamiento de vínculos estructurados [https://wg21.link/P1091R3 [HTTPS://WG21.LINK/P1091R3
[54]
P1091R3
[55]
[56] P1381R1]]
10 8 (parcial) 19.11*(P1381R1)
19.24*(P1091R3)

10.0.1* (parcial)

5.1 2021.1 20.7
Permitir conversiones a arrays de límite desconocido [https://wg21.link/P0388R4 [HTTPS://WG21.LINK/P0388R4
[57] P0388R4]]
10 14 19.27* 6.0 2021.5 20.11
Operaciones de contenedores constexpr [https://wg21.link/P0784R7 [HTTPS://WG21.LINK/P0784R7
[58] P0784R7]]
10 10 19.28 (16.9)* 6.0 2021.5 20.11
Poner en desuso algunos usos de volatile [https://wg21.link/P1152R4 [HTTPS://WG21.LINK/P1152R4
[59] P1152R4]]
10 10 19.27* 6.0 2021.5 20.11
constinit [https://wg21.link/P1143R2 [HTTPS://WG21.LINK/P1143R2
[60] P1143R2]]
10 10 19.29 (16.10)* 6.1 20.11
Poner en desuso el operador coma en índices/subíndices [https://wg21.link/P1161R3 [HTTPS://WG21.LINK/P1161R3
[61] P1161R3]]
10 9 19.25*

11.0.3*

6.0 2021.5 20.11
Atributo [[nodiscard]] con mensaje [https://wg21.link/P1301R4 [HTTPS://WG21.LINK/P1301R4
[62] P1301R4]]
10 9 19.25*

11.0.3*

6.0 2021.5 20.11
Inicialización trivial por defecto en funciones constexpr [https://wg21.link/P1331R2 [HTTPS://WG21.LINK/P1331R2
[63] P1331R2]]
10 10 19.27* 6.1 20.11
Declaración asm no evaluada en funciones constexpr [https://wg21.link/P1668R1 [HTTPS://WG21.LINK/P1668R1
[64] P1668R1]]
10 10 19.28 (16.9)* 6.1 20.11
using enum [https://wg21.link/P1099R5 [HTTPS://WG21.LINK/P1099R5
[65] P1099R5]]
11 13 19.24* 6.3
Sintetizar la comparación de tres vías para una categoría de comparación especificada [https://wg21.link/P1186R3 [HTTPS://WG21.LINK/P1186R3
[66] P1186R3]]
11 10 19.24* 6.0 2021.5 20.11
ID: Atributo [[nodiscard]] para constructores [https://wg21.link/P1771R1 [HTTPS://WG21.LINK/P1771R1
[67] P1771R1]]
10 9 19.24*

11.0.3*

6.0 2021.5 20.11
Deducción de argumentos de plantillas de clase para alias de plantilla [https://wg21.link/P1814R0 [HTTPS://WG21.LINK/P1814R0
[68] P1814R0]]
10 19.27*
Deducción de argumentos de plantillas de clase para agregados [https://wg21.link/P1816R0 [HTTPS://WG21.LINK/P1816R0
[69]
P1816R0
[70]
[71] P2082R1]]
10(P1816R0)
11(P2082R1)
19.27*
ID: Movimiento implícito para objetos más locales y referencias r-valor [https://wg21.link/P1825R0 [HTTPS://WG21.LINK/P1825R0
[72] P1825R0]]
11* 13 19.24* 6.0 2021.5 20.11
Permitir hacer comparaciones por defecto por valor [https://wg21.link/P1946R0 [HTTPS://WG21.LINK/P1946R0
[73] P1946R0]]
10 10 19.25* 6.1 20.11
Eliminar std::weak_equality y std::strong_equality [https://wg21.link/P1959R0 [HTTPS://WG21.LINK/P1959R0
[74] P1959R0]]
10 10 19.25* 6.1 20.11
Inconsistencias con parámetros de plantilla sin tipo [https://wg21.link/P1907R1 [HTTPS://WG21.LINK/P1907R1
[75] P1907R1]]
10 (parcial)
11
12 (parcial) 19.26* 6.2
ID: Pseudodestructores terminan los tiempos de vida de los objetos [https://wg21.link/P0593R6 [HTTPS://WG21.LINK/P0593R6
[76] P0593R6]]
11 11 N/A N/A
ID: Convertir de T* a bool debe considerarse de estrechamiento [https://wg21.link/P1957R2 [HTTPS://WG21.LINK/P1957R2
[77] P1957R2]]
10*
11*
11 19.27* 6.1
Característica de C++20
 
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++20

Acrónimos

  • TS - Especificación técnica (del inglés Technical Specification).
  • DR - Informe de Defecto.