1.基本形
[capture](parameters)->return-type {body}
例如:
auto func = [](){ cout << "hello,world"; };
1. 「[ ]」 -- ラムダ式の始まりを示すキャプチャ指定子
- [ ] -- 変数をインターセプトしません
- [&] -- 外部スコープ内のすべての変数をインターセプトし、関数本体内の参照として使用します。
- [=] -- 外部スコープ内のすべての変数をインターセプトし、関数本体で使用するコピーを作成します。
- [=, &foo] -- 外部スコープ内のすべての変数をインターセプトし、関数本体で使用するコピーを作成しますが、foo 変数への参照を使用します。
- [bar] -- bar 変数をインターセプトし、他の変数をインターセプトせずに関数本体で使用するコピーをコピーします。
- [x, &y] -- x は値によって渡され、y は参照によって渡されます。
- [this] -- 現在のクラスの this ポインタをインターセプトします。& または = がすでに使用されている場合、このオプションはデフォルトで追加されます。
2. "( )" -- パラメーター リスト、つまり、この匿名ラムダ関数のパラメーター
[](const DMatch &m1, const DMatch &m2) { return m1.distance < m2.distance; }
3. "return-type" -- 戻り値の型。戻り値の型がない場合は省略します。
4. "{ }" -- 関数本体部分