上面写着:
您可能已经注意到了错误,handle_write()函数体中没有使用bytes_transferred参数。如果不需要参数,可以从函数中删除它们
但是,似乎其他地方都一样( https://www.boost.org/doc/libs/1_80_0/doc/html/boost_asio/reference/async_write.htmlhttps://live.boost.org/doc/libs/1_83_0/doc/html/ boost_asio/reference/WriteHandler.html ),文档说类似函数应该与签名匹配。
我尝试使用空的 lambda,事实上,它抱怨签名。 是 boost::bind 允许 async_write 调用它并丢弃参数吗?
官方 boost 文档中记录在哪里?
正如问题中所假设的,它是
boost::bind
允许的。
使用 boost::bind 传递比预期更多的参数是否安全?
boost::bind 的结果可以用更多参数进行自调用 :
请注意,在最后一个示例中,bind(g, _1, _1, _1) 生成的函数对象不包含对第一个参数之外的任何参数的引用,但它仍然可以与多个参数一起使用。任何额外的参数都会被默默地忽略,就像第三个示例中的第一个和第二个参数被忽略一样。
由于可以使用额外参数调用具有
boost::bind
的绑定函数,因此编译器不会抱怨。