C++のラムダ式の使い方

C++では、ラムダ式を使って匿名関数が作れます。文法は以下の通り:

キャプチャされた値 -> 戻り型の { 関数本体 }

捕獲リストは空でもよい。加えて、パラメーター リストと戻り値の型は省略でき、関数本体は複合文または単一の式である。

ラムダ式を使う際の例を紹介します:

  1. キャプチャなし、引数なし、戻り値なしのラムダ式
[]() {
    // 函数体
}
  1. 外部変数をキャプチャーでき、引数があり、戻り値型のLambda式
int x = 5;
auto func = [x](int y) -> int {
    return x + y;
};
int result = func(3); // result = 8
  1. 外部変数をキャプチャし、引数リストがなく、戻り値の型を導出するラムダ式
int x = 5;
auto func = [x]() {
    return x * 2;
};
int result = func(); // result = 10
  1. 外部参照変数・引数リスト・返却型推論をもつラムダ式
int x = 5;
auto func = [&x](int y) {
    x += y;
};
func(3); // x = 8

ラムダ式は関数オブジェクトとして扱うことができ、直接呼び出すことも、他の関数へ引数として渡すこともできることに留意すべきである。

bannerAds