我正在尝试将一些旧代码从使用 io_service 迁移到 io_context 作为基本 tcp 接受器,但是在将 get_io_service() 切换到 get_executor().context() 时遇到问题,导致以下错误:
\ncannot convert \xe2\x80\x98boost::asio::execution_context\xe2\x80\x99 to \xe2\x80\x98boost::asio::io_context&\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n这是听众:
\nImageServerListener::ImageServerListener(boost::asio::io_context& io)\n{\n _acceptor = new boost::asio::ip::tcp::acceptor(io, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), sConfig.net.imageServerPort));\n StartAccept();\n}\n\nImageServerListener::~ImageServerListener()\n{\n delete _acceptor;\n}\n\nvoid ImageServerListener::StartAccept()\n{\n std::shared_ptr<ImageServerConnection> connection = ImageServerConnection::create(_acceptor->get_executor().context());\n _acceptor->async_accept(connection->socket(), std::bind(&ImageServerListener::HandleAccept, this, connection));\n}\n\nvoid ImageServerListener::HandleAccept(std::shared_ptr<ImageServerConnection> connection)\n{\n connection->Process();\n StartAccept();\n}\nRun Code Online (Sandbox Code Playgroud)\n为了返回 io_context 而不是execution_context,必须更改什么?
\n