Přeskočit na obsah
Modul 4

Š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

  1. Š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í.

  2. 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

  1. 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.

  2. Variadic Templates & Fold Expressions

    Handle any number of template arguments with parameter packs. Master fold expressions for elegant, recursive-free pack processing.

  3. 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

  1. 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.

  2. 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.

  3. Š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í.