std::bind 函数参数绑定

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();

猜你喜欢

转载自blog.csdn.net/shujianlove0/article/details/84564311
今日推荐