/await (コルーチン サポートを有効にする)

/await コンパイラ オプションを使って、コルーチンのコンパイラ サポートを有効にします。

構文

/await
/await:strict

解説

/await コンパイラ オプションを使うと、C++ のコルーチンとキーワード co_awaitco_yieldco_return のコンパイラ サポートを有効にできます。 このオプションの既定値はオフです。 Visual Studio でのコルーチンのサポートについては、Visual Studio チーム ブログを参照してください。 コルーチンの標準提案の詳細については、N4628「Working Draft, Technical Specification for C++ Extensions for Coroutines (ワーキング ドラフト: コルーチンの C++ 拡張機能に関する技術仕様)」を参照してください。

/await オプションは、Visual Studio 2015 以降で使用できます。

Visual Studio 2019 バージョン 16.10 以降では、/await の代わりに /await:strict オプションを使用できます。 このオプションでは、C++14 または C++17 モードでビルドするプロジェクトで、C++20 互換のコルーチン サポートが提供されます。 /await:strict モードの場合、ライブラリのサポートは <coroutine> と std 名前空間で提供されます。

/await:strict オプションを指定すると、C++20 標準には採用されなかった /await に存在する言語拡張が無効になります。 そのような機能を使用すると、コンパイラ エラーが発生します。 このオプションでは、promise パラメーター プレビューなどのコルーチンの動作も実装されます。 これらの動作は、以前のバージョンの Visual Studio におけるバイナリ互換性の問題により、/await では使用できません。

Note

coroutine_handle<T>::address() から取得されたコルーチン状態オブジェクトは、/await モードと /await:strict モードの間で互換性がありません。 互換性のないモードでコンパイルされたコードによって作成されたコルーチン ハンドルから取得したアドレスで coroutine_handle<T>::from_address() を使用すると、未定義の動作が発生します。

Visual Studio 開発環境でこのコンパイラ オプションを設定するには

  1. プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。

  2. [構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。

  3. [追加のオプション] ボックスに /await または /await:strict コンパイラ オプションを入力します。 [OK] または [適用] を選択して、変更内容を保存します。

このコンパイラ オプションをコードから設定するには

関連項目

MSVC コンパイラ オプション
MSVC コンパイラ コマンド ラインの構文