Formación : Experto en C++, avances en el lenguaje (de C++ 11 a 20)

Experto en C++, avances en el lenguaje (de C++ 11 a 20)




Este curso le permitirá asimilar las nuevas características introducidas por los nuevos estándares C++. Abarcará las posibilidades de la programación funcional, dominará la gestión de memoria con punteros inteligentes y explotará las demás novedades de la biblioteca estándar de C++.


ABIERTA
IN-COMPANY
A MEDIDA

Formación en tus instalaciones, en nuestro centro o a distancia

Ref. VEC
  3d - 21h00
Duración, formato, fechas y lugar: ¡Tú decides, nosotros nos encargamos de organizarlo!

Descargar en formato pdf

Compartir este curso por correo electrónico




Este curso le permitirá asimilar las nuevas características introducidas por los nuevos estándares C++. Abarcará las posibilidades de la programación funcional, dominará la gestión de memoria con punteros inteligentes y explotará las demás novedades de la biblioteca estándar de C++.


Objetivos pedagógicos
Una vez finalizada la formación, el participante podrá:
Comprender las nuevas funciones y mejoras del lenguaje C++
Uso de expresiones lambda
Mejora del rendimiento con la semántica de desplazamiento
Gestión de la asignación y destrucción de objetos con punteros inteligentes
Desarrollar una aplicación multihilo

Público afectado
Desarrolladores de C++ que deseen conocer las nuevas características definidas por la norma C++11.

Requisitos previos
Buen conocimiento del lenguaje C++. Se recomienda experiencia práctica en programación con este lenguaje.

Modalidades prácticas
Trabajo práctico
Los ejercicios prácticos de programación le ayudarán a asimilar los distintos conceptos tratados.

Programa de la formación

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.