次の方法で共有


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

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

Note

/await オプションは、Visual Studio 2026 以降では非推奨となり、今後のリリースで削除される予定です。 標準の C++ コルーチンは、C++20 以降で既定で使用できます。 または、以前のバージョンの C++ 言語を使用する場合は、 /await:strict オプションを使用します。

構文

/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 2026 以降では非推奨です。

Visual Studio 2019 バージョン 16.10 以降では、/await:strict の代わりに /await オプションを使用できます。 このオプションでは、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 コンパイラ コマンド ラインの構文