C++ – Metaprogramování a výkonné aplikace (CPP5)
Programování, C, C++
Od C++20 máme k dispozici koncepty, které zásadním způsobem ulehčují používání šablon a typových argumentů. Je to další zásadní krok pro embedded software a náročné aplikace, kdy se upouští od používání virtuálních metod a klasického objektově orientovaného programování ve prospěch vysokého výkonu a předvídatelných latencí.
Ne všichni budete moci od začátku využívat C++26, které obohacuje metaprogramování o reflexi v době kompilace. Ta vám časem umožní spoustu věcí vyjádřit stručněji a srozumitelněji. Na druhou stranu C++ nabízí spoustu knihovních nástrojů, kterými se můžete inspirovat a vytvořit si vlastní implementaci.
Kurz je od základu postavený pro standardy C++20, C++23 a C++26. Na požádání lze upravit pro starší verzi C++.
TOTO ŠKOLENÍ VÁM POMŮŽE:
- Uvědomit si možnosti optimalizací při kompilaci kódu v C++
- Seznámit se s možnostmi metaprogramování v nejnovějších verzích C++
- Vyzkoušet si práci se šablonami na mnoho různých způsobů
- Porozumět fungování spouštění C++ kódu v době kompilace
KDO BY SE MĚL KURZU ZÚČASTNIT?
- Zkušení vývojáři v C++, kteří chtějí aktualizovat své znalosti
- Vývojáři v C++, kteří se chtějí naučit pracovat s šablonami, koncepty a constexpr
- Zájemci o průmyslové programovací jazyky a jejich možnosti a omezení
KDE A KDY KURZ PROBÍHÁ?
Privátní školení
Tento kurz není vypisován v otevřených termínech pro veřejnost.
Realizujeme jej výhradně jako školení na klíč, pro které může být zde uvedená osnova inspirací. Finální obsah, časový rozsah, termíny i forma realizace jsou vždy přizpůsobeny konkrétním požadavkům zadavatele. Školit můžeme také v angličtině.
Poptat kurz na míru
Náplň kurzu:
Skrýt detaily
-
Metaprogramování v C++20 a C++23
-
Tvorba výkonného obecného kódu
-
Umožnění maximální optimalizace
-
Přehlednější a srozumitelnější než dříve
-
Programování pomocí šablon
-
Parametrické datové struktury
-
Obecné algoritmy a pomocné struktury
-
Statická typová kontrola a
safety
-
Specializace šablon
-
Zvláštní zacházení s konkrétními případy
-
Specializace pomocí tagování a policy
-
Metafunkce a výpočty v době kompilace
-
Vymezení typových parametrů
-
Dokumentace požadavků na typy
-
SFINAE a programování pomocí type traits
-
Explicitní vymezení a
concepts
-
Pohodlnější práce s šablonami
-
Zkrácené šablony funkcí
-
Deducing
this a perfect forwarding
-
CTAD a vynechávání typových parametrů
-
Kombinace OOP a šablon
-
Využití dědičnosti bez virtuálních metod
-
Doplňování funkcionality pomocí CRTP
-
Vymazání typů pomocí šablon a dědičnosti
-
Variadické šablony
-
Proměnný počet parametrů
-
Výrazy založené na sadách parametrů
-
Techniky založené na vícenásobné dědičnosti
-
Knihovny v hlavičkových souborech
-
Moderní význam keywordu
inline
-
ODR a jak to všechno funguje
-
Kombinace se šablonami a třídami
-
Metaprogramování mimo šablony
-
Vyhodnocování v době kompilace
-
Klíčová slova
constexpr a consteval
-
Podmínky
if constexpr a if consteval
-
Použití
static_assert()
-
Kombinace
constexpr a šablon
-
Větvení podle typu v době kompilace
-
Zásadní zjednodušení některých šablon
-
Šablony
constexpr funkcí a proměnných
-
Design šablonových knihoven
-
Metody nebo globální funkce
-
vyhledávání podle argumentu (ADL)
-
Bod přizpůsobení (customization point)
-
Implementace univerzálních šablon
-
Specializované chytré ukazatele
-
Vlastní kontejnerové typy
-
Datové struktury bez dynamické alokace
-
Bonus: Reflexe v C++26
-
Informace o typech a proměnných
-
Vkládání informací do kódu
-
Praktická aplikace reflexe
-
Předpokládané znalosti:
-
Dobrá znalost programování v jazyce C++
-
Doporučený předchozí kurz:
-
C++ – Praktické programování pro pokročilé (CPP2)
-
Doporučený následný kurz:
-
C++ – Návrhové vzory a idiomy (CPP3)
-
Časový rozvrh:
-
3 dny (9:00-17:00)
Ukázka prostředí a výuky
Co přináší moderní C++?Ukážeme si, jak nové standardy mění každodenní práci v C++: `std::expected` pro ošetření chyb bez výjimek, `std::print` i statickou reflexi z C++26. Naučíte se psát stručnější a bezpečnější kód, který je přitom stejně rychlý jako dřív.
Jak vypadá prostředí pro prezenční IT kurzy?Školení pořádáme ve vlastních učebnách vybavených moderní výpočetní technikou pro každého účastníka a velkoplošnou projekcí. Každá stanice disponuje výkonným počítačem pro bezproblémové praktické procvičování a prostředí podporuje klid a pohodovou atmosféru během školení.
Potřebuji si na prezenční kurz IT přinést vlastní počítač?Naše učebny jsou kompletně vybavené, takže vlastní notebook nepotřebujete. Na místě na Vás čeká připravený moderní počítač se vším potřebným hardwarem a softwarem pro dané školení.
Obdržíte po absolvování IT kurzu oficiální osvědčení?Ano, po úspěšném dokončení školení získáte oficiální certifikát ICT Pro potvrzující vaše absolvování a získané technické znalosti. Můžete jej využít pro doložení kvalifikace nebo přiložit ke svému profesnímu profilu.
Kde najdete naše školicí centrum v Brně?Prostory školicího centra ICT Pro s.r.o. se nachází v 1. patře budovy COMGUARD na adrese Sochorova 38 v Brně. Místo na rozhraní Žabovřesk a Komína je snadno dostupné autem i městskou hromadnou dopravou.
Kde najdete naše školicí centrum v Praze?Prostory školicího centra ICT Pro s.r.o. se nachází v 1. poschodí budovy Opatov Park na adrese Líbalova 1, Praha 11 – Chodov. Místo nabízí pohodlné zázemí pro vaše vzdělávání s výbornou dostupností.
Jaké zázemí a občerstvení je pro vás připraveno během přestávek?V našich školicích centrech máte k dispozici plně vybavenou kuchyňku pro pohodlný odpočinek během přestávek. Součástí zázemí je kávovar, mikrovlnná trouba, varná konvice i široký výběr nápojů a občerstvení.
Jaké nápojové osvěžení je pro vás připraveno na kurzu?Během celého školení je vám k dispozici nápojový koutek s kávovarem, čaji, sirupy a vodou. Můžete si tak kdykoliv během přestávky dopřát kávu nebo jiný nápoj podle chuti.
Jaké drobné občerstvení je pro vás v rámci kurzů připraveno?Během přestávek na kurzech je účastníkům k dispozici drobné sladké občerstvení, pečivo a sirupy pro namíchání vlastní limetkové či ovocné limonády. Nechybí ani čerstvá voda a talířky pro pohodlné servírování.
Mám si na školení ICT Pro brát svačinu?Nemusíte. Během přestávek je pro vás připraven bohatý výběr slaných pochutin i sladkých sušenek a tyčinek. Energie na celodenní soustředění je tak vždy po ruce přímo v prostorách školicího centra.
Můžete trávit přestávky během školení na čerstvém vzduchu?Ano, v našem školicím centru je vám k dispozici venkovní terasa. Během přestávek mezi bloky výuky si tak můžete odpočinout na čerstvém vzduchu v příjemném prostředí obklopeném zelení.
Kde si můžete odpočinout během přestávek na školení?V našem školicím centru máte k dispozici prostornou venkovní terasu s posezením. Během přestávek mezi bloky výuky si tak můžete odpočinout a načerpat energii na čerstvém vzduchu.