C++26 endurece la biblioteca estándar: adiós al comportamiento indefinido en accesos fuera de rango

C++26: Standard Library Hardening Experiments

C++26 endurece la biblioteca estándar: adiós al comportamiento indefinido en accesos fuera de rango

El endurecimiento de la biblioteca estándar es una de las novedades clave de C++26. Esta característica convierte ciertas precondiciones, como el acceso con `operator[]` fuera de rango, de comportamiento indefinido a violaciones de contrato con semántica de terminación. El artículo explica las propuestas P3471, P3697 y P3878, muestra ejemplos prácticos con GCC, Clang y MSVC, y analiza el coste en rendimiento. Aunque no hace que C++ sea completamente seguro, proporciona una base estandarizada para detectar errores comunes y evitar fallos de memoria silenciosos.

El endurecimiento de C++26 no convierte de repente a C++ en seguro para la memoria, ni reemplaza a los sanitizadores, el análisis estático, un buen diseño de API o una validación cuidadosa.
  1. steveklabnik

    Una cosa que me da curiosidad sobre todo esto: pensaba que todo esto había llegado en C++26, y sin embargo todavía estamos recibiendo papers como https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2026/p43...

    > El borrador de C++26 aún no ha tenido su votación final

    Esto está coescrito por Bjarne, así que seguro que no es trivialmente falso, pero quizá me esté perdiendo algún detalle. Sé que Bjarne amenazó con vetar C++26 por esto, pero pensaba que no lo había hecho.

    ¿Alguien que siga el proceso un poco más que yo tiene algo de contexto aquí?

  2. Cieric

    Hay una pequeña pista al final, pero realmente espero que las aserciones de contrato en tiempo de compilación sean más comunes. Sé que algunos lenguajes como Spark, Dafny y algunos otros lo hacen y generan contratos implícitos para cosas como la división por 0. He estado experimentando con mi propio lenguaje personalizado que hace estas cosas y volver a C++ todos los días en el trabajo es en realidad una pequeña decepción por ello.

  3. pama

    30 años tarde, pero lo acepto. Los contratos parecen útiles y menos desordenados que las excepciones.

Más de este día

2026-08-31