Zakres szkolenia
Szkolenie przeznaczone dla programistów C++ chcących poszerzyć swoje wiadomości dotyczące tworzenia profesjonalnego i niezawodnego kodu.
Szczegółowo omawiane są między innymi zagadnienia programowania generycznego (szablony funkcji i klas, klasy cech i wytycznych, variadic templates) i zarządzania zasobami (pamięcią) w C++ - idiom RAII oraz inteligentne wskaźniki.
Uczestnicy poznają praktyczne wykorzystanie metaprogramowania z użyciem szablonów oraz wyrażeń i funkcji constexpr.
Plan szkolenia
Move semantics
- l-value vs. r-value
- Referencje do r-value - T&&
- Implementacja semantyki przenoszenia (move semantics) w klasach
- Uniwersalne referencje - reference collapsing
- Perfect forwarding
Zapobieganie wyciekom zasobów - technika RAII
- Gwarancje odporności kodu na wyjątki
- Idiom RAII (Resource Aquisition Is Initialization)
Inteligentne wskaźniki
- Inteligentne wskaźniki - wstęp
- std::unique_ptr
- std::shared_ptr
- std::weak_ptr
- Dealokatory użytkownika
Programowanie generyczne - szablony
- Wprowadzenie do programowania generycznego
- Szablony funkcji i klas
- Parametry szablonów
- Specjalizacja szablonów
- Programowanie generyczne z wykorzystaniem klas cech i wytycznych
- Cechowanie typów - biblioteka <type_traits>
- Statyczne asercje - praktyczne wykorzystanie
- Technika SFINAE - optymalizacja implementacji w zależności od typów danych
Variadic templates
- Szablony o dowolnej liczbie parametrów - parameter pack
- Variadic templates - praktyczne wykorzystanie
- Metaprogramowanie z wykorzystaniem krotek - std::tuple
- Operacje na krotkach z wykorzystaniem sekwencji indeksów
Wyrażenia stałe - constexpr
- Wyrażenia stałe w C++11/14
- Praktyczne wykorzystanie constexpr - tworzenie struktur danych na etapie kompilacji
3 dni po 8 godzin lekcyjnych