cpp/preprocessor/error — различия между версиями
Материал из cppreference.com
< cpp | preprocessor
Olya (обсуждение | вклад) |
Olya (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | {{title| | + | {{title|}} |
{{cpp/preprocessor/navbar}} | {{cpp/preprocessor/navbar}} | ||
− | |||
− | = | + | = |
+ | |||
{{sdsc begin}} | {{sdsc begin}} | ||
− | {{sdsc | {{ttb|#error}} {{spar| | + | {{sdsc | {{ttb|#error}} {{spar| |
+ | }} }} | ||
{{sdsc end}} | {{sdsc end}} | ||
===Объяснение=== | ===Объяснение=== | ||
+ | |||
− | + | {{|}}, и компиляция . | |
− | + | может состоять из нескольких слов, в кавычках | |
+ | |||
+ | |||
+ | . | ||
===Пример=== | ===Пример=== | ||
Строка 20: | Строка 25: | ||
#if __STDC_HOSTED__ != 1 | #if __STDC_HOSTED__ != 1 | ||
# error "Не размещённая реализация" | # error "Не размещённая реализация" | ||
+ | |||
+ | |||
+ | |||
+ | |||
#endif | #endif | ||
Строка 33: | Строка 42: | ||
===Ссылки=== | ===Ссылки=== | ||
− | + | ||
− | {{ref std c++ | + | |
+ | |||
+ | |||
+ | |||
+ | |||
+ | {{ref std c++}} | ||
{{ref std | section=16.5 | title=Директива error | id=cpp.error}} | {{ref std | section=16.5 | title=Директива error | id=cpp.error}} | ||
{{ref std end}} | {{ref std end}} | ||
Строка 40: | Строка 54: | ||
{{ref std | section=16.5 | title=Директива error | id=cpp.error}} | {{ref std | section=16.5 | title=Директива error | id=cpp.error}} | ||
{{ref std end}} | {{ref std end}} | ||
− | {{ref std c++ | + | {{ref std c++}} |
{{ref std | section=16.5 | title=Директива error | id=cpp.error}} | {{ref std | section=16.5 | title=Директива error | id=cpp.error}} | ||
{{ref std end}} | {{ref std end}} | ||
− | {{ref std c++ | + | {{ref std c++}} |
− | {{ref std | section= | + | {{ref std | section=.5 | title=Директива error | id=cpp.error}} |
− | + | ||
− | + | ||
− | + | ||
{{ref std end}} | {{ref std end}} | ||
===Смотрите также=== | ===Смотрите также=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc see c | c/preprocessor/error | | + | {{dsc see c | c/preprocessor/error | | nomono=true}} |
{{dsc end}} | {{dsc end}} | ||
{{langlinks|ar|cs|de|en|es|fr|it|ja|pl|pt|zh}} | {{langlinks|ar|cs|de|en|es|fr|it|ja|pl|pt|zh}} |
Версия 02:18, 18 июля 2022
Показывает данное сообщение об ошибке и делает программу некорректной или отображает заданное предупреждающее сообщение, не влияющее на правильность программы (начиная с 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 << "Используемая реализация размещена"; }
Возможный вывод:
Используемая реализация размещена
Ссылки
- 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 по Директивы диагностики
|