Templates y Programacion Generica
Escribe abstracciones genuinamente genericas, reutilizables y de costo cero usando templates, concepts y programacion en tiempo de compilacion.
Fundamentos de Templates
Function Templates y Deduccion de Tipo
Aprende a escribir funciones que funcionan con cualquier tipo. Comprende la deduccion de argumentos de template, los parametros non-type, y por que los templates viven en los headers.
Class Templates y CTAD
Construye estructuras de datos genericas con class templates. Comprende las definiciones de miembros, los argumentos por defecto, y como el CTAD de C++17 te permite omitir los argumentos de template.
Templates Avanzados
Especializacion de Templates y Tag Dispatch
Domina la especializacion completa y parcial, aprende cuando preferir la sobrecarga, y descubre tag dispatch e if constexpr como alternativas para ramificacion en tiempo de compilacion.
Variadic Templates y Fold Expressions
Maneja cualquier numero de argumentos de template con parameter packs. Domina las fold expressions para procesamiento de packs elegante y sin recursion.
SFINAE, Type Traits y enable_if
Comprende el principio de Substitution Failure Is Not An Error, usa type traits para introspeccion en tiempo de compilacion, y restringe templates con enable_if.
Programacion Generica Moderna
Concepts y Constraints de C++20
Define requisitos precisos sobre los argumentos de template usando concepts. Escribe codigo generico mas limpio con clausulas requires, abbreviated function templates, y concepts de la biblioteca estandar.
constexpr, consteval y Programacion en Tiempo de Compilacion
Mueve la computacion del tiempo de ejecucion al tiempo de compilacion usando constexpr, consteval y constinit. Construye tablas de busqueda, valida configuraciones y usa contenedores constexpr.
Patrones de Metaprogramacion de Templates
Domina patrones avanzados de templates: CRTP para polimorfismo estatico, diseno basado en politicas para composicion flexible, type erasure para genericos en tiempo de ejecucion, y guias sobre cuando usar templates vs despacho virtual.