C++17 in Detail
C++17 in Detail
Resumen:
Introducción
El libro «C++17 in Detail» de Bartłomiej Filipek se publicó en 2019 y se convirtió instantáneamente en una de las fuentes más autorizadas sobre el nuevo estándar C++17. No es un manual más para principiantes, sino una guía técnica profunda que ayudará a desarrolladores de nivel intermedio y avanzado a dominar todas las características clave del estándar C++17 y aprender a aplicarlas en la práctica. El libro contiene 338 páginas de información concentrada, respaldada por ejemplos de código y consejos prácticos.
¿De qué trata este libro?
«C++17 in Detail» está dedicado al análisis detallado de las novedades que trajo el estándar C++17. El autor examina secuencialmente cada característica, comenzando por el lenguaje y terminando con la biblioteca estándar. En el libro encontrará:
- Enlaces estructurados (structured bindings) — cómo desempaquetar tuplas, pares y estructuras en variables individuales.
- if constexpr — compilación de ramas condicionales en tiempo de compilación, lo que permite escribir código de plantilla más eficiente y limpio.
- std::optional, std::variant, std::any — nuevos tipos contenedores para trabajar de forma segura con valores opcionales, alternativas y tipos dinámicos.
- string_view — una vista de cadena no propietaria que acelera el trabajo con subcadenas sin copiarlas.
- Algoritmos paralelos — la biblioteca estándar ahora admite la ejecución paralela de algoritmos (std::execution::par).
- Sistema de archivos (std::filesystem) — trabajo multiplataforma con archivos y directorios.
- Mejoras en constexpr — ahora es posible escribir funciones constexpr con bucles, bifurcaciones e incluso asignación dinámica de memoria (limitada).
- Nuevos atributos — [[fallthrough]], [[maybe_unused]], [[nodiscard]] y otros.
- Simplificación de plantillas — deduction guides, auto en parámetros de plantilla, fold expressions.
Cada capítulo está estructurado según el principio «de la teoría a la práctica»: primero se explica la sintaxis y la semántica, luego se presentan ejemplos de uso reales y, al final, errores típicos y recomendaciones.
¿Para quién es este libro?
El libro está dirigido a programadores que ya tienen experiencia con C++ (al menos a nivel de C++11/14) y quieren dominar C++17 de forma rápida y eficaz. Será útil para:
- Desarrolladores que migran de estándares más antiguos a C++17.
- Ingenieros que escriben sistemas de alta carga o integrados y desean utilizar las nuevas funciones para la optimización.
- Profesores y estudiantes de últimos cursos que estudian C++ moderno.
- Todos aquellos que quieran escribir código más seguro, expresivo y eficiente.
El libro no es adecuado para programadores principiantes: para comprender el material se requiere un conocimiento sólido de los fundamentos de C++ (punteros, plantillas, STL).
¿Qué aprenderá el lector?
Después de leer el libro, podrá:
- Utilizar con confianza todas las principales novedades de C++17 en el trabajo diario.
- Escribir código más limpio y conciso con enlaces estructurados y if constexpr.
- Aplicar std::optional y std::variant para el manejo seguro de errores y estados alternativos.
- Trabajar con el sistema de archivos sin bibliotecas externas.
- Acelerar algoritmos con versiones paralelas de la STL.
- Comprender los mecanismos internos de los nuevos tipos y saber evitar errores comunes.
- Prepararse para la transición a C++20, ya que muchas características de C++17 son la base para estándares futuros.
Puntos fuertes del libro
1. Profundidad y estructura. El autor no solo enumera las características, sino que explica por qué se agregaron, qué problemas resuelven y cómo aplicarlas correctamente. Cada capítulo contiene una sección «Common pitfalls» (errores típicos), que es muy valiosa para el desarrollador en ejercicio.
2. Enfoque práctico.