it-praxisportal/courses/cpp/12_lambdas_und_moderne_cpp20_features
2026-09-12 13:26:06 +02:00
..
aufgabe.cpp IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00
index.html Branding-Update für it-praxisportal.de: Neuer Hero-Bereich, SVG-Favicon, OpenGraph-Metadaten und Plattform-Titel 2026-09-12 13:26:06 +02:00
musterloesung.cpp IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00
README.md IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00
test_aufgabe.cpp IHK AP1 & AP2 (FISI) Crashkurse: Vollständige Lernfeld-Module (LF 1-12), 150 IHK-Prüfungsfragen, interaktive Prüfungs-Engine und Multi-Sprachen-Erweiterung (PDFs excluded) 2026-09-10 07:43:39 +02:00

C++ 12: Lambdas, Structured Binding & std::optional

In diesem Modul erforschst du die modernen Ausdrucksmittel von C++20: Funktionale Programmierung mit Lambdas, Typsicherheit durch std::optional und elegantes Entpacken mit Structured Binding.


🎯 Lernziele

  1. Lambda Expressions: Syntax [capture](params) -> ret { body } sicher beherrschen.
  2. Capture Semantics: Unterschied zwischen Wert- ([=]), Referenz- ([&]) und selektivem Capture verstehen.
  3. Structured Binding: Daten aus Tuples, Pairs und Structs ohne Boilerplate entpacken (auto [a, b]).
  4. Fehlersicherheit: std::optional<T> für abwesende Werte nutzen (has_value(), value_or()).
  5. Event Callbacks: Ereignisverarbeitung mit std::function und generischen Lambdas.

💡 Schlüsselkonzepte

1. Lambda-Funktionen & Closures

int factor = 3;
auto multiply = [factor](int x) { return x * factor; };

2. Structured Binding

struct Point { double x; double y; };
Point p{10.5, 20.0};
auto [px, py] = p; // px = 10.5, py = 20.0

3. Safe Querying mit std::optional

std::optional<int> safe_divide(int a, int b) {
    if (b == 0) return std::nullopt;
    return a / b;
}

🚀 Aufgaben in aufgabe.cpp

  • TODO 1: find_user_by_id mit std::optional<User>
  • TODO 2: unpack_metric_pair mit Structured Binding
  • TODO 3: Stateful Counting Lambda
  • TODO 4: EventDispatcher mit std::function
  • TODO 5: process_pipeline mit Lambda-Transformationen