Šablony a obecné programování
Pište skutečně obecné, opakovaně použitelné abstrakce s nulovou režií pomocí šablon, konceptů a programování v době kompilace.
Základy šablony
Šablony funkcí a odpočet typu
Naučte se psát funkce, které fungují s jakýmkoli typem. Pochopte dedukci argumentů šablony, netypové parametry a proč šablony žijí v záhlaví.
Class Templates & CTAD
Vytvářejte obecné datové struktury pomocí šablon tříd. Pochopte definice členů, výchozí argumenty a to, jak vám CTAD C++17 umožňuje vynechat argumenty šablony.
Pokročilé šablony
Specializace šablon a odeslání štítků
Osvojte si plnou a částečnou specializaci, naučte se, kdy preferovat přetížení, a objevte odesílání tagů a if constexpr jako alternativy pro větvení v době kompilace.
Variadic Templates & Fold Expressions
Handle any number of template arguments with parameter packs. Master fold expressions for elegant, recursive-free pack processing.
SFINAE, Type Traits & enable_if
Understand the Substitution Failure Is Not An Error principle, use type traits for compile-time introspection, and constrain templates with enable_if.
Modern Generic Programming
C++20 Concepts & Constraints
Definujte přesné požadavky na argumenty šablony pomocí konceptů. Napište čistší generický kód s požadovanými klauzulemi, zkrácenými šablonami funkcí a koncepty standardních knihoven.
constexpr, consteval & Compile-Time Programming
Move computation from runtime to compile time using constexpr, consteval, and constinit. Build lookup tables, validate configurations, and use constexpr containers.
Šablony Metaprogramovací vzory
Zvládněte pokročilé vzory šablon: CRTP pro statický polymorfismus, návrh založený na zásadách pro flexibilní kompozici, mazání typů pro generika za běhu a pokyny, kdy používat šablony vs virtuální odesílání.