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)
需要较少参数(在本例中为零)的函数 - 当绑定(bind)器被调用时,any extra arguments are silently ignored .
关于c++ - asio::placeholder::error 有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15859605/