asio :: placeholder :: error有什么用?

时间:2013-04-07 06:29:02

标签: c++ boost boost-asio boost-bind

asio库在很多例子中都传递了一个错误参数,即; http://think-async.com/Asio/asio-1.5.3/src/examples/echo/async_tcp_echo_server.cpp

这个参数的重点是什么? asio实际上是否填充了此参数并出现错误?

如果我从处理程序函数中删除它,它编译得很好。

1 个答案:

答案 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一个需要较少参数的函数(在本例中为零)。