10

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

这个参数有什么意义?asio 是否真的用错误填充了这个参数?

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

4

1 回答 1

12

实际上,asio::placeholders::error相当于_1Boost.Bind 占位符,所以bind(&my_class::handler, this, asio::placeholders::error)就像bind(&my_class::handler, this, _1).

当 Boost.Asio 完成处理调度程序调用此处理程序时,error_code将作为第一个参数传递给此函数。

但是,您始终可以bind使用一个期望较少参数的函数(在这种情况下 - 零) - 当绑定器被调用时,任何额外的参数都会被静默忽略

于 2013-04-07T06:49:31.503 回答