2016年5月8日 星期日

C++11 採用 Lambda 作為回叫函數的用法

先看一個簡單的函數定義,這函數須要一個函數指標作為參數

// 須傳入指向函數的指標
int ff1( int(*fp)(int) )
{
  return fp(5);
}

可以如下使用沒有問題

// 符合 ff1 所要求的規格
int Backf(int i)
{
  return i * 5;
}

int main()
{
  // 一般用法
  cout << ff1(Backf) << endl;

  // 採用 Lambda 的用法
  cout << ff1([](int c)->int {return c * 2; }) << endl;

  return 0;
}