Șabloane și programare generică
Scrieți abstracții cu adevărat generice, reutilizabile, fără costuri generale, folosind șabloane, concepte și programare în timp de compilare.
Fundamentele șablonului
Șabloane de funcție și deducere de tip
Aflați cum să scrieți funcții care funcționează cu orice tip. Înțelegeți deducerea argumentelor șablonului, parametrii non-tip și de ce șabloanele se află în anteturi.
Class Templates & CTAD
Build generic data structures with class templates. Understand member definitions, default arguments, and how C++17's CTAD lets you omit template arguments.
Șabloane avansate
Specializarea șablonului și expedierea etichetelor
Stăpâniți specializarea completă și parțială, aflați când să preferați supraîncărcarea și descoperiți trimiterea etichetelor și dacă constexpr ca alternative pentru ramificarea în timp de compilare.
Șabloane variadice și expresii pliate
Gestionați orice număr de argumente șablon cu pachete de parametri. Master fold expresii pentru procesare elegantă, fără recursive a pachetelor.
SFINAE, Type Traits & enable_if
Înțelegeți principiul Eșecul substituției nu este o eroare, utilizați trăsături de tip pentru introspecția în timp de compilare și constrângeți șabloanele cu enable_if.
Programare generică modernă
C++20 Concepte și constrângeri
Definiți cerințe precise privind argumentele șablon folosind concepte. Scrieți un cod generic mai curat, cu clauze requires, șabloane de funcții abreviate și concepte standard de bibliotecă.
constexpr, consteval și programare în timp de compilare
Mutați calculul din timpul de execuție în timpul de compilare folosind constexpr, consteval și constinit. Creați tabele de căutare, validați configurațiile și utilizați containere constexpr.
Modele de metaprogramare șablon
Stăpânește modele de șabloane avansate: CRTP pentru polimorfism static, proiectare bazată pe politici pentru o compoziție flexibilă, ștergere tip pentru generice de rulare și linii directoare pentru când să folosești șabloane față de dispecerare virtuală.