IBM® XL C++ は、以下の C99 言語機能のサポートを追加します。これらの機能のすべては、デフォルト言語レベルである -qlanglvl=extended オプションで使用可能です。
| 言語機能 | 参照先 |
|---|---|
| 重複型修飾子 | 型修飾子 |
| 構造体または共用体の最後にある柔軟な配列メンバー | 柔軟な配列メンバー |
| _Pragma 演算子 | _Pragma プリプロセッシング演算子 |
| 追加の事前定義マクロ名 | 標準の事前定義マクロ名 |
| 関数類似マクロの空の引数 | 関数類似マクロ |
| C 標準プラグマ | 標準のプラグマ (C のみ) |
以下の機能は、デフォルト言語レベルの -qlanglvl=extended オプションで使用可能です。 また、下記の表にリストされている特定のコンパイラー・オプションによって使用可能または使用不可になります。
| 言語機能 | 参照先 | 個々のオプション制御 |
|---|---|---|
| __func__ 事前定義 ID | __func__ 事前定義 ID | -qlanglvl=[no]c99__func__ |
| 16 進浮動小数点リテラル | 16 進浮動小数点リテラル | -qlanglvl=[no]c99hexfloat |
| 複素数データ型 | 複素数浮動小数点型 | -qlanglvl=[no]c99complex |
| enum 宣言内で許可される末尾コンマ | 列挙型の定義 | -qlanglvl=[no]trailenum |
| restrict 型修飾子 | restrict 型修飾子 | -q[no]keyword=restrict |
| 可変長配列 | 可変長配列 | -qlanglvl=[no]c99vla |
| 複合リテラル | 複合リテラル式 | -qlanglvl=[no]c99compoundliteral |
| 関数類似マクロの変数引数 | 関数類似マクロ | -qlanglvl=[no]varargmacros |
以下の機能は、下記の表にリストされている特定のコンパイラー・オプションによってのみ使用可能です。
| 言語機能 | 参照先 | 個々のオプション制御 |
|---|---|---|
| ユニバーサル文字名 | ユニコード規格 | -qlanglvl=ucs |