Lambda — anonymous function object.
Basic syntax:
1auto add = [](int a, int b) -> int {2 return a + b;3};45int result = add(3, 4); // 7
Capture modes:
1int x = 10;2auto f1 = [x]() { return x; }; // copy x3auto f2 = [&x]() { x += 1; }; // reference x4auto f3 = [=]() { return x; }; // copy all by value5auto f4 = [&]() { x += 1; }; // reference all6auto f5 = [x = x + 1]() { return x; }; // init capture
Mutable lambdas:
1auto counter = [count = 0]() mutable {2 return ++count;3};
Generic lambdas (C++14):
1auto add = [](auto a, auto b) { return a + b; };