c++ bind和function的问题

为什么下面这段代码能正确输出呢,Funtor要求是一个无参的函数,但是f明显有参数啊

img

见没人,简单说下吧,std::bind返回的是一个可调用对象,也就是std::function<>,在这里就是Functor,然后bind函数的第一个参数是函数地址,后面的参数就是传入函数的数据,这里bind传入了函数f,然后传入了f的参数是1,所以是合法的。这里bind还有些语法知识是需要了解的,如多个参数,传入占位符等。
这里有bind和function以及可调用对象的介绍
https://blog.csdn.net/BostonRayAlen/article/details/118335987

文章:c++使用function和bind的回调函数 中也许有你想要的答案,请看下吧
同时,你还可以查看手册:c++-bind<>() 中的内容

函数模板 bind 生成 f 的转发调用包装器。调用此包装器等价于以一些绑定到 args 的参数调用 f 。

参考:noerror.net/zh/cpp/utility/functional/bind