Я пытаюсь создать TCP-сервер, используя boost.asio и следуя примерам, которые вы используете co_spawn, чтобы запустить функцию слушателя в новом потоке.
Когда я пытаюсь использовать boost::asio::co_spawn
Microsoft Visual Studios сообщает, что он не определен, я включил все файлы, которые делает пример усиления .
TcpServer.h
#include <iostream>
#include <string>
#include <boost/asio/co_spawn.hpp>
#include <boost/asio/detached.hpp>
#include <boost/asio/io_context.hpp>
#include <boost/asio/ip/tcp.hpp>
#include <boost/asio/signal_set.hpp>
#include <boost/asio/write.hpp>
#include <boost/asio/coroutine.hpp>
using namespace boost::asio;
class TcpServer
{
public:
TcpServer(int port);
~TcpServer();
private:
};
TcpServer.cpp
#include "TcpServer.h"
/*
Create a TcpServer on a given port
*/
TcpServer::TcpServer(int port)
{
io_context ioCtx(1);
/* E0020 identifier "co_spawn" is undefined */
co_spawn();
}
TcpServer::~TcpServer()
{
}
Приведенный выше код говорит мне, что co_spawn
не определен, я искал другие пространства имен и проверил альтернативные функции, а их нет.Я подумал, что, возможно, это устаревшая документация, но ссылка boost.asio
для версии 1.70.1
по-прежнему перечисляет co_spawn
как бесплатную функцию.См. здесь
Я использую Boost: 1.70.1 Microsoft Visual Studio 2017: v15.9.7