名稱空間
變體
操作

診斷指令

來自 cppreference.com
 
 
C++ 語言
 
 

顯示給定的錯誤訊息並使程式格式錯誤,或者顯示給定的警告訊息而不影響程式的有效性(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 文件,關於 診斷指令