C++のラムダ式の使い方
C++では、ラムダ式を使って匿名関数が作れます。文法は以下の通り:
キャプチャされた値 -> 戻り型の { 関数本体 }
捕獲リストは空でもよい。加えて、パラメーター リストと戻り値の型は省略でき、関数本体は複合文または単一の式である。
ラムダ式を使う際の例を紹介します:
- キャプチャなし、引数なし、戻り値なしのラムダ式
[]() {
// 函数体
}
- 外部変数をキャプチャーでき、引数があり、戻り値型のLambda式
int x = 5;
auto func = [x](int y) -> int {
return x + y;
};
int result = func(3); // result = 8
- 外部変数をキャプチャし、引数リストがなく、戻り値の型を導出するラムダ式
int x = 5;
auto func = [x]() {
return x * 2;
};
int result = func(); // result = 10
- 外部参照変数・引数リスト・返却型推論をもつラムダ式
int x = 5;
auto func = [&x](int y) {
x += y;
};
func(3); // x = 8
ラムダ式は関数オブジェクトとして扱うことができ、直接呼び出すことも、他の関数へ引数として渡すこともできることに留意すべきである。