診断ディレクティブ
From cppreference.com
指定されたエラーメッセージを表示し、プログラムを不正な形式にします、またはプログラムの有効性に影響を与えることなく、指定された警告メッセージを表示します(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 standard (ISO/IEC 14882:2020)
- 15.8 エラーディレクティブ [cpp.error]
- C++17 standard (ISO/IEC 14882:2017)
- 19.5 エラーディレクティブ [cpp.error]
- C++14 standard (ISO/IEC 14882:2014)
- 16.5 エラーディレクティブ [cpp.error]
- C++11 standard (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ドキュメント 診断ディレクティブ
|