Top/article/Preprocessor-warning-is-nonstandard
English | Japanese
English | Japanese

Menu

  • Top
  • Akihiko Yamaguchi 山口 明彦
  • Project プロジェクト
  • Text テキスト
  • Recent articles 最近の記事
  • Articles 記事一覧 (a to z)
  • Search 検索

Tags タグ †

  • [c++][bash][python][latex][php]
  • [linux][windows][mac][android]
  • [math][algorithm][idea][trick]
  • [liboctave][opencv][git][ros]
  • [setting][bug][general]
↑

Recent articles 最近の記事 †

2019-07-02
  • article/Display-Unix-Time
  • article/Synchronize-Linux-Time-to-Remote
2018-09-27
  • article/python-multimode-singleton
2018-09-02
  • article/rosinstall-git-default-remote
2017-07-28
  • article/SubMenu
2017-03-05
  • article/Import-a-different-version-of-OpenCV-in-Python
2015-08-17
  • article/DRC-finals-2015
2015-01-05
  • article/Upgrade-Android-to-Lollipop
2015-01-01
  • article/Kernel-panic-of-Linux-when-using-Xtion
  • article/Do-not-skip-freeing-data-when-using-tri-mesh-in-ODE
Access: 3/1815 - Admin
These search terms have been highlighted:[c++]

Preprocessor's #warning is nonstandard

プリプロセッサ #warning は非標準

[c++]
2008-10-06

ふと気になって,C++のプリプロセッサ・ディレクティブ (Preprocessing directives) を調べてみた.ソースは ISO/IEC 14882:1998 (E).gcc/g++ で何気なく使っていた #warning は標準じゃないことを知った. gcc/g++ で,

#warning warning message is displayed

とか書いておくと,コンパイル時に

preproc-dir.cpp:39:2: warning: #warning warning message is displayed

みたいな警告を出してくれる. #error ディレクティブだとエラー終了するが, #warning だと終了しないので,単純にメッセージを表示させたりするのに便利だ.

が,上記のように非標準だった. 試しに,

g++ -ansi -pedantic preproc-dir.cpp

のようにして,厳密に ansi 標準のコンパイルをするようにしたところ,

preproc-dir.cpp:39:2: warning: #warning is a GCC extension

という警告が出て, #warning は gcc/g++ の拡張だということが判明.

移植性を考えると,あまり使わない方がよさそうだ.

ちなみに C# にも #warning ディレクティブが定義されているようだ:C# プリプロセッサ ディレクティブ.




Last-modified:2014-12-30 (Tue) 19:33:31 (3836d)
Site admin: Akihiko Yamaguchi.
Written by: Akihiko Yamaguchi.
System: PukiWiki 1.5.0. PHP 5.2.17. HTML conversion time: 0.007 sec.