我是 boost.asio 的新手。 我在尝试一个简单示例时遇到问题。
在我的头文件中我有:
#include <boost/asio.hpp>
#include "boost/bind.hpp"
#include "boost/date_time/posix_time/posix_time_types.hpp"
我需要这个私有(private)变量:
boost::asio::ip::udp::socket socket_;
我在编译时遇到这个错误:
error C2512: 'boost::asio::basic_datagram_socket<Protocol>' : no appropriate default constructor available
with
[
Protocol=boost::asio::ip::udp
最佳答案
如果 found here,所有 UDP 套接字构造函数的列表.如您所见,您必须至少提供对 boost::asio::io_service
对象的引用。
如果这是私有(private)变量,请在类构造函数的初始化列表中提供此引用。以下将编译:
#include <boost/asio.hpp>
class Socket
{
boost::asio::ip::udp::socket socket_;
public:
Socket( boost::asio::io_service& ioserv) : socket_(ioserv) {}
};
int main()
{
boost::asio::io_service io;
Socket s(io);
}
关于c++ - boost.asio 测试问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5651295/