【发布时间】:2019-09-03 06:03:58
【问题描述】:
以下代码:
try {
throw 42;
} catch (int i) {
co_await somefuture;
}
使用 clang 6 和 7 编译 -fcoroutines-ts。但是,它不能与 Visual C++ 15 (2017) Visual C++ 16 (2019) 一起编译,并出现 /await 错误
C2304: 'co_await' 不能在 catch 块内使用
C++20 标准草案和cppreference 似乎没有提及任何内容。
这是 Microsoft 编译器中缺少的功能还是我误解了标准?
【问题讨论】:
-
你应该试试 VS 2019
-
请提供MCVE
-
2017 年的协程版本是标准草案中某些内容的灵感来源,它先于它。
-
刚刚用VS 2019 Preview 1测试过,错误是一样的。我可以尝试提供一个 MVCE,但由于 C++ 协程不能开箱即用,它会依赖于诸如 cppcoro 之类的东西。
-
@Philippe 它会让拥有适当工具链的人更容易为您提供帮助,而无需为他人做出任何改变:)
标签: c++ c++20 c++-coroutine