C compiler support
From cppreference.net
<
c
|
|
Esta página se mantiene con el mejor esfuerzo y puede estar desactualizada respecto a las versiones más recientes del compilador. Si observa que algo está desactualizado, ¡ayúdenos actualizándolo! |
Contenidos |
Características de C23
Tenga en cuenta que esta lista puede cambiar, a medida que evoluciona el borrador del estándar C23/2x.
Características principales del lenguaje C23
|
Esta sección está incompleta
Motivo: estado para Apple Clang y otros compiladores que admiten C2x |
|
Característica de C23
|
Documento(s)
|
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| static_assert sin mensaje | N2265 | 9 | 9 | Sí | Sí | 6.5 | 2021.1.2 (clang based) | ||||
[[
nodiscard
]]
|
N2267 | 10 | 9 | Sí | 6.4 | 2021.1.2 (clang based) | |||||
[[
maybe_unused
]]
|
N2270 | 10 | 9 | Sí | 6.4 | 2021.1.2 (clang based) | |||||
[[
deprecated
]]
|
N2334 | 10 | 9 | Sí | 6.4 | 2021.1.2 (clang based) | |||||
| Atributos |
N2335
N2554 |
10 | 9 | Sí | 6.4 | 2021.1.2 (clang based) | |||||
| Tipos de coma flotante decimal IEEE 754 | N2341 |
4.2
(parcial)*
12 |
13.0 (parcial)* | ||||||||
[[
fallthrough
]]
|
N2408 | 10 | 9 | Sí | 6.4 | 2021.1.2 (basado en clang) | |||||
u8
constantes de carácter
|
N2418 | 10 | 15 | 6.5 | 2022.2 | ||||||
| Eliminación de function definitions sin prototipo | N2432 | 10 | 15 | 2022.2 | |||||||
[[
nodiscard
]]
con mensaje
|
N2448 | 11 | 10 | Sí | 6.4 | 2021.1.2 (clang based) | |||||
| Parámetros sin nombre en definiciones de función | N2480 | 11 | 11 | Sí | 6.4 | 2021.1.2 (clang based) | |||||
| Etiquetas antes de declaraciones y final de bloques | N2508 | 11 | 16 | Parcial* | 6.5 | 17.0 * | |||||
| Constantes enteras binarias | N2549 |
4.3
*
11 |
2.9
*
9 |
19.0 (2015)* * | Sí | 6.5 | 11.0 * | ||||
| __has_c_attribute en condicionales del preprocesador | N2553 | 11 | 9 | Sí | 6.5 | 2021.1.2 (clang based) | |||||
| Permitir atributos duplicados | N2557 | 11 | 13 | Sí | 6.5 | 2021.4 (basado en clang | |||||
| Tipos de intercambio y extendidos IEEE 754 | N2601 |
7
(parcial)*
14 |
6 (parcial)* | Parcial* | |||||||
| Separadores de dígitos | N2626 | 12 | 13 | 19.0 (2015)* * | Sí | 6.5 | 18.0 * | ||||
#elifdef
y
#elifndef
|
N2645 | 12 | 13 | 19.40* | 13.1.6* | 6.5 | 2021.4 | ||||
Cambio de tipo de
u8
literales de cadena
|
N2653 | 13 | |||||||||
[[
maybe_unused
]]
para etiquetas
|
N2662 | 11 | 16 | 6.5 | 2022.2 | ||||||
| #warning | N2686 | Sí | Sí | Sí | 6.5 | Sí | |||||
| Tipos enteros de precisión de bits ( _BitInt ) | N2763 | 14 (parcial)* | 15 | 6.5 | 2022.2 | ||||||
[[
noreturn
]]
|
N2764 | 13 | 15 | 6.5 | 2022.2 | ||||||
| Sufijos para constantes enteras de precisión de bits | N2775 | 14 | 15 | 2022.2 | |||||||
| __has_include en condicionales del preprocesador | N2799 | 5 | Sí | 19.11* | Sí | 6.5 | 18.0 | ||||
| Sintaxis de Identificadores usando el Anexo 31 del Estándar Unicode | N2836 | 13 | 15 | 6.5 | 2022.2 | ||||||
| Eliminación de declaraciones de función sin prototipo | N2841 | 13 | 15 | 2022.2 | |||||||
| Inicializadores vacíos | N2900 |
Parcial*
13 |
Parcial* | Parcial* | Parcial* | Parcial* | |||||
| typeof y typeof_unqual |
N2927
N2930 |
Parcial*
13 |
Parcial*
16 |
19.39* | Parcial* | Parcial* | Parcial* | Parcial* | |||
| Nueva ortografía de palabras clave | N2934 | 13 | 16 | 6.5 | |||||||
| Predefinidos true y false | N2935 | 13 | 15 | 2022.2 | |||||||
[[
unsequenced
]]
y
[[
reproducible
]]
|
N2956 | 15 | |||||||||
| Relajar requisitos para lista de parámetros variádicos | N2975 | 13 | 16 | 6.5 | 2023.1 | ||||||
| Inferencia de tipos en definiciones de objetos | N3007 | 13 | 18 | ||||||||
| #embed | N3017 | 15 | 19 | ||||||||
| constexpr objetos | N3018 | 13 | 19 | ||||||||
| Enumeraciones Normales Mejoradas | N3029 | 13 | 20 * | ||||||||
| Enumeraciones con tipos subyacentes fijos | N3030 | 13 | 20 * | ||||||||
__VA_OPT__
|
N3033 |
8
13 |
12 | 19.39* | 6.5 | ||||||
| Especificadores de clase de almacenamiento para literales compuestos | N3038 | 13 | |||||||||
| nullptr | N3042 | 13 | 16 | ||||||||
|
Característica de C23 |
Documento(s) |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
Características de la biblioteca C23
|
Esta sección está incompleta
Motivo: una lista diferente para las bibliotecas estándar de C |
Características de C99
Características principales del lenguaje C99
|
Esta sección está incompleta
Razón: necesita enumerar compiladores de C, verificación |
|
Característica de C99
|
Documento(s)
|
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|
| Nombres de caracteres universales en identificadores | 3.1 | Sí | Sí | ||||||||
| Límites de traducción incrementados translation limits | N590 | 0.9 | N/A | ||||||||
| // comentarios | N644 | 2.7 | Sí | Sí | |||||||
| restrict punteros | N448 | 2.95 | Sí | parcial * | |||||||
| Tipos aritméticos mejorados |
N815
N601 N620 N638 N657 N694 N809 |
Sí | parcial | Quizás | |||||||
| Miembros de array flexibles | 3.0 | Sí | Sí | ||||||||
| Arreglo de longitud variable (VLA) tipos | N683 | 0.9 | Sí | ||||||||
| Tipos modificables variables (VM) | N2778 | N/A | Sí | ||||||||
| Inicializadores designados | N494 | 3.0 | Sí | Sí | |||||||
| Inicializadores no constantes | 1.21 | N/A | |||||||||
| Calificadores cvr idempotentes | N505 | 3.0 | N/A | ||||||||
| Coma final en enumerator-list | 0.9 | Sí | Sí | ||||||||
| Hexadecimal constantes de punto flotante | N308 | 2.8 | Sí | Sí | |||||||
| Literales compuestos | N716 | 3.1 | Sí | Sí | |||||||
| Entorno de punto flotante | parcial | parcial | |||||||||
| Requiriendo truncamiento para divisiones de tipos enteros con signo | N617 | 0.9 | N/A | ||||||||
Retorno implícito
return
0
;
en la
main()
función
|
Sí | Sí | Sí | ||||||||
| Declaraciones y sentencias en orden mixto | N740 | 3.0 | Sí | Sí | |||||||
| init-statement en bucles for | Sí | Sí | Sí | ||||||||
| inline funciones | N741 | 4.3 | Sí | Sí | |||||||
| Variable predefinida __func__ | N611 | 2.95 | Sí | Sí | |||||||
| Calificadores cv y static en [ ] dentro de declaraciones de función | 3.1 | Sí | |||||||||
| Macros variádicos | N707 | 2.95 | Sí | Sí | |||||||
| _Pragma operador de preprocesador | N634 | 3.0 | Sí | parcial * | |||||||
| Pragmas estándar para evaluación de punto flotante |
N631
N696 |
No | No | ||||||||
|
Característica de C99 |
Documento(s) |
GCC
|
Clang
|
MSVC
|
Apple Clang
|
EDG eccp
|
Intel C++
|
Nvidia HPC C++ (ex PGI)*
|
Nvidia nvcc
|
Cray
|
Véase también
|
Documentación de C++
para
soporte del compilador
|