std、Qstd

特定の言語標準に準拠するようにコンパイラーに指示します。

構文

Linux*:

-std=val

macOS*:

-std=val

Windows*:

/Qstd=val (C++ のみ)

引数

val

準拠する特定の言語標準を指定します。設定可能な値は以下のとおりです。

c++2a

C++ プログラムで C20 試験的サポートを有効にします。

c++17

2017 ISO C++ 標準機能のサポートを有効にします。この設定でサポートされる機能については、https://software.intel.com/content/www/us/en/develop/articles/c17-features-supported-by-intel-c-compiler.html (英語) を参照してください。

c++14

2014 ISO C++ 標準機能のサポートを有効にします。次の機能を利用できます。

  • コンテキスト変換の微調整

  • バイナリーリテラル

  • decltype(auto): 通常の関数の戻り値の型推定

  • 初期化されたラムダ・キャプチャー: simple-capture、init-captur

  • 汎用ラムダ式

  • 可変テンプレート

  • constexpr の拡張

  • 集計用の NSDMI

  • 割り当ての回避 / 融合

  • [deprecated] 属性

  • サイズ指定された解放

  • 数値区切りとしての一重引用符

c++11

ISO / IEC 14882:2011 国際規格に準拠します。多くの C++11 (旧称: C++0x) 機能のサポートを有効にします。次の機能を利用できます。

  • 移動用の特殊なメンバー関数の定義 (N3053)

  • 明示的な仮想関数オーバーライド (N2928、N3206、N3272)

  • constexpr の完全実装 (Linux* および macOS* でのみ利用可能)

  • 初期化子のリストの完全実装

  • noexcept の完全実装

  • 非スタティック・データ・メンバー (フィールド初期化子) の完全実装

  • Raw 文字列と UTF-8

  • デリゲート・コンストラクター

  • メンバー関数の参照修飾子

  • 追加の型特性ヘルパー (例: __is_nothrow_assignable、__is_trivially_assignable、__is_trivially_constructible、__bases、__direct_bases など)

インテル® oneAPI DPC++/C++ コンパイラーで実装済みの C++11 機能の一覧は、「インテル® C++ コンパイラーでサポートされる C++11 機能」 (https://software.intel.com/content/www/us/en/develop/articles/c0x-features-supported-by-intel-c-compiler.html (英語)) を参照してください。

c++0x

c++11 を指定することに相当します。

gnu++0x

c++0x を指定することに相当します。この値は、Linux* および macOS* システムでのみ利用できます。

gnu++14

2014 ISO C++ 規格と GNU* 拡張機能に準拠します。

gnu11

ISO C11 と GNU* 拡張機能に準拠します。

gnu++98

1998 ISO C++ 規格と GNU* 拡張機能に準拠します。この値は、Linux* および macOS* システムでのみ利用できます。

C++: c18

C プログラムの ISO / IEC 9899:2018 規格に準拠します。

c11

ISO / IEC 9899:2011 国際規格に準拠します。

c99

ISO / IEC 9899:1999 国際規格に準拠します。

gnu99

ISO C99 と GNU* 拡張機能に準拠します。この値は、Linux* および macOS* システムでのみ利用できます。

c89

ISO / IEC 9899:1990 国際規格に準拠します。この値は、Linux* および macOS* システムでのみ利用できます。

gnu89

ISO C90 と GNU* 拡張機能に準拠します。この値は、Linux* および macOS* システムでのみ利用できます。

デフォルト

-std=c++14 (DPC+ のデフォルト)

2014 ISO C++ 規格に準拠します。

-std=gnu++14 (C++ のデフォルト)

2014 ISO C++ 規格と GNU* 拡張機能に準拠します。

-std=gnu11 (C のデフォルト)

ISO C11 と GNU* 拡張機能に準拠します。

C++: /Qstd

オフ

C++11 機能のサブセットは、Microsoft* Visual Studio* C++ の特定のバージョンとの互換性のため、デフォルトで有効に設定されます。そのため、Microsoft* で提供されない追加の C++11 機能を利用する場合のみ、/Qstd=c++0x を指定します。

説明

このオプションは、特定の言語標準に準拠するようにコンパイラーに指示します。

これは C++ 固有のコンテンツです。DPC++ には適用されません。
Windows* では、値 c99 および c++0x のみ指定できます。

IDE オプション

Visual Studio*: [Language] > [C / C++ Language Support]

Eclipse*: [Language] > [ANSI Conformance]

Xcode*: [Language] > [C Language Dialect and C++ Language Dialect]

代替オプション

なし