我想在C++(UE4框架)中使用async/await语法,但是由于跨平台代码,我不确定这是可能的还是可能的?如果可以,该如何使用?

而且在Visual Studio中突出显示了await__await(也包括resumableyield__yield_value)关键字。有什么区别?也许不是所有的编译器都支持此关键字还是单独支持?
gccclang都接受吗?还是不接受,我只能为每个平台单独使用宏。

最佳答案

asyncawait是Microsoft提出的语言扩展,具有多个修订版本,但当前为N4134。这尚未被纳入标准。

该提议遭到了许多像http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0158r0.html的反对,因为它们没有被完全烘焙并且还没有在TS中进行过充分的探索,还有像N3985这样的竞争性提议,提出了可以在现有语言标准中实现的协程。

据我所知,唯一真正支持异步/等待的编译器是MS Visual Studio。

作为更新,clang 5.0支持当前的协程草案提议https://isocpp.org/files/papers/N4663.pdf,该提议现已被接受为TS,并且正朝着C++ 20标准发展。

关于c++ - 所有C++编译器都支持async/await关键字吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39106863/

10-11 23:12
查看更多