Курс рассчитан на разработчиков, уже знакомых с основами C++. Цель программы — изучение современных возможностей языка и освоение инструментов для разработки эффективных и масштабируемых приложений.

Основные темы курса:

  • Современный C++: стандарты и лучшие практики

    • C++11–23,

    • Core Guidelines,

    • auto,

    • constexpr,

    • consteval,

    • constinit,

    • structured bindings,

    • std::span,

    • std::string_view,

    • designated initializers,

    • Rule of Zero/Three/Five

  • Шаблоны и метапрограммирование

    • variadic templates,

    • fold expressions,

    • concepts,

    • type_traits,

    • SFINAE → Concepts

  • Умные указатели и управление ресурсами

    • unique_ptr,

    • shared_ptr,

    • weak_ptr,

    • optional,

    • variant,

    • any,

    • RAII

  • Многопоточность и конкурентность

    • thread,

    • jthread,

    • мьютексы,

    • атомики,

    • future,

    • async

  • Корутины (C++20)

    • co_await,

    • co_yield,

    • generator,

    • custom awaitables

  • Модули C++

  • Метапрограммирование и рефлексия

    • CRTP,

    • policy-based design,

    • constexpr,

    • reflection (exp)

  • Производительность и оптимизации

    • move semantics,

    • SIMD,

    • cache,

    • профилирование

Практика:
Каждый блок курса сопровождается лабораторными работами: написание алгоритмов, реализация структур данных, параллельная обработка массивов, разработка мини-проектов. Итогом станет создание консольного приложения с многопоточной обработкой данных.