Los requerimientos de cada ejercicio del seminario serán expuestos desde el punto de vista práctico y teórico; es decir, para su exposición, cada equipo se basará en el caso práctico en cuestión para introducir y explicar el elemento teórico requerido. La exposición no es una mera enunciación de código. Preguntas como: ¿Por qué?, ¿Basándose en qué?, ¿Cómo se logra esto en el lenguaje X? entre otras, deben hacerse.
Todos los miembros del equipo deben participar en la solución del ejercicio y estar preparados para exponer todo el trabajo. La persona a exponer. se decide el día de la exposición. Quién no esté presente en la exposición de su equipo tiene 0
en la evaluación. (Note que estas notas se promedian y hay distinción entre 0
y 2
).
- Implemente utilizando TMP (Template Metaprogramming) de
C++
:- Un algoritmo que calcule en tiempo de COMPILACIÓN el n-ésimo valor de la secuencia de Fibonnacci.
- Implemente un
template
que permite desenrollar (unroll) una expresiónfor
de manera que se genere código secuencial que simule la ejecución de esta expresión.
- ¿Cómo surge la meta-programación utilizando
templates
? - Explique el principio SFINAE de
C++
. - Implemente utilizando
constexpr
deC++
:- Un algoritmo que calcule en tiempo de compilación el n-ésimo valor de la secuencia de Fibonnacci.
- Una clase
Point
que se pueda instanciar en tiempo de compilación. - Un algoritmo que calcule el punto intermedio entre dos puntos en tiempo de compilación.
- Explique hasta dónde se pueden utilizar las
constexpr
deC++14
. - Sobre las características propuestas para
C++17
.- Explique en que consiste template argument deduction for class templates y en qué puede ser útil.
- Explique la propuesta
if (init; condition)
yswitch (init; condition)
. (Puede ser útil enC#
?) - Exponga brevemente otras 2 propuestas al lenguaje que le parezcan atractivas.