この記事は、インテル® デベロッパー・ゾーンに掲載されている「C11 Support in Intel C++ Compiler」の日本語参考訳です。
インテル® Parallel Studio XE とインテル® System Studio に含まれる、インテル® C++ コンパイラーでサポートされる C11 の機能を以下にまとめます。
C11 主要言語機能 | V15.0 | V16.0 | V17.0 | V18.0 |
スタティック・アサート (Static Assert) | Yes | Yes | Yes | Yes |
Typedef の再定義 (Typedef redefinition) | – | Yes | Yes | Yes |
匿名構造体とユニオン (Anonymous struct and union) | – | Yes | Yes | Yes |
float.h の新しマクロ (New macros in float.h) | – | Yes | Yes | Yes |
_Alignas, _Alignof, max_align_t, stdalign.h | – | Yes | Yes | Yes |
_Atomic | – | – | – | Yes |
アトミック・オペレーター (Atomic operations) | – | Yes | Yes | Yes |
複素値のマクロ (Macros for Complex values) | – | Yes | Yes | Yes |
ユニコード文字列 (Unicode strings) | – | Yes | Yes | Yes |
uchar.h | – | – | – | – |
_Noreturn, stdnoreturn.h | – | Yes | Yes | Yes |
_Generic | – | Yes | Yes | Yes |
__STDC_VERSION__ == 201112L | – | Yes | Yes | Yes |
_thread_local | – | Yes | Yes | Yes |
注意:
- C11 の機能は、GNU* gcc がインストールされている場合、4.6 以降でのみサポートされています。
- Linux*: path に含まれる gcc によってサポートされる C11 の機能がデフォルトで適用されます。その他の場合、”-std=c11″ または “-std=c1x” オプションを使用して機能を有効にします。
- macOS*: path に含まれる gcc によってサポートされる C11 の機能がデフォルトで適用されます。その他の場合、”-std=c11″ オプションを使用して機能を有効にします。
- Windows*: “/Qstd=c11” コンパイラー・オプションを指定して C11 の機能を有効にします。
その他の関連記事
- GNU* GCC の C11 サポート状況: https://gcc.gnu.org/wiki/C11Status (英語)
- GNU* GCC の C99 サポート状況: https://gcc.gnu.org/c99status.html (英語)
インテル® コンパイラー のサポート状況:
- C++11 の機能については、「インテル® C++ コンパイラーでサポートされる C++11 の機能」を参照ください
- C99 の機能に関しては、「インテル® C++ コンパイラーでサポートされる C99 の機能」を参照ください。
- C++14 の機能に関しては、「インテル® C++ コンパイラーでサポートされる C++14 の機能」を参照ください。
- C++17 の機能に関しては、「インテル® C++ コンパイラーでサポートされる C++17 の機能」を参照ください。
コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。