最終更新:2021-01-07 (木) 15:47:58 (1205d)  

C++/ラムダ式
Top / C++ / ラムダ式

https://ezoeryou.github.io/cpp-intro/#ラムダ式

構文

  • auto function = []( auto value ) { return value } ;
    [キャプチャリスト](パラメータリスト) mutable 例外仕様 属性 -> 戻り値の型 { 関数の本体 }
    []  // ラムダ導入子
    ()  // 引数リスト
    {}  // 複合文
    ;   // 文末

キャプチャー

  • ラムダ式から参照するオブジェクト
  • キャプチャで指定しない限り、ラムダ式が定義されているスコープで宣言されているオブジェクトを使用できません

コピーキャプチャー

  • 変数をコピーによってキャプチャーする。
  • [=]?

リファレンスキャプチャー

  • 変数をリファレンスによってキャプチャーする
  • [&]?

  • auto plus = [](int a, int b) { return a + b; };
    int result = plus(2, 3); // result == 5