Ответ 1
Собственно, asio::placeholders::error
эквивалентно _1
Boost.Bind placeholder, поэтому bind(&my_class::handler, this, asio::placeholders::error)
аналогичен bind(&my_class::handler, this, _1)
.
Когда этот обработчик вызывается диспетчером-обработчиком Boost.Asio, error_code
передается в качестве первого аргумента этой функции.
Однако всегда можно bind
использовать функцию, которая ожидает меньше аргументов (в этом случае - ноль) - при вызове связующего, любые дополнительные аргументы молча игнорируются.