Увеличить Asio async_wait обработчик - PullRequest
3 голосов
/ 13 декабря 2010

Функция boost asio deadline_timer async_wait принимает обработчик вида:

void handler(const boost::system::error_code& error)

Как я могу определить обработчик, который принимает const boost::system::error_code& error, а также аргумент типа int?

boost::asio::deadline_timer t(io_service);

t.async_wait(handler); //I need the async_wait to take in handler which accepts argument boost::system::error_code& error and an int 

void handler(int, const boost::system::error_code& error )//extra int argument

Спасибо.

1 Ответ

4 голосов
/ 13 декабря 2010

Вы можете использовать Boost.Bind для предоставления значения для первого аргумента:

t.async_wait(boost::bind(handler, 0, _1));

Здесь обработчик будет вызываться с 0 в качестве первого аргумента и error_code будет просто передан в качестве второго аргумента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...