__cplusplus

読み:アンダースコア・アンダースコア・スィープラスプラス
外語:__cplusplus 英語
品詞:名詞

CC++を区別する際によく用いられるプリプロセッサーマクロ。

目次

多くのC++処理系は、C++翻訳単位(translation unit)の翻訳中に__cplusplusを定義する。CとC++の両方でコンパイルできるソースを書く場合、このマクロの有無を見ることで、CとC++で仕様の違う部分を切り分けることができる。

古いC++の実装ではc_plusplusを使うものもあったが、現在ではc_plusplusは使われていない。

ISO/IEC 14882(ISO C++)では、その値は199711Lとされている。

但し、Visual C++GCCclang/LLVMはじめ、多くの実装では1で定義されている。

NULLの定義で、Cなら(void *)0、C++なら0で定義する例。

#ifndef NULL

#ifdef __cplusplus

#define NULL 0

#else

#define NULL ((void *)0)

#endif

#endif

C++の場合、型チェックが厳しくなったためにこのような事をせざるを得なくなり、実質的に型チェックは劣化した。

用語の所属
C++
関連する用語
__STDC__

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club