关于Boost Asio,我是一个新手。我玩过回调,并且一切正常。但是,现在我正尝试切换到协程,而co_await
却遇到了问题。 Visual Studio 2017社区版显示"this co_await expression requires a suitable "await_ready" function and none was found"
。
我使用的代码是Boost Asio网站上作者的示例。链接:
我对代码所做的唯一修改是在文件第一行的#define BOOST_ASIO_HAS_CO_AWAIT
。
为什么每次出现"this co_await expression requires a suitable "await_ready" function and none was found"
时都会出现此错误co_await
?作者的示例应该可以正常工作,对吗?我是否缺少#include
之类的东西?
任何帮助都将不胜感激。
答案 0 :(得分:2)
感谢您在Orbit中进行的Raceness Races建议您尝试使用编译器切换,这是主要问题,尽管我还有其他问题。如果有人遇到类似的问题,这些是我采取的步骤:
#define BOOST_ASIO_HAS_CO_AWAIT
移至头文件,在我的情况下为pch.h(愚蠢的错误)/await
开关添加到Project Properties > C/C++ > Command Line > Additional Options
。此时,所有内容编译都没有错误。但是,co_await
仍然带有红色下划线,原因是:
Intellisense编译器尚未赶上MSVC编译器。
来源:https://blogs.msdn.microsoft.com/vcblog/2017/05/19/using-c-coroutines-with-boost-c-libraries/