gpt4 book ai didi

c++ - 文件 basic_socket.hpp 中的 lib boost asio 1.47.0 出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:56:36 26 4
gpt4 key购买 nike

当我尝试编译时,以下代码出现错误:

void        Server::accept(void)
{
Network::ptr connection = Network::initialize(this->my_acceptor.get_io_service());
this->my_acceptor.async_accept(connection->socket(), bind(&Server::endCmd, this, *connection, placeholders::error));
}

void Server::endCmd(Network connection, const boost::system::error_code& error)
{
if (!error)
{
std::cout << "success!" << std::endl;
connection.start();
this->accept();
}
}

VC++ 2010 告诉我以下错误:

Error   1   error C2248: 'boost::asio::basic_io_object<IoObjectService>::basic_io_object' : cannot access private member declared in class 'boost::asio::basic_io_object<IoObjectService>'

我知道这个错误出现在这一行,因为当我评论它时,错误消失了......经过一些研究,当我调用 connection->getSocket() 时,它可能与套接字的类有关,但此函数返回对套接字实例的引用:

tcp::socket& Network::socket(void)
{
return (this->my_socket);
}

所以我没有在网上找到任何解决方案:(

有人有想法吗?

最佳答案

async_accept 是你自己写的吗?如果是这样,请确保它需要对套接字的引用,而不是按值传递。你得到的错误是说你正在尝试复制构造,并且复制构造函数被声明为私有(private)(这是强制该类不支持复制的 C++ 方式)。

关于c++ - 文件 basic_socket.hpp 中的 lib boost asio 1.47.0 出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8071571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com