C++言語の定義済みマクロ__cplusplusについてメモ。 C++ソースコードとしてコンパイルされるときのみ定義され、C/C++言語共用ライブラリヘッダ等でよく利用される。 // C/C++共用ヘッダファイル #ifdef __cplusplus extern "C" { #endif // ここでの宣言はC言語の場合はそのまま処理され、 // C++言語の場合は"C"リンケージ指定として処理される。 #ifdef __cplusplus } #endif C++言語仕様での定義 __cplusplusマクロの値は、準拠するC++規格バージョンによって異なる。C++98/03とC++11(N3337) 16.8/p1よりそれぞれ該当箇所を引用。(太字は強調) The following macro names shall be defined by the implementation