使用non_blocking()提升1.47编译错误

时间:2011-07-15 16:20:05

标签: c++ windows boost boost-asio

有谁能辨别我在这里做错了什么?根据1.47中的文档,basic_datagram_socket继承自basic_socket,因此应继承non_blocking()或non_blocking(bool)。 感谢

错误1错误C2039:'non_blocking':不是'boost :: asio :: basic_datagram_socket'的成员c:\ DEV \ projects \ topoTest \ topoTest \ multiReceiver.cpp 129

这是电话。 socket_.non_blocking(真);

并且套接字在类中定义如下:

boost :: asio :: ip :: udp :: socket socket_;

1 个答案:

答案 0 :(得分:2)

成员函数boost::asio::ip::udp::socket::non_blocking()似乎是1.47中的新功能。它实际上并不存在于1.47中,或者您实际上使用的是较旧的标题。我建议找到包含的<boost/asio/basic_datagram_socket.hpp>标头,看它是否确实将该成员函数作为basic_datagram_socket类的一部分。如果没有,你可以像Steve Townsend在他的回答中所说的那样以旧的方式做到这一点。

我刚刚下载了Boost 1.47,发现basic_datagram_socketnon_blocking()继承了basic_socket。它看起来像你实际上没有Boost 1.47。