Diagnostic directives
From cppreference.net
<
cpp
|
preprocessor
Zeigt die gegebene Fehlermeldung an und macht das Programm ill-formed , oder zeigt die gegebene Warnmeldung an, ohne die Gültigkeit des Programms zu beeinflussen (since C++23) .
Inhaltsverzeichnis |
Syntax
#error
Diagnose-Nachricht
|
(1) | ||||||||
#warning
Diagnose-Nachricht
|
(2) | (seit C++23) | |||||||
Erklärung
1)
Nach dem Auftreten der
#error
-Direktive gibt eine Implementierung die Meldung
diagnostic-message
aus und macht das Programm fehlerhaft (die Kompilierung wird abgebrochen).
2)
Gleich wie
(1)
, außer dass die Gültigkeit des Programms nicht beeinträchtigt wird und die Kompilierung fortgesetzt wird.
diagnostic-message kann aus mehreren Wörtern bestehen, die nicht unbedingt in Anführungszeichen stehen müssen.
Hinweise
Vor seiner Standardisierung in C++23, #warning wurde von vielen Compilern in allen Modi als konforme Erweiterung bereitgestellt.
Beispiel
Diesen Code ausführen
#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"; }
Mögliche Ausgabe:
The implementation used is hosted
Referenzen
- C++23-Standard (ISO/IEC 14882:2024):
-
- 15.8 Fehlerdirektive [cpp.error]
- C++20 Standard (ISO/IEC 14882:2020):
-
- 15.8 Fehlerdirektive [cpp.error]
- C++17-Standard (ISO/IEC 14882:2017):
-
- 19.5 Fehlerdirektive [cpp.error]
- C++14-Standard (ISO/IEC 14882:2014):
-
- 16.5 Fehlerdirektive [cpp.error]
- C++11-Standard (ISO/IEC 14882:2011):
-
- 16.5 Fehlerdirektive [cpp.error]
- C++03 Standard (ISO/IEC 14882:2003):
-
- 16.5 Fehlerdirektive [cpp.error]
- C++98 Standard (ISO/IEC 14882:1998):
-
- 16.5 Fehlerdirektive [cpp.error]
Siehe auch
|
C-Dokumentation
für
Diagnose-Direktiven
|