Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

言語標準

コンパイラでサポートされている言語標準

モデル コンフィギュレーション ペイン: [コード生成]

説明

[言語標準] パラメーターは、コンパイラでサポートされている言語標準を指定します。

依存関係

  • [C++03] は、[言語] パラメーターで [C++] を選択した場合にのみ使用できます。

  • [言語] パラメーターの値を変更すると、[言語標準][C99 (ISO)] (C の場合) および [C++11 (ISO)] (C++ の場合) に更新されます。

設定

[言語][C] に設定されている場合は [C99 (ISO)][言語][C++] に設定されている場合は [C++11 (ISO)] (既定値) | C89/C90 (ANSI) | C++03 (ISO)
C89/C90 (ANSI)

ISO®/IEC 9899:1990 C 言語標準に準拠したコードを生成します。

C99 (ISO)

ISO/IEC 9899:1999 C 言語標準に準拠したコードを生成します。

C++03 (ISO)

ISO/IEC 14882:2003 C++ 言語標準に準拠し、C++14 や C++17 などの C++ の後続バージョンと互換性があるコードを生成します。

C++11 (ISO)

ISO/IEC 14882:2011 C++ 言語標準に準拠し、C++14 や C++17 などの C++ の後続バージョンと互換性があるコードを生成します。

ヒント

  • このパラメーターを設定する前に、使用する標準がコンパイラでサポートされていることを確認してください。コンパイラでサポートされていないパラメーター値を選択した場合、コンパイラ エラーが発生することがあります。

    • たとえば、[C99 (ISO)] を選択した場合、コード ジェネレーターは最小限のスコープを実装するため、その生成コードは C89/90 コンパイラでサポートされません。

  • ISO/IEC 9899:1999 C をサポートしていないコンパイラを使用する場合は、このパラメーターを [C89/C90 (ANSI)] に設定します。

  • 指定した言語標準とツールチェーンに互換性があるかどうかビルド プロセスでチェックされます。互換性がない場合、コード生成中に警告が発生しますがビルド プロセスは継続します。

  • ビルド プロセスで Linux® GCC コンパイラを使用している場合は、ソフトウェアは、コンパイラの既定の言語標準を使用して生成コードをコンパイルします。コンパイラのバージョンによって既定の言語標準は異なります。詳細については、C++ Standards Support in GCC を参照してください。

    たとえば、GCC コンパイラ version 8.x を使用していて、[言語標準] パラメーターを C++03 に設定した場合、ソフトウェアはコンパイル時に C++14 言語標準を使用します。C++14 を使用すると、C++11 または C++14 の機能を使用するカスタム コードを統合する生成コードをビルドできます。

    パラメーターで指定した言語標準をコンパイル プロセスに適用する場合は、言語標準に固有のコンパイラ フラグを手動で追加しなければなりません。コードのビルドにツールチェーンを使用するようにモデルが構成されている場合は、次の手順を使用します。

    1. [コンフィギュレーション パラメーター] ダイアログ ボックスで、[ビルド構成][Specify] に設定します。

    2. [ツールチェーンの詳細] で、C Compiler および C++ Compiler[オプション] フィールドのエントリの最後に次のコンパイラ フラグを手動で追加します。

      • [言語標準]C99(ISO) に設定されている場合は、フラグ -std=c99 -pedantic を追加します。

      • [言語標準]C89/90(ANSI) に設定されている場合は、フラグ -ansi -pedantic -Wno-long-long を追加します。モデルの構成によっては、定義 'typedef unsigned long long ulonglong_T' を含む Coder の typedef ヘッダー ファイルがビルド プロセスに含まれることがあります。-Wno-long-long は、long long 型の使用に関する C90 コンパイラの警告を抑制します。

      • [言語標準]C++03 に設定されている場合は、フラグ -std=c++03 -pedantic を追加します。

      • [言語標準]C++11 に設定されている場合は、フラグ -std=c++11 -pedantic を追加します。

推奨設定

アプリケーション設定
デバッグ影響なし
トレーサビリティ影響なし
効率性有効なライブラリ
安全対策影響なし

プログラムでの使用

パラメーター: TargetLangStandard
型: 文字ベクトル
値: 'C89/C90 (ANSI)' | 'C99 (ISO)' | 'C++03 (ISO)' | 'C++11 (ISO)'
既定の設定: C の場合は 'C99 (ISO)'、C++ の場合は 'C++11 (ISO)'

バージョン履歴

R2014a で導入