コンパイラは、C および C++ 言語に対する多くの言語拡張をサポートしています。たとえば、一部の GNU コンパイラ拡張機能がサポートされます。コンパイラには、ソース言語への準拠の程度に対応したいくつかのモードがあります。
- C90
-
ISO C90 コンパイラで、ARM 拡張機能と組み合わせて使用します。
C90 コードをコンパイルする場合は、--c90
オプションを使用して下さい。これがデフォルトです。
- 厳密な C90
-
1990 C 標準および追補表の定義に従った C です。
厳密な C90 コードを強制するには、コンパイラオプション --C90 --strict
を使用します。C90
がデフォルトであるため、--C90
は省略できます。
- C99
-
ISO C99 コンパイラで、ARM および GNU 拡張機能と組み合わせて使用します。
C99 コードをコンパイルする場合は、--c99
オプションを使用して下さい。
- 厳密な C99
-
1999 C 標準および追補表の定義に従った C です。
厳密な C99 コードをコンパイルするには、コンパイラオプション --c99 --strict
を使用します。
- 標準 C
-
C90 または C99 を適宜意味します。
- C
-
C90、厳密な C90、C99、厳密な C99、および標準 C の総称です。
- C++03
-
ワイドストリームとエキスポートテンプレート機能を除いた ISO C++03 です。ARM 拡張機能との組み合わせは任意です。
C++03 コードをコンパイルする場合は、--cpp
コンパイラオプションを使用して下さい。
古いコンパイラバージョンでコンパイルされた C++03 コードとのバイナリ互換性を最大限に高めるには、コンパイラオプション --cpp --cpp_compat
を使用します。
- 厳密な C++03
-
ワイドストリームとエキスポートテンプレートを除いた ISO C++03 です。
厳密な C++03 コードをコンパイルするには、コンパイラオプション --cpp --strict
を使用します。
- C++11
-
ワイドストリームとエキスポートテンプレート機能を除いた ISO C++11 です。ARM 拡張機能との組み合わせは任意です。
C++11 コードをコンパイルする場合は、--cpp11
コンパイラオプションを使用して下さい。
C++ 2003 標準にコンパイルされたコードとの互換性を最大限に高める C++11 コードのサブセットをコンパイルするには、コンパイラオプション --cpp11 --cpp_compat
を使用します。
- 厳密な C++11
-
ワイドストリームとエキスポートテンプレートを除いた ISO C++11 です。
厳密な C++11 コードをコンパイルするには、コンパイラオプション --cpp11 --strict
を使用します。
- 標準 C++
-
厳密な C++03 または厳密な C++11 を適宜意味します。
- C++
-
C++03、厳密な C++03、C++11、および厳密な C++11 の総称です。