Директивы диагностики
Материал из cppreference.com
< cpp | preprocessor
Показывает данное сообщение об ошибке и делает программу некорректной или отображает заданное предупреждающее сообщение, не влияющее на правильность программы(начиная с C++23).
Содержание |
[править]Синтаксис
#error диагностическое-сообщение | (1) | ||||||||
#warning диагностическое-сообщение | (2) | (начиная с C++23) | |||||||
[править]Объяснение
1) После обнаружения директивы #error реализация отображает сообщение диагностическое-сообщение и делает программу некорректной (компиляция останавливается).
2) То же, что и (1), за исключением того, что корректность программы не затрагивается и компиляция продолжается.
диагностическое-сообщение может состоять из нескольких слов, не обязательно в кавычках.
[править]Примечание
До стандартизации в C++23 #warning предоставлялось многими компиляторами во всех режимах в качестве соответствующего расширения.
[править]Пример
Запустить этот код
#if __STDC_HOSTED__ != 1# error "Не размещённая реализация"#endif #if __cplusplus >= 202302L# warning "Используйте #warning в качестве стандартной функции"#endif #include <iostream>int main(){std::cout<<"Используемая реализация размещена\n";}
Возможный вывод:
Используемая реализация размещена
[править]Ссылки
- C++23 стандарт (ISO/IEC 14882:2023):
- 15.8 Директива error [cpp.error]
- C++20 стандарт (ISO/IEC 14882:2020):
- 15.8 Директива error [cpp.error]
- C++17 стандарт (ISO/IEC 14882:2017):
- 19.5 Директива error [cpp.error]
- C++14 стандарт (ISO/IEC 14882:2014):
- 16.5 Директива error [cpp.error]
- C++11 стандарт (ISO/IEC 14882:2011):
- 16.5 Директива error [cpp.error]
- C++03 стандарт (ISO/IEC 14882:2003):
- 16.5 Директива error [cpp.error]
- C++98 стандарт (ISO/IEC 14882:1998):
- 16.5 Директива error [cpp.error]
[править]Смотрите также
Документация C по Директивы диагностики |