/await
(启用协同程序支持)
使用 /await
编译器选项启用对协同例程的编译器支持。
语法
/await
/await:strict
备注
/await
编译器选项启用对 C++ 协同例程和关键字 co_await
、co_yield
和 co_return
的编译器支持。 默认情况下,此选项处于关闭状态。 有关 Visual Studio 中协同例程支持的信息,请参阅 Visual Studio 团队博客。 有关协同例程标准提案的更多信息,请参阅 N4628 工作草案,协同例程 C++ 扩展技术规范。
从 Visual Studio 2015 开始,可以使用 /await
选项。
从 Visual Studio 2019 版本 16.10 开始,可以使用 /await:strict
选项代替 /await
。 该选项在以 C++14 或 C++17 模式构建的项目中提供与 C++20 兼容的协同例程支持。 在 /await:strict
模式下,在<协同例程>和 std
命名空间中支持库。
/await:strict
选项将禁用在 /await
中存在但未在 C++20 标准中采用的语言扩展。 使用此类功能会导致编译器错误。 该选项还实现了协同例程行为,例如 promise 参数预览。 由于旧版本 Visual Studio 中的二进制兼容性问题,这些行为在 /await
下不可用。
注意
从 coroutine_handle<T>::address()
获得的协同例程状态对象在 /await
和 /await:strict
模式之间不兼容。 如果地址是从以不兼容模式编译的代码创建的协程句柄获得的,则对此类地址使用 coroutine_handle<T>::from_address()
会导致未定义的行为。
在 Visual Studio 开发环境中设置此编译器选项
打开项目的“属性页”对话框。
选择“配置属性”>“C/C++”>“命令行”属性页。
在“附加选项”框中输入
/await
或/await:strict
编译器选项。 选择“确定”或“应用”以保存更改。
以编程方式设置此编译器选项
- 请参阅 AdditionalOptions。