std::bind 可以将一个多参数的函数转化为一个少参数 或者无参数函数,上面的bind之后变为func(int value,1,5),函数签名是bool (int)了 而非 bool(int,int,int)
1.如果需要把一个类中的函数转换为全局函数签名,则std::bind(func,this);
2.静态函数可以直接绑定
bool fun(int value, int min, int max)
{
return value > min && value < max;
}
std::none_of(v.begin(),v.end(),std::bind(fun, std::placeholders::_1, 1, 5));
3.类成员函数
Spread myCell(123);
auto methodPtr=&Spread::getValue();
cout<<(myCell.*methodPtr)()<<endl;
4.线程绑定
thread t{&Spread::getValue,&myCell};
t.join();