我用的是boost Asio,下面的函数不会编译。
udp::resolver Create_UDP_Socket(){
boost::asio::io_service io_service;
udp::socket s(io_service, udp::endpoint(udp::v4(), 0));
udp::resolver resolver(io_service);
return resolver;
}
错误:使用已删除的功能
boost::asio::ip::basic_resolver::basic_resolver(const boost::asio::ip::basic_resolver&)
返回解析器的最佳方法是什么?有什么我可以用移动语义做的,还是我应该指向解析器并返回它?(什么样的:共享/独特?)
编辑:这有效:
std::shared_ptr<udp::resolver> Create_UDP_Socket(){
boost::asio::io_service io_service;
udp::socket s(io_service, udp::endpoint(udp::v4(), 0));
std::shared_ptr<udp::resolver> resolver(new udp::resolver{io_service});
return resolver;
}
我仍然很好奇是否可以在不指向该类的情况下返回该类。