ホームに戻る
出典 :
定義済みマクロ | Microsoft Learn 事前定義識別子__func__ - cpprefjp C++日本語リファレンス
関連 :
プリプロセッサディレクティブ 言語バージョンの確認 C99 C++11
目次 :

C/C++標準の定義済みマクロ

標準C/C++に準拠するコンパイラでは、以下のマクロが定義されている。
マクロ 解説 具体的な値・書式 備考
__STDC__ Cとしてコンパイルされるか 整数 1 Cとしてコンパイルされる
(/Za オプション指定時)
(定義なし) 上記以外
__STDC_VERSION__ コンパイラがサポートする
Cのバージョン
整数 201112L C11準拠
199901L C99準拠
199409L C95準拠
(定義なし) C95より前、
または標準Cに準拠しない
__cplusplus コンパイラがサポートする
C++のバージョン
整数 202002L C++20準拠
201703L C++17準拠
201402L C++14準拠
201103L C++11準拠
199711L C++98準拠
1 標準C++より前
__DATE__ コンパイル時の日付 文字列 "Mmm dd yyyy" 形式
(Mmmは月名の省略形)
__TIME__ コンパイル時の時刻 文字列 "hh: mm: ss" 形式
__FILE__ 現在のソースファイル名 文字列 #line ディレクティブで変更可能
__LINE__ 現在の行番号 整数 #line ディレクティブで変更可能
__func__ 現在実行中の関数名 文字列 C99以降、C++11以降でのみ使用可能
関数外で使用するとエラーとなる
__STDCPP_THREADS__ プログラムが
複数のスレッドを持つことができるか
整数 1 C++としてコンパイルされ、
かつ複数のスレッドを持つことができる
(定義なし) 上記以外
__STDC_HOSTED__
__STDC_NO_ATOMICS__
__STDC_NO_COMPLEX__
__STDC_NO_THREADS__
__STDC_NO_VLA__
__STDCPP_DEFAULT_NEW_ALIGNMENT__
出典元参照