1. 程式人生 > >std::bind 函式引數繫結

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