/await
(コルーチン サポートを有効にする)
/await
コンパイラ オプションを使って、コルーチンのコンパイラ サポートを有効にします。
構文
/await
/await:strict
解説
/await
コンパイラ オプションを使うと、C++ のコルーチンとキーワード co_await
、co_yield
、co_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 開発環境でこのコンパイラ オプションを設定するには
プロジェクトの [プロパティ ページ] ダイアログ ボックスを開きます。
[構成プロパティ]>[C/C++]>[コマンド ライン] プロパティ ページを選択します。
[追加のオプション] ボックスに
/await
または/await:strict
コンパイラ オプションを入力します。 [OK] または [適用] を選択して、変更内容を保存します。
このコンパイラ オプションをコードから設定するには
- 以下を参照してください。AdditionalOptions