Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MSVC中未定义boost::asio::co_spawn_C++_Boost_Boost Asio_Asio - Fatal编程技术网

C++ MSVC中未定义boost::asio::co_spawn

C++ MSVC中未定义boost::asio::co_spawn,c++,boost,boost-asio,asio,C++,Boost,Boost Asio,Asio,我正在尝试使用boost.asio创建一个TCP服务器,下面的示例使用co_spawn在一个新线程中启动侦听器函数 当我尝试使用boost::asio::co_spawn时,Microsoft Visual Studio告诉我它是未定义的,我已经包含了它所包含的所有文件 TcpServer.h 包括 包括 包括 包括 包括 包括 包括 包括 包括 使用名称空间boost::asio; 类TcpServer { 公众: TcpServerint端口; ~TcpServer; 私人: }; TcpS

我正在尝试使用boost.asio创建一个TCP服务器,下面的示例使用co_spawn在一个新线程中启动侦听器函数

当我尝试使用boost::asio::co_spawn时,Microsoft Visual Studio告诉我它是未定义的,我已经包含了它所包含的所有文件

TcpServer.h

包括 包括 包括 包括 包括 包括 包括 包括 包括 使用名称空间boost::asio; 类TcpServer { 公众: TcpServerint端口; ~TcpServer; 私人: }; TcpServer.cpp

包括TcpServer.h /* 在给定端口上创建TcpServer */ TcpServer::TcpServerint端口 { io_上下文ioCtx1; /*E0020标识符co_spawn未定义*/ 产卵; } TcpServer::~TcpServer { } 上面的代码告诉我co_spawn是未定义的,我搜索了其他名称空间并检查了可选函数,但没有。我认为这可能是过时的文档,但是版本1.70.1的boost.asio参考仍然将co_spawn列为一个免费函数。看

我正在使用 升幅:1.70.1
Microsoft Visual Studio 2017:v15.9.7

boost.asio具有检测编译器功能的预处理器代码,并且仅在编译器支持的情况下才启用协同程序支持

对于MSVC,我认为您需要将编译器标志/await添加到编译器命令行选项列表中


参考资料:

您是否需要msvc上的命令行选项来启用协同程序?谢谢,这非常有效,文档链接非常有用!我很惊讶,通过我所有的谷歌搜索和文档阅读,我都找不到这方面的信息。我只知道去哪里找,因为昨天我碰巧读了一些新的ASIO源代码,因为我也想使用co_例程来简化我们的生产代码。