Установщик должен соответствовать требованиям дляобработчика. Значение<h
>класса обработчика решений должно корректно работать в выражении<h(ec,
i)
>, где<ec
>является значением типа<consterror_code
>и<i
>является значением типа.<constip::basic_resolver_iterator<InternetProtocol>
>.<InternetProtocol
>является шаблонным параметром<resolver_service
>, который используется для инициирования асинхронной операции.
Бесплатная функция в качестве обработчика решений:
void resolve_handler(
const boost::system::error_code& ec,
boost::asio::ip::tcp::resolver::iterator iterator)
{
...
}
Объект функции обработчика решений:
struct resolve_handler
{
...
void operator()(
const boost::system::error_code& ec,
boost::asio::ip::tcp::resolver::iterator iterator)
{
...
}
...
};
Функция нестатического члена класса, адаптированная для обработчика решений с использованием<bind()
>:
void my_class::resolve_handler(
const boost::system::error_code& ec,
boost::asio::ip::tcp::resolver::iterator iterator)
{
...
}
...
resolver.async_resolve(...,
boost::bind(&my_class::resolve_handler,
this, boost::asio::placeholders::error,
boost::asio::placeholders::iterator));