C++ – Update znalostí ze starších verzí na C++20/23/26 (CPPU)
Programování, C, C++
Moderní C++ přináší obrovský posun v možnostech, jak psát efektivní, elegantní a čitelný kód. V tomto kurzu začneme od představení příjemných drobností a postupně se dostaneme k zásadnějším změnám. Od změny přístupu k datovým strukturám přes novinky v paralelním a asychronním programování přes práci se šablonami a koncepty a výpočty v době kompilace až po modularitu a optimalizaci především embedded software do prostředí citlivé na latence.
Součástí kurzu je řada cvičení zaměřených na refaktoring staršího kódu do moderní podoby a porovnání přínosu jednotlivých přístupů. Kurz je zaměřený především na zkušené vývojáře, kteří chtějí zefektivnit a zpřehlednit svůj kód, osvojit si moderní idiomy a přejít od klasického C++ k modernímu stylu psaní.
TOTO ŠKOLENÍ VÁM POMŮŽE:
- Osvojit si nové idiomy C++20/23 a připravit se na C++26
- Zefektivnit a zjednodušit kód pomocí
ranges, views a std::span
- Zlepšit bezpečnost a robustnost kódu pomocí
concepts, std::expected a constexpr
- Optimalizovat výkon a latenci pro embedded a výkonnostně citlivé aplikace
- Navrhovat a testovat asynchronní a souběžné řešení s
korutinami, jthread a futures
- Refaktorovat starší kód na moderní šablony, modularitu a bezalokovací
polymorfismus
KDO BY SE MĚL KURZU ZÚČASTNIT?
- Zkušení C++ vývojáři
- Vývojáři embedded systémů
- Výkonní a systémoví inženýři
- Backendoví a síťoví vývojáři
- Architekti softwaru a technickí vedoucí
KDE A KDY KURZ PROBÍHÁ?
Kontaktujte nás
Privátní školení
Odemkněte potenciál svých zaměstnanců. Každé školení z naší nabídky přizpůsobíme konkrétním cílům i lidem.
Potřebujete školení přímo u vás ve firmě, nebo upravit obsah a délku na míru? ICT Pro je ideální řešení. Školit můžeme také v angličtině.
Poptat kurz na míru
Náplň kurzu:
Skrýt detaily
-
Co přináší nové verze C++
-
Nástroje pro větší čitelnost a spolehlivost
-
Zlepšení výkonu a latence v embedded světě
-
Nástroje C++20 a C++23, očekávání od C++26
-
Různá drobná vylepšení
-
Formátovaný výstup a
std::println
-
Změny v inicializaci hodnot a proměnných
-
Spaceship a strong či weak pořadí
-
Zajímavé specializované nástroje
-
Více hodnot při indexování
-
Počítání se
std::lerp
-
Endianess a byteswap
-
Práce s adresářovou strukturou
-
Procházení adresářové struktury
-
Zásahy do souborů a adresářů
-
Interakce se zbytkem standardní knihovny
-
Práce s kusy polí a řetězců
-
Souvislé sekvence a
std::span
-
Předávání řetězců a
std::string_view
-
Výhody a rizika pohledů do paměti
-
Vylepšení práce s kontejnery
-
Mazání prvků pomocí
std::erase
-
Rozebírání přes structured bindings
-
Opouštíme přímé používání iterátorů
-
Jak fungují ranges a views
-
Vztah ranges, views a kontejnerů
-
Co je špatně na iterátorech v C++
-
Na co si dávat pozor u ranges
-
Nástroje pro filtrování a transformaci
-
Views jako líné iterátory
-
Řetězení operací nad views
-
Jaké views máme k dispozici
-
Moderní práce s vlákny
-
Futures a promises
-
Práce s
std::jthread
-
Použití
std::async
-
Asynchronní volání přes callbacky
-
Předávání callbacků k událostem
-
Skládání sekvencí callbacků
-
Řešení přes korutiny
-
Korutiny a asynchronní I/O
-
Motivace práce s korutinami
-
Externí knihovny s plánovačem
-
Potenciální dopady v embedded světě
-
Asynchronní síťová komunikace
-
Komunikace pomocí TCP/IP
-
HTTP server a klient
-
Souběh s ostatními operacemi
-
Výpočetní vlákna a korutiny
-
Korutiny mají řešit I/O
-
CPU bound versus I/O bound
-
Kombinace vláken a korutin
-
Šablony a jejich specializace
-
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ů a
std::any
-
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
-
Klíčová slova
constexpr, consteval a constinit
-
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
-
Modularita
-
Hlavičkové soubory a
#pragma once
-
Vlastní moduly a úprava ODR
-
Standardní knihovna ve formě modulu
-
Lambdy a jejich vylepšení
-
Implicitní a explicitní šablony
-
Lambdy s
constexpr a consteval
-
Implicitní chování bezstavové lambdy
-
Řízení chyb bez použití výjimek
-
Návratová hodnota
std::expected
-
Práce se
std::optional
-
Řetězení monadických operací
-
Běhový polymorfismus bez heapu
-
Polymorfní typ
std::variant
-
Aplikace overloadů přes
‘std::visit’
-
Od lambda šablon k overloaded pattern
-
Předpokládané znalosti:
-
Znalost jazyka 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:
-
5 dní (9:00-17:00)
Vybrané zákaznické reference
RETIA, a.s., Václav Š.
C++ – Update znalostí ze starších verzí na C++20/23/26 (
CPPU)
"Celkový dojem : velmi dobrý
Co bych změnil: více témat
Co mě chybělo: Modernější přístup k programování grafiky -SD2 je pouze základ
Co mě zaujalo: std:span, views, kontejnery. Obecně zaměření se na výkonový přínos nového C++
Co bylo přínosem: Low level přístup"
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.