Hoja de ruta de desarrollo de C++ para 2025-2026: ¿qué espera a los desarrolladores?
El comité de estandarización de C++ (ISO/IEC JTC1/SC22/WG21) continúa trabajando activamente en la próxima versión del lenguaje — C++26, cuyo lanzamiento está previsto para 2025-2026. A pesar de que C++23 aún no ha sido ampliamente adoptado, los desarrolladores ya pueden echar un vistazo al futuro: se han publicado los primeros borradores y propuestas que formarán parte del nuevo estándar. En este artículo, hemos recopilado las direcciones clave de desarrollo que cambiarán el panorama de C++ en los próximos dos años.
Innovaciones clave de C++26
Se espera que C++26 sea una de las actualizaciones más significativas de los últimos años. El enfoque principal está en el rendimiento, la seguridad de la memoria y la facilidad de desarrollo.
- Ampliación de las capacidades de constexpr: Se planea agregar soporte para asignación dinámica de memoria en expresiones constantes, lo que permitirá realizar más operaciones en tiempo de compilación.
- Mejora de los módulos: Los módulos, introducidos en C++20, recibirán el tan esperado soporte para macros y una integración más estrecha con los archivos de cabecera.
- Biblioteca estándar para trabajar con redes: Después de años de discusión, en C++26 podría incluirse
std::net— un conjunto básico de clases para trabajo asíncrono con TCP/UDP. - Nuevos patrones para el manejo de errores: Se han introducido propuestas para
std::expected(ya en C++23) y un mejoradostd::outcomepara un trabajo más seguro con excepciones.
Seguridad de la memoria: el enfoque principal de 2025-2026
Uno de los temas más candentes en la comunidad de C++ es la seguridad de la memoria. En respuesta a las demandas de organizaciones gubernamentales (por ejemplo, la NSA de EE. UU. recomienda migrar a lenguajes memory-safe), el comité WG21 está trabajando activamente en perfiles de seguridad:
- Perfiles de seguridad: Se planea introducir conjuntos de reglas (por ejemplo,
profile::safe) que desactiven operaciones peligrosas (punteros crudos, conversiones implícitas) a nivel del compilador. - Smart pointers 2.0: Mejora de
std::shared_ptrystd::unique_ptrpara reducir la sobrecarga en aplicaciones multihilo. - Analizador estático en el estándar: Se está considerando la inclusión de interfaces para la verificación estática de código directamente en la biblioteca estándar.
Patrones y enfoques: ¿qué cambiará en el código?
Los nuevos estándares siempre dictan nuevos patrones de diseño. En 2025-2026 se espera la popularización de los siguientes enfoques:
- Value semantics (semántica de valores): En lugar de herencia y funciones virtuales, se prefiere la composición,
std::variantystd::visit. - Programación asíncrona sin callbacks: Con la llegada de
std::nety las corrutinas mejoradas (C++20), se espera una transición masiva a cadenas de llamadas asíncronas. - Pattern matching (coincidencia de patrones): Aunque su implementación completa se ha pospuesto para C++26, ya están apareciendo bibliotecas de emulación y la comunidad está probando activamente la sintaxis.
Herramientas y ecosistema
Paralelamente al lenguaje, también se desarrollan las herramientas. Las principales tendencias de 2025-2026:
- CMake 4