ошибка компиляции boost 1.47 с non_blocking () - PullRequest
0 голосов
/ 15 июля 2011

Может кто-нибудь заметить, что я здесь делаю не так?Согласно документации в 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 (true);

и сокет в классе определяется следующим образом:

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

1 Ответ

2 голосов
/ 15 июля 2011

Функция-член boost::asio::ip::udp::socket::non_blocking() представляется новой в 1.47. Либо он не существует в 1.47, либо вы используете более старый заголовок. Я бы посоветовал найти заголовок <boost/asio/basic_datagram_socket.hpp>, который включен, чтобы увидеть, имеет ли он на самом деле эту функцию-член как часть класса basic_datagram_socket. Если нет, вы всегда можете сделать это по-старому, как сказал Стив Таунсенд в своем ответе.

Я только что скачал Boost 1.47 и обнаружил, что basic_datagram_socket наследует non_blocking() от basic_socket. Мне кажется, что у вас нет Boost 1.47.

...