インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
インテル® C++ コンパイラーは、次の ANSI/ISO 標準に準拠しています。
C++ ISO/IEC 14882:1998
C ISO/IEC 9899:1990
C 言語のコンパイルについて定めた ANSI/ISO 標準 (ISO/IEC 9899:1990) に準拠するためには、変換処理に必要な最低要件を満たしていなければなりません。インテル® C++ コンパイラーは、変換処理に対して ANSI/ISO の要求している最低要件をすべて満たしています。
インテル® C++ コンパイラーは、C++ 11 の多くの機能をサポートしています。サポートしている機能の一覧は、「インテル® C++ コンパイラーでサポートされる C++11 の機能」 (https://www.isus.jp/article/c-compiler/c0x-features-supported-by-intel-c-compiler/) を参照してください。
テンプレートの実体化
インテル® C++ コンパイラーは、extern テンプレートをサポートしています。これにより、テンプレートを特定の翻訳単位ではなく、別の変換単位またはライブラリーで実体化するように指定できます。コンパイラーは次のテンプレートをサポートします。
インライン・テンプレート - メンバーを実体化せずに、クラスのコンパイラーがサポートするデータ (例: vtable) を実体化します。
スタティック・テンプレート - テンプレートのスタティック・データ・メンバーを実体化し、仮想テーブルまたはメンバー関数は実体化しません。
また、次のオプションを使用することで、テンプレートの実体化をより高いレベルで制御することができます。
オプション |
説明 |
---|---|
-fno-implicit-templates |
暗黙的に実体化される非インライン・テンプレートでコードを出力しません。明示的な実体化でのみコードを出力します。 |
-fno-implicit-inline-templates |
インライン・テンプレートの明示的な実体化でもコードを出力しません。デフォルトでは、インライン展開を別々に処理します。そのため、最適化の有無にかかわらず、コンパイルには同じ明示的な実体化のセットが必要となります。 |
このバージョンのインテル® C++ コンパイラーは、次の C99 機能をサポートします。
制限付きポインター (restrict キーワード)
可変長配列
フレキシブルな配列メンバー
複素数のサポート (_Complex キーワード)
16 進浮動小数点定数
コンパウンド・リテラル
指定初期化子
混在する宣言とコード
可変長引数を持つマクロ
インライン関数 (inline キーワードを使用)
ブール型 (_Bool キーワード)
long double (128 ビット表記) 機能はサポートされていません。