cpp / intermediate
Snippet
Lambda-Ausdrücke und Capturing
Lambdas sind anonyme Funktionen, die inline definiert werden können. Die Capture-Klausel '[]' ermöglicht es dem Lambda, auf Variablen aus dem umgebenden Bereich zuzugreifen, entweder als Kopie oder als Referenz.
snippet.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>#include <vector>#include <algorithm>int main() {int threshold = 10;auto isAbove = [threshold](int val) {return val > threshold;};std::cout << std::boolalpha << isAbove(15) << std::endl;return 0;}
Erklärung
1
[threshold](int val)
Erfasst die Variable 'threshold' als Wert (Kopie) und definiert einen Integer-Parameter.
2
auto isAbove =
Speichert das Lambda in einer Variablen mit 'auto', da Lambdas eindeutige, vom Compiler generierte Typen haben.