asio库在很多例子中都传递了一个错误参数,即; http://think-async.com/Asio/asio-1.5.3/src/examples/echo/async_tcp_echo_server.cpp
这个参数的重点是什么? asio实际上是否填充了此参数并出现错误?
如果我从处理程序函数中删除它,它编译得很好。
答案 0 :(得分:11)
实际上,asio::placeholders::error
相当于_1
Boost.Bind占位符,因此bind(&my_class::handler, this, asio::placeholders::error)
就像bind(&my_class::handler, this, _1)
。
当Boost.Asio完成处理程序调度程序调用此处理程序时,error_code
将作为此函数的第一个参数传递。
但是,在调用绑定器any extra arguments are silently ignored时,您始终可以bind
一个需要较少参数的函数(在本例中为零)。