Edocti
Fortgeschrittene technische Ausbildung für den modernen Softwareingenieur
Edocti Training

Modernes C++ – Fortgeschrittene Themen

Fortgeschritten
21 h
4.8 (498 Bewertungen)
Modernes C++ – Fortgeschrittene Themen

Fortgeschrittene Techniken: Weit verbreitete moderne C++-Features praxisnah erkunden.

Eintauchen in Templates, Lambdas, Smart Pointers, Multithreading und Metaprogrammierung mit prägnanten Beispielen.

Laufzeitkosten und Best Practices moderner Features im Produktionscode verstehen.

Praktische Erfahrung sammeln durch umfangreiche Labs und realistische Szenarien (~70% praktisch).

Wie dieser Kurs hilft: Modernes C++ effektiv in Projekten einsetzen.

Für wen: gedacht für Entwickler mit Vorerfahrung in C++ auf Einsteiger‑ bis mittlerem Niveau.

Am Ende wirst du modernes C++ sicher in verschiedensten Domänen einsetzen.

Curriculum

Elemente des modernen C++
  • User-defined literals
  • Improved string literals for non-trivial applications
  • Ranges & Views (C++20)
  • Coroutines (C++20)
  • Modules (C++20)
  • constexpr improvements (e.g., heap allocations, virtual calls)
  • Designated initializers (C++20)
  • Three-way comparison operator (<=>) (C++20)
  • Pattern matching (C++23 preview/ C++26)
  • Reflection & metaprogramming (C++26 preview)
Moderne Templates und Metaprogrammierung
  • Variadic templates
  • Fold expressions (C++17)
  • Template variables
  • Concepts & Constraints (C++20)
  • Class Template Argument Deduction (CTAD) (C++17)
  • Non-type template parameters (C++20/23)
  • Using auto in templates (C++14/17/20)
  • constexpr metaprogramming
  • Type traits enhancements (e.g., std::is_scoped_enum, std::remove_cvref)
Praktische funktionale Programmierung
  • Lambdas
  • Parameters and return types
  • Capture expressions
  • Mutable lambdas
  • Generic lambdas
  • How lambdas work
  • Initialized lambda captures
  • std::function and std::invoke
  • Higher-order functions
Multithreading und Parallelismus
  • Grundlagen: visibility, atomicity
  • Atomic operations in modern C++
  • std::atomic_ref (C++20)
  • std::jthread (scoped threads with auto-join)
  • Mutexes and locks
  • Condition variables: Nutzung und Praxis‑Szenarien
  • Häufige Stolperfallen in nebenläufigem Code
  • Asynchronous execution
  • futures / promises
  • packaged_task
  • std::async and policies
  • std::stop_token (C++20)
  • Parallel STL algorithms (C++17/20): z. B. transform_reduce, sort mit execution policies
Smart Pointers
  • unique_ptr
  • shared_ptr
  • weak_ptr
  • Advanced pitfalls and best practices
Verschiedenes zu modernem C++
  • rvalues and lvalues
  • lvalue vs. rvalue references
  • Perfect forwarding
  • Move constructors and move assignment
  • Type deduction refinements (decltype(auto), scoped enums)
  • Enhanced constexpr capabilities
  • std::span (C++20)
  • Ablösung älterer Features (std::bind, raw pointers in new code, old-style casts)
  • std::optional, std::variant, and std::any
Unter der Haube
  • Laufzeitkosten von C++‑Features
  • Virtual and pure virtual functions
  • Object layout and addresses under (multiple) inheritance
  • Performance cost of coroutines, concepts, modules
  • Memory model evolution (std::atomic, std::pmr allocators)
  • Inlining (automatic vs. link-time): Vor‑ und Nachteile
  • STL views & laziness

Optionale Module

Kurze Einführung in CMake (wenn Zeit bleibt)
  • Build a small project with CMake
  • Start a new project or migrate an existing one from scratch

Kursablauf

  • Teil 1: 09:00–10:30
  • Kaffeepause: 10:30–10:45
  • Teil 2: 10:45–12:15
  • Mittagspause: 12:15–13:15
  • Teil 3: 13:15–15:15
  • Kaffeepause: 15:15–15:30
  • Teil 4: 15:30–17:30