Metaprogramowanie w języku C++
Czas trwania szkolenia:3 dni (24h)
Kod kursu:CPP/META
Poziom zaawansowania:
O szkoleniu Metaprogramowanie w języku C++
W cenie otrzymasz:
- Materiały szkoleniowe
- Certyfikat ukończenia szkolenia
- W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Dla kogo?
- Zaawansowanych programistów programujących w języku C++
- Osób praktycznie stosujących system szablonów we własnych projektach
Wymagania
- Znajomość koncepcji związanych z programowaniem w języku C++ na poziomie zaawansowanym
- Posługiwanie się dowolnym środowiskiem programistycznym, które pozwala na tworzenie projektów w nowoczesnym C++
Zalety
- Szkolenie dostosowane do zespołów posługujących się różnymi standardami C++ - od C++98 do C++20
- Przykłady bazują na elementach biblioteki standardowej C++
- Demonstrujemy ogólnodostępne rozwiązania, które uzupełniają braki w starszych standardach C++
- Warsztaty i przykłady pokazują praktyczne rozwiązania, które można zastosować wprost lub zaadaptować do swoich potrzeb
- Kładziemy duży nacisk na interakcję pomiędzy uczestnikami a trenerem, który na żywo tworzy dodatkowe przykłady w odpowiedzi na pytania uczestników
Cele szkolenia
- Zapoznanie się ze sposobem działania mechanizmu szablonów w C++
- Wykorzystanie mechanizmu szablonów do przerzucenia części obliczeń z czasu wykonania do czasu kompilacji
- Poznanie innych technik programowania czasu kompilacji
- Nauka ograniczania możliwości wywołania funkcji, metafunkcji i szablonów klas do typów spełniających określone wymagania
Program
Szablony funkcji, klas i zmiennych
- Składnia
- Sposób działania
- Dedukcja typów parametrów
- Specjalizacje
- Szablony o zmiennej liczbie parametrów
Wyrażenia lambda
Dedukcja typów przez kompilator
- Zmiennych
- Funkcji
- Klas
- Uniwersalne referencje
Wyrażenia stałe (constexpr)
Polimorfizm
- Dynamiczny
- Statyczny
- CRTP
- Policy Based Design
Metaprogramowanie szablonowe
- Meta-funkcje
- Szablony wyrażeń
- Cechy typów
- SFINAE
- Podstawy koncepcji C++20
Biblioteka standardowa
- Algorytmy
- Iteratory
- Iteratory w ujęciu metaprogramowania