Библиотека asio передает параметр ошибки во многих своих примерах, т.е.
http://think-async.com/Asio/asio-1.5.3/src/examples/echo/async_tcp_echo_server.cpp
Какой смысл этого параметра? Действительно ли asio заполняет этот параметр ошибками?
Если я удаляю его из своей функции обработчика, он компилируется нормально.
На самом деле, 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
функция, которая ожидает меньше аргументов (в данном случае — ноль) — когда вызывается связыватель, любые дополнительные аргументы молча игнорируются.
Других решений пока нет …