Diagnostic directives
From cppreference.net
<
cpp
|
preprocessor
Показывает заданное сообщение об ошибке и делает программу некорректной , или показывает заданное предупреждение без влияния на валидность программы (начиная с C++23) .
Содержание |
Синтаксис
#error
диагностическое-сообщение
|
(1) | ||||||||
#warning
диагностическое-сообщение
|
(2) | (начиная с C++23) | |||||||
Объяснение
1)
После встречи директивы
#error
реализация выводит сообщение
diagnostic-message
и делает программу некорректной (компиляция прекращается).
2)
То же, что и
(1)
, за исключением того, что корректность программы не нарушается и компиляция продолжается.
diagnostic-message может состоять из нескольких слов, не обязательно в кавычках.
Примечания
До стандартизации в C++23, #warning предоставлялся многими компиляторами во всех режимах как соответствующее расширение.
Пример
Запустить этот код
#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"; }
Возможный вывод:
The implementation used is hosted
Ссылки
- Стандарт C++23 (ISO/IEC 14882:2024):
-
- 15.8 Директива ошибки [cpp.error]
- Стандарт C++20 (ISO/IEC 14882:2020):
-
- 15.8 Директива ошибки [cpp.error]
- Стандарт C++17 (ISO/IEC 14882:2017):
-
- 19.5 Директива ошибки [cpp.error]
- Стандарт C++14 (ISO/IEC 14882:2014):
-
- 16.5 Директива ошибки [cpp.error]
- Стандарт C++11 (ISO/IEC 14882:2011):
-
- 16.5 Директива ошибки [cpp.error]
- Стандарт C++03 (ISO/IEC 14882:2003):
-
- 16.5 Директива error [cpp.error]
- Стандарт C++98 (ISO/IEC 14882:1998):
-
- 16.5 Директива ошибки [cpp.error]
Смотрите также
|
Документация по C
для
Директив диагностики
|