Ir al contenido
Módulo 4

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

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

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

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

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

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

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

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

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