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

C++ Modern – Avansat

Avansat
21 h
4.8 (498 recenzii)

Sesiuni programate

Începe: 16.09.2026 , 3 zile
Live online Confirmat RO ● Instructor-led
C++ Modern – Avansat

Tehnici avansate: Aprofundează caracteristicile esențiale din C++ modern prin exerciții practice intensive.

Explorează în detaliu concepte precum templates, lambdas, smart pointers, multithreading și metaprogramare, susținute de exemple clare și aplicabile.

Înțelege costurile de execuție (runtime) și aplică bunele practici pentru scrierea unui cod de producție eficient.

Dobândești experiență practică: Aproximativ 70% din curs este dedicat laboratoarelor complexe și scenariilor din lumea reală.

Cum te ajută acest curs: Vei dobândi încrederea necesară pentru a implementa eficient standardele C++ modern în proiecte profesionale.

Cui i se adresează: Programatorilor cu un nivel începător sau intermediar de C++ care doresc să atingă nivelul de expert.

La final vei folosi cu încredere funcționalitățile avansate de C++ în diverse medii tehnologice.

Abilități dobândite

C++ Modern (C++11–C++26) Templates & Metaprogramare Multithreading & Concurență Smart Pointers & Memorie Lambdas & C++ Funcțional STL & Ranges Optimizare de Performanță Bazele CMake

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

Ai participat la acest curs?

Opinia ta este foarte importantă pentru noi. Spune-ne cum a fost experiența ta și ajută-ne să îmbunătățim acest curs pentru viitorii participanți.

Ofera feedback

Vrei să afli mai multe? Suntem aici să te ajutăm!

Sau scrie-ne direct la training@edocti.com.