Edocti
Training tehnic avansat pentru inginerul software de mâine
Edocti Training

C++ Modern – Avansat

Avansat
21 h
4.8 (498 recenzii)
C++ Modern – Avansat

Tehnici avansate: Explorezi caracteristici moderne C++ foarte folosite, prin practică hands‑on.

Intri în templates, lambdas, smart pointers, multithreading și metaprogramare cu exemple concise.

Înțelegi costurile la runtime și bunele practici pentru utilizarea corectă a feature‑urilor moderne.

Dobândești experiență practică prin laboratoare și scenarii reale (~70% hands‑on).

Cum te ajută acest curs: aplici eficient C++ modern în proiecte profesionale.

Cui i se adresează: conceput pentru dezvoltatori cu cunoștințe anterioare de C++ la nivel începător–intermediar.

La final vei folosi cu încredere C++ modern avansat în diverse domenii.

Curriculum

Elemente de C++ modern
  • 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)
Șabloane moderne și metaprogramare
  • 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)
Programare funcțională practică
  • 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 și paralelism
  • Bazele: visibility, atomicity
  • Atomic operations in modern C++
  • std::atomic_ref (C++20)
  • std::jthread (scoped threads with auto-join)
  • Mutexes and locks
  • Condition variables: utilizare și scenarii din lumea reală
  • Capcane frecvente în cod concurent
  • Asynchronous execution
  • futures / promises
  • packaged_task
  • std::async and policies
  • std::stop_token (C++20)
  • Parallel STL algorithms (C++17/20): e.g., transform_reduce, sort with execution policies
Smart pointers
  • unique_ptr
  • shared_ptr
  • weak_ptr
  • Advanced pitfalls and best practices
Diverse pentru C++ modern
  • 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)
  • Deprecarea caracteristicilor mai vechi (std::bind, raw pointers in new code, old-style casts)
  • std::optional, std::variant, and std::any
Sub capotă
  • Runtime cost of 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): pros and cons
  • STL views & laziness

Module opționale

Introducere concisă în CMake (dacă timpul permite)
  • Build a small project with CMake
  • Start a new project or migrate an existing one from scratch

Structura zilei de curs

  • Partea 1: 09:00–10:30
  • Pauză: 10:30–10:45
  • Partea 2: 10:45–12:15
  • Prânz: 12:15–13:15
  • Partea 3: 13:15–15:15
  • Pauză: 15:15–15:30
  • Partea 4: 15:30–17:30