4 puntos por GN⁺ 2025-04-27 | Aún no hay comentarios. | Compartir por WhatsApp
  • GCC 15 incorpora una gran cantidad de funciones de C++26 y también mejora algunas de C++23
  • Entre las principales incorporaciones están Pack Indexing, Variadic Friends, especificación del motivo de eliminación, condicionales con binding estructurado y más
  • También se introdujeron nuevas opciones del compilador y advertencias, mejorando la experiencia del desarrollador
  • Se reforzó el soporte para módulos de C++ y se optimizó la velocidad de compilación de plantillas
  • GCC 15 fue adoptado como compilador predeterminado en Fedora 42 y pronto también estará disponible en Red Hat GCC Toolset

Nuevas funciones de C++ en GCC 15

  • GCC 15.1 se lanzó el 25 de abril de 2025 e introduce de lleno funciones de C++26
  • El estándar predeterminado sigue siendo gnu++17, y las funciones más recientes pueden activarse con -std=c++23, -std=c++26, etc.
  • Las funciones de C++20, C++23 y C++26 siguen siendo experimentales

Principales funciones de C++26

  • Pack Indexing

    • Ahora es posible acceder directamente a un elemento específico dentro de argumentos de Variadic Template con la sintaxis pack...[N]
    • Esto permite referenciar limpiamente el primer argumento, entre otros, sin recurrir a trucos repetitivos
  • Atributos en Structured Bindings

    • Ahora se puede aplicar [[attribute]] por separado a cada variable enlazada de forma estructurada
    • Por ejemplo, se puede marcar solo una variable de binding con [[deprecated]]
  • Agregar explicación a funciones eliminadas

    • La sintaxis = delete("razón") permite mostrar un mensaje en el error al llamar una función eliminada
  • Variadic Friends

    • En clases template ahora se pueden declarar varios tipos como friend de una sola vez
    • Es útil para reforzar el control de acceso en patrones como Passkey pattern
  • constexpr Placement New

    • std::allocator y placement new pueden usarse en contexto constexpr
  • Uso de structured bindings en condicionales

    • Se pueden declarar structured bindings dentro de condiciones if, while y switch
    • La evaluación de la condición se realiza mediante una variable interna generada por el compilador
  • Prohibición de eliminar tipos incompletos

    • Si delete o delete[] se usan sobre un tipo incompleto, en modo C++26 se produce un error de compilación
  • Advertencia por coma de Oxford

    • En C++26 se emite advertencia cuando en declaraciones de funciones variádicas se usa solo ... sin , ...
  • Eliminación de comparación de arreglos

    • El código que compara arreglos con == pasa a tratarse como error
    • En C++20 esto era una advertencia, pero ahora se elevó a error de compilación en modo C++26
  • Directiva #embed

    • Soporte para #embed, que permite insertar datos binarios directamente en el código fuente

Aún no hay comentarios.

Aún no hay comentarios.