诊断指令
来自 cppreference.cn
显示给定的错误消息并使程序格式错误,或者显示给定的警告消息而不影响程序的有效性(C++23 起)。
目录 |
[编辑] 语法
#error 诊断消息 |
(1) | ||||||||
#warning 诊断消息 |
(2) | (C++23 起) | |||||||
[编辑] 解释
1) 在遇到 #error 指令后,实现会显示消息 诊断消息 并使程序格式错误(编译停止)。
2) 与 (1) 相同,只是程序有效性不受影响且编译继续。
诊断消息 可以由多个词组成,不一定在引号内。
[编辑] 注意
在 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 错误指令 [cpp.error]
- C++98 标准 (ISO/IEC 14882:1998)
- 16.5 错误指令 [cpp.error]
[编辑] 另请参阅
C 文档,关于 诊断指令
|