1
La llegada de C++11
- Las distintas normas C++98, C++03, C++11=, C++14, C++17, C++20.
- Novedades de C++11 y objetivos de esta norma. El futuro de Boost y STL.
- La cuestión de la compatibilidad de los códigos antiguos.
- La disponibilidad de herramientas de desarrollo (compiladores, depuradores, IDE, etc.).
Trabajo práctico
Verificación de la herramienta utilizando el código C++11 proporcionado.
2
Mejoras lingüísticas
- Enums fuertemente tipados.
- La palabra clave auto y decltype para simplificar la escritura.
- El bucle basado en intervalos.
- Coroutines C++20.
- Constexpr para la evaluación en tiempo de compilación.
- Módulos C++20.
- Plantillas variadas, conceptos de platillos C++20...
Trabajo práctico
Aplicación de mejoras.
3
Cambios en las clases
- Delegación de constructores y restricciones de herencia.
- La nueva semántica del desplazamiento y el constructor de desplazamiento.
- Las directivas override, final =delete, =default.
- Noción de módulo C++20
Trabajo práctico
Creación de clases.
4
Utilización de hilos
- Declarar y ejecutar un hilo. Esperar el final de la ejecución con join().
- Gestión de los datos locales de un hilo.
- Recuperación de un resultado con future<> y async().
Trabajo práctico
Trabajo práctico
5
Código secuencial multihilo y medir la ganancia en términos de tiempo de ejecución.
Trabajo práctico
El nuevo contenedor de tuplas.
6
Contenedores unordered_set y unordered_map basados en hash.
- Rangos con std ::view para la evaluación sobre la marcha de C++20.
- Gestión del tiempo con el espacio de nombres chrono.
- Formateo de cadenas con C++20.
Trabajo práctico
Implementación de nuevas funciones.
7
Programación funcional con expresiones lambda
- Declaración, tipificación, aplicación y uso.
Trabajo práctico
Gestión del cierre, con captura por valor o por referencia de variables vinculadas al contexto.