Visual Studio在作者的Boost Asio示例中抱怨co_await

时间:2019-01-09 14:26:45

标签: c++ boost boost-asio

关于Boost Asio,我是一个新手。我玩过回调,并且一切正常。但是,现在我正尝试切换到协程,而co_await却遇到了问题。 Visual Studio 2017社区版显示"this co_await expression requires a suitable "await_ready" function and none was found"

我使用的代码是Boost Asio网站上作者的示例。链接:

https://www.boost.org/doc/libs/1_69_0/doc/html/boost_asio/example/cpp17/coroutines_ts/echo_server.cpp

我对代码所做的唯一修改是在文件第一行的#define BOOST_ASIO_HAS_CO_AWAIT

为什么每次出现"this co_await expression requires a suitable "await_ready" function and none was found"时都会出现此错误co_await?作者的示例应该可以正常工作,对吗?我是否缺少#include之类的东西?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

感谢您在Orbit中进行的Raceness Races建议您尝试使用编译器切换,这是主要问题,尽管我还有其他问题。如果有人遇到类似的问题,这些是我采取的步骤:

  1. #define BOOST_ASIO_HAS_CO_AWAIT移至头文件,在我的情况下为pch.h(愚蠢的错误)
  2. /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/