std::bind是c++11 ,绑定参数 返回新的函数指针。头文件#include
1.绑定参数,利用占为符
int Func(int x, int y)
{
return x + y;
}
int main()
{
//bf1把拥有两个参数的普通函数的第一个参数绑定为10,生成了一个新的一个参数的函数
auto bf1 = std::bind(Func, 10, std::placeholders::_1);
cout< system("pause");
return 0;
}
实际传入的参数与绑定时占为符关联,std::placeholders::_1就代表放置第一个传入的参数
2.绑定类的实例
相当于用类的实例调用
class A
{
public:
int Func(int x, int y)
{
return x + y;
}
};
int main()
{
A a;
//bf2把一个类成员函数绑定了类对象,生成了一个像普通函数一样的新的可调用实体
auto bf2 = std::bind(&A::Func, a, std::placeholders::_1, std::placeholders::_2);
cout << bf2(10, 20); ///< same as a.Func(10, 20)
system("pause");
return 0;
}