c++中std::funtion和std::bind
时间: 2023-11-16 09:54:35 浏览: 183
C++11中lambda、std::function和std:bind详解
5星 · 资源好评率100%
std::function和std::bind都是C++11中引入的函数对象(function object)。
std::function是一个通用的函数封装,可以用于存储、复制、调用任何可调用对象(函数、lambda表达式、成员函数指针等),并且可以通过模板参数指定函数的返回值和参数类型。
std::bind则是一个函数适配器,可以将一个可调用对象和其参数绑定起来,形成一个新的可调用对象。通过std::bind可以实现对函数的某些参数进行固定,从而得到一个新的函数对象。
举个例子,假设有一个函数int add(int a, int b),我们可以使用std::bind将其第一个参数绑定为5,得到一个新的函数对象auto f = std::bind(add, 5, std::placeholders::_1),这个新的函数对象可以接受一个int类型的参数作为第二个参数,并返回5加上这个参数的结果。
阅读全文