Какая польза от asio :: placeholder :: error

Библиотека asio передает параметр ошибки во многих своих примерах, т.е.
http://think-async.com/Asio/asio-1.5.3/src/examples/echo/async_tcp_echo_server.cpp

Какой смысл этого параметра? Действительно ли asio заполняет этот параметр ошибками?

Если я удаляю его из своей функции обработчика, он компилируется нормально.

10

Решение

На самом деле, asio::placeholders::error эквивалентно _1 Boost.Bind заполнитель, так bind(&my_class::handler, this, asio::placeholders::error) так же, как bind(&my_class::handler, this, _1),

Когда этот обработчик вызывается диспетчером завершения обработчика Boost.Asio, error_code передается в качестве первого аргумента этой функции.

Тем не менее, вы всегда можете bind функция, которая ожидает меньше аргументов (в данном случае — ноль) — когда вызывается связыватель, любые дополнительные аргументы молча игнорируются.

11

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector