`std::bind` 是 C++ 中用于创建可调用对象的通用绑定工具。它支持占位符(如 `_1`、`_2`)实现参数延迟绑定,同时也允许直接传入具体值作为固定参数。然而,标准库并未提供直接提取已绑定固定参数的接口。在实际开发中,若需获取这些预设值,通常需借助自定义包装器、类型擦除或反射机制等间接手段;部分场景下还可通过函数对象的成员变量访问,但前提是该对象设计时已预留相应接口。
1、 首先定义一个函数,接收三个参数,其中第三个参数将作为该函数的返回值。
2、 接下来,可调用std::bind将前述函数进行绑定,其中第三个参数传入具体数值;此时std::bind返回一个std::function类型的对象,可直接使用该对象执行绑定后的函数调用。
3、 输出std::function对象的返回值,该值即为std::bind调用时传入的第三个参数。
4、 若需提升函数通用性,可采用如下函数模板定义。
5、 接着调用std::bind,传入上一步生成的int类型函数模板,并将第三个参数设为300。
6、 输出由std::bind生成的std::function对象,该对象所封装的值与std::bind调用时传入的第三个参数完全相同。
