Exceptional C++
Exceptional C++
Resumen:
Introducción
El libro «Exceptional C++» (1999) de Herb Sutter no es un manual para principiantes, sino una colección de 50 problemas de ingeniería que te harán reflexionar seriamente sobre cómo escribes código en C++. En un mundo donde la fiabilidad del software se valora más que la velocidad de escritura, este libro sigue siendo un referente de comprensión profunda del lenguaje. Sutter no solo da respuestas: enseña a pensar en términos de situaciones excepcionales, gestión de recursos y diseño de interfaces resistentes a errores.
A pesar de que el libro se publicó hace más de 20 años, sus ideas (RAII, garantías de excepciones, punteros inteligentes) se han convertido en la base del C++ moderno (C++11 y posteriores). Si quieres dejar de temer a las excepciones y empezar a escribir código que no «falla» en el momento más inoportuno, este libro es para ti.
De qué trata el libro
«Exceptional C++» está estructurado en formato «pregunta-respuesta» (problema — solución — análisis). Cada capítulo es un aspecto diferente de la programación robusta:
- Excepciones y seguridad: cómo escribir funciones que no pierdan recursos y dejen los objetos en un estado coherente incluso cuando ocurren errores.
- RAII (Resource Acquisition Is Initialization): por qué es el modismo principal de C++ y cómo aplicarlo para gestionar memoria, archivos, mutex.
- Plantillas y programación genérica: detalles de instanciación, especialización parcial, SFINAE.
- Herencia y polimorfismo: cómo diseñar jerarquías de clases correctamente sin violar el principio de sustitución de Liskov.
- Gestión de memoria: operadores new/delete, placement new, sobrecarga de operadores.
- Diseño de interfaces: cómo crear una API que sea difícil de usar incorrectamente.
Para quién es este libro
El libro está dirigido a programadores de C++ con experiencia (al menos 1-2 años de desarrollo activo). Será útil para:
- Desarrolladores que quieran escribir código de producción fiable.
- Aquellos que se preparan para entrevistas técnicas (los problemas del libro aparecen a menudo en Google, Microsoft, Yandex).
- Profesores y mentores que buscan ejemplos para analizar en seminarios.
- Todos los que quieran entender el «por qué» detrás de los modismos estándar de C++, y no solo el «cómo».
Qué aprenderá el lector
Después de leerlo, podrás:
- Formular y verificar garantías de excepciones (básica, fuerte, nothrow) para tus funciones.
- Usar correctamente std::auto_ptr (y sus análogos modernos unique_ptr/shared_ptr) para la gestión automática de recursos.
- Evitar trampas al sobrecargar operadores (especialmente operator= y operator[]).
- Diseñar clases que funcionen correctamente en contenedores STL.
- Entender cuándo y cómo usar mutable, volatile, const_cast sin perjudicar la arquitectura.
- Escribir funciones plantilla que no exploten al sustituir tipos inadecuados (SFINAE).
- Implementar el modismo copy-and-swap para una asignación segura.
Puntos fuertes
- Profundidad y practicidad. Cada problema es una situación real de la experiencia del autor. No encontrarás ejemplos abstractos como «gato-perro».
- Formato «pregunta-respuesta». Se puede leer desde cualquier capítulo. Ideal para «pausas activas»: 15 minutos por problema.
- Énfasis en el «por qué». Sutter explica no solo la solución correcta, sino también la motivación: por qué otras opciones son malas, qué compromisos existen.
- Estilo de redacción. Vivo, con un toque de humor y autocrítica. El libro no se parece a un manual seco.
- Valor atemporal. Incluso en la era de C++20/23, los principios de RAII y seguridad ante excepciones siguen siendo inmutables. El libro enseña los fundamentos que no pasan de moda.