C++23C++23 es el nombre informal para la revisión de la ISO/IEC, el estándar para el lenguaje de programación C++ que sigue a la revisión C++20. El borrador actual es N4878.[1] Se estima que la versión sucesora será C++26. En febrero de 2020, en la reunión final para C++20 en Praga, se adoptó un plan global para C++23:[2][3] La primera reunión WG21, centrado en C++23, estaba planeada para junio de 2020 en Varna, pero se canceló debido a la pandemia de COVID-19,[4] al igual que la reunión de noviembre de 2020 en Nueva York[5][6] y la reunión en Kona (Hawái), en febrero de 2021. Es poco probable que haya una reunión presencial antes de 2022.[7] Mientras tanto, se llevan a cabo reuniones virtuales. Características nuevasLas principales características esperadas para C++23, incluidas algunas postergadas que no lograron entrar en C++20, son:
Esta lista no está confirmada para C++23, ya que algunas características podrían postergarse para C++26, o incluso ser abandonadas. En la ausencia de reuniones presenciales WG21, pocas características nuevas se han añadido al borrador de C++23. Pero las siguientes se agregaron luego de la reunión virtual de WG21 del 9 de noviembre de 2020, en la que se aprobaron mediante encuestas:[7]
Tecnologías habilitadorasLa gran mayoría de las características nuevas responden a un plan de largo plazo para habilitar mejores formas de programación. Las tecnologías que habilitan estas nuevas formas de programar no suelen centrarse en una característica nueva sino en un conjunto de ellas, que se implementan de a poco en diferentes versiones de C++. C++20 es la versión que más cambios transformadores ha introducido, con la introducción de módulos, corrutinas, rangos y conceptos como ejemplos prominentes. A modo de ejemplo, rangos es la consumación de una serie de características que se fueron añadiendo paulatinamente desde C++11. No se espera que C++23 tenga el mismo impacto, pero ya se vislumbran algunas de las tecnologías generales que se podrían habilitar en esa versión: Definición programática de clasesC++ tiende a facilitar la escritura indirecta de clases:[16] en lugar de escribir el código de la clase, se podrá escribir código para metaclases que funcione como una fábrica de clases en tiempo de compilación. La definición plantillada de clases opera en este sentido, C++ avanza hacia la posibilidad de escribir código claro en funciones y expresiones constantes (ejecutadas en tiempo de compilación) para un control preciso en la definición de clases. Las características involucradas son:
Algunas de estas características tienen fuerte base en Conceptos, introducidos en C++20. EjecutoresAlgunas de las aplicaciones de los ejecutores que se están desarrollando para C++23:
La posibilidad de lanzar porciones de código ejecutable en otros núcleos (incluso en otras máquinas en red) de manera eficiente inspira el desarrollo de estas características:[17]
Reemplazo del preprocesadorC++20 introdujo módulos, la primera alternativa real para Los módulos no importan macros, lo que presenta un inconveniente en funciones basadas en ellas, como
Referencias
|
Portal di Ensiklopedia Dunia