[](){} -- C++ のラムダ関数 (匿名関数)

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. "{ }" -- 関数本体部分

おすすめ

転載: blog.csdn.net/weixin_44884561/article/details/128664564