================ Lambda-Ausdrücke [TOC] ================ Ein Lambda-Ausdruck spezifiziert und erzeugt ein temporäres Funktionsobjekt. Der Ausdruck besteht aus drei Komponenten: * Zuerst kommt die in `[...]` eingefasste _capture_, die spezifiziert, welche lokal sichtbaren Variablen wie dem Lambda-Ausdruck zur Verfügung gestellt werden. Das geht - per Kopie, - per Referenz oder - per Initialisierung (ab C++14). * Dann folgt in Klammern die Parameterliste und ggf. weitere Spezifikationen zum Funktionsoperator und ggf. der Return-Typ. weitere Spezifikationen zum Funktionsoperator. Wenn der Return-Typ fehlt, wird implizit `auto` angenommen. * Schließlich folgt das in geschweifte Klammern gefasste _compound statement_. Aus jedem Lambda-Ausdruck wird implizit eine Klasse erzeugt, * mit Variablen für alles, was durch die _capture_ explizit oder implizit erfasst wird, wobei bei Referenzen entsprechend ein Referenztyp verwendet wird, * mit einem Konstruktor, der all die Variablen entsprechend der _capture_ konstruiert und * einem als `const` deklarierten Funktions-Operator mit der angegebenen Parameterliste, Return-Typ und _compound statement_. Aufgabe ======= Ersetzen Sie _IsEven_ durch einen äquivalenten Lambda-Ausdruck. Vorlage ======= :import: session06/step01/select-even2.cpp [fold] :navigate: up -> doc:index back -> doc:session06/page02 next -> doc:session06/page04