Diagnostic directives
From cppreference.net
<
cpp
|
preprocessor
Muestra el mensaje de error dado y hace que el programa sea incorrecto , o muestra el mensaje de advertencia dado sin afectar la validez del programa (desde C++23) .
Contenidos |
Sintaxis
#error
mensaje-de-diagnóstico
|
(1) | ||||||||
#warning
mensaje-de-diagnóstico
|
(2) | (desde C++23) | |||||||
Explicación
1)
Después de encontrar la directiva
#error
, una implementación muestra el mensaje
diagnostic-message
y hace que el programa sea incorrecto (la compilación se detiene).
2)
Igual que
(1)
, excepto que la validez del programa no se ve afectada y la compilación continúa.
diagnostic-message puede consistir en varias palabras no necesariamente entre comillas.
Notas
Antes de su estandarización en C++23, #warning ha sido proporcionado por muchos compiladores en todos los modos como una extensión conforme.
Ejemplo
Ejecutar este código
#if __STDC_HOSTED__ != 1 # error "Not a hosted implementation" #endif #if __cplusplus >= 202302L # warning "Using #warning as a standard feature" #endif #include <iostream> int main() { std::cout << "The implementation used is hosted\n"; }
Salida posible:
The implementation used is hosted
Referencias
- Estándar C++23 (ISO/IEC 14882:2024):
-
- 15.8 Directiva de error [cpp.error]
- Estándar C++20 (ISO/IEC 14882:2020):
-
- 15.8 Directiva de error [cpp.error]
- Estándar C++17 (ISO/IEC 14882:2017):
-
- 19.5 Directiva de error [cpp.error]
- Estándar C++14 (ISO/IEC 14882:2014):
-
- 16.5 Directiva de error [cpp.error]
- Estándar C++11 (ISO/IEC 14882:2011):
-
- 16.5 Directiva de error [cpp.error]
- Estándar C++03 (ISO/IEC 14882:2003):
-
- 16.5 Directiva de error [cpp.error]
- Estándar C++98 (ISO/IEC 14882:1998):
-
- 16.5 Directiva de error [cpp.error]
Véase también
|
Documentación de C
para
Directivas de diagnóstico
|