Edocti Training
Modernes C++ – Fortgeschrittene Themen
Geplante Sessions
Beginn:
16.09.2026
, 3 Tage
€ 550
Anmelden
Fähigkeiten, die Sie lernen werden
Modernes C++ (C++11–C++26)
Templates & Metaprogrammierung
Multithreading & Nebenläufigkeit
Smart Pointers & Memory
Lambdas & Funktionales C++
STL & Ranges
Performance-Optimierung
CMake-Grundlagen
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