如何解决如何使用 boost asio 的内置协程 ts 支持?
使用 g ++ - 10 我尝试编译文档中提供的使用协程的示例,但是编译器没有看到与协程 ts 关联的类,尽管它们在头文件中。 Boost 版本 - 1.75
#include <iostream>
#include <boost/asio.hpp>
#include "boost/asio/co_spawn.hpp"
#include "boost/asio/awaitable.hpp"
#include "boost/asio/coroutine.hpp"
boost::asio::awaitable<void> echo(boost::asio::ip::tcp::socket socket)
{
try
{
char data[1024];
for (;;)
{
std::size_t n = co_await socket.async_read_some(boost::asio::buffer(data),boost::asio::use_awaitable);
co_await async_write(socket,boost::asio::buffer(data,n),boost::asio::use_awaitable);
}
}
catch (std::exception& e)
{
std::printf("echo Exception: %s\n",e.what());
}
}
制作
cmake_minimum_required(VERSION 3.19)
project(asio_ineer_coro_test)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -fcoroutines")
find_package(Boost 1.75.0 REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
add_executable(asio_ineer_coro_test main.cpp)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。