最終更新日時(UTC):
が更新

履歴 編集

elif/elifdef/elifndefのサポートを追加(C++23)

概要

C++23では、以下のプリプロセス時条件式が追加される:

  • #ifに対応する#elifを追加。#if/#ifdef/#ifndefが偽だった場合の条件式を記述できる
  • #ifdefに対応する#elifdefを追加。#if/#ifdef/#ifndefが偽だった場合の、特定の識別子が定義されているかの判定を記述できる
  • #ifndefに対応する#elifndefを追加。#if/#ifdef/#ifndefが偽だった場合の、特定の識別子が定義されていないかの判定を記述できる

これまでは#ifが偽だった場合のさらなる条件式を記述するためには#elseにネストして#ifを記述する必要があったが、そのような条件分岐が書きやすくなる。

#define FOO 2

#if FOO == 1
/* */
#elif FOO == 2
/* */
#elifdef BAR
/* */
#elifndef HOGE
/* */
#endif

これらのプリプロセス命令はC23でも追加されるため、C++でも同じく追加する。

参照