インテル® C++ コンパイラー 14.0 ユーザー・リファレンス・ガイド
インテル® C++ コンパイラーは、GNU* コンパイラー・コレクション (gcc) のほとんどのバージョンと互換性があります。リリースノートに互換バージョンの一覧があります。
インテル® コンパイラーで作成された C 言語オブジェクト・ファイルは、gcc* および C/C++ 言語ライブラリーとバイナリー互換です。インテル® コンパイラーまたは gcc* コンパイラーを使用して、オブジェクト・ファイルをリンカーに渡すことができます。しかし、リンカーにインテル® ライブラリーを正確に渡すには、インテル® コンパイラーを使用してください。
インテル® コンパイラーは GNU コンパイラーが提供する多くの言語拡張をサポートしています。詳細は、http://www.gnu.org/home.ja.html を参照してください。
式文内に次の項目を置くことが禁止されていることを除き、式文はサポートされています。
動的に初期化されたローカル・スタティック変数
ローカルの非 POD クラス定義
try/catch
インテル® C++ コンパイラーは、アセンブラー・コードが AT&T* System V/386 構文を使用する場合、gcc* スタイルのインライン・アセンブリーをサポートします。
あるコンパイラーで生成されたオブジェクト・ファイルやライブラリーが別のコンパイラーで生成されたオブジェクト・ファイルやライブラリーとリンク可能で、生成される実行ファイルが正しく動作する場合、C++ コンパイラーは互換性を保持することができます。インテル® コンパイラーは、GNU* コンパイラーと互換性があります。
インテル® コンパイラーと GNU* コンパイラーは、次の事前定義済みマクロをサポートしています。
__GNUC__
__GNUG__
__GNUC_MINOR__
__GNUC_PATCHLEVEL__
これらのマクロを定義しないようにするには、-no-gcc オプションを指定します。 gcc* との互換性保持 (-cxxlib) が必要な場合、-no-gcc オプションを使用しないでください。
これらのマクロを定義しないと、システム・ヘッダー・ファイルのパスが使用されます。このような代替パスは、十分にテストされていないか、または互換性がないことがあります。