Директивы диагностики
Отображает заданное сообщение об ошибке и делает программу некорректной, или отображает заданное сообщение об ошибке без влияния на корректность программы(с C++23).
Синтаксис
#error diagnostic-message | (1) | |
#warning diagnostic-message | (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:2023):
- 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 Директива ошибки [cpp.error]
- Стандарт C++98 (ISO/IEC 14882:1998):
- 16.5 Директива ошибки [cpp.error]
См. также
| Документация C для Директивы диагностики |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/preprocessor/error