capypad
0 Tage Serie
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
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.