C ++ 20 finalmente está llegando ...

Recientemente, el grupo C ++ de la Organización Internacional de Normalización (ISO) y el Grupo de Trabajo 21 (WG21) adoptaron formalmente la versión final del borrador "C ++ 20".

Herb Sutter  , presidente permanente del Comité ISO de WG21 C ++,  dijo: "El 4 de septiembre, se cerró la votación para el DIS (Borrador de la Norma Internacional) para C ++ 20 y se aprobó por unanimidad".

"Esto significa que C ++ 20 ahora ha obtenido la licencia técnica final y se ha completado la votación de ISO. Esperamos que después de la ronda final de trabajo de edición de ISO, C ++ 20 sea lanzado oficialmente a finales de 2020".

Según los estándares históricos, la versión de C ++ en 2020 es muy grande. Herb Sutter declaró que “será la versión más grande de C ++ desde C ++ 11”, lo que significa que es más grande que las tres versiones lanzadas en los últimos 9 años. Al mismo tiempo, esta también es la primera versión estandarizada.

Paul Jansen, CEO de TIOBE, cree que el nuevo estándar C ++ 20 ha tenido un gran impacto positivo y su tendencia positiva se pone al día con otros lenguajes de programación.

En C ++ 20, las dos características más importantes son " Módulos " y " Corutina ".

Se informa que el módulo (Módulos) fue propuesto por Richard Smith de Google  . Es una mejora del archivo de encabezado y ayuda a aislar el impacto de las macros al mismo tiempo que admite compilaciones más grandes.

Como Sutter señaló recientemente, C ++ 20 marca la "primera vez en 35 años que C ++ ha agregado nuevas características en las que los usuarios pueden definir límites de paquetes con nombre".

"Hasta ahora, tenemos tres características del lenguaje que permiten a los programadores (a) dar un nombre definido por el usuario (b) a algo que oculta su realización, creando así su propio" poder del lenguaje ". Sí: variables (encapsulando el valor actual), funciones (encapsulando código y comportamiento) y clases (encapsulando ambos para proporcionar un montón de estados y funciones al mismo tiempo) ".

Coroutine representa la generalización de una función. Los colaboradores de C ++ explicaron en la propuesta de corrutina : "Las funciones regulares siempre comienzan al principio y luego salen al final, mientras que las corrutinas también pueden abortar la ejecución y continuar la ejecución en la ubicación interrumpida".

En una entrevista por correo electrónico, Bjarne Stroustrup, el padre de C ++, dijo: "Para muchas personas, las corrutinas son algo nuevo. Para beneficiarse de ellas, debe aprender un estilo completamente nuevo. Sin embargo, creo que vale la pena, porque Esto puede hacer que la programación concurrente sea más fácil y rápida ". Además, también mencionó que" las corrutinas ya son la base de muchas aplicaciones de Facebook ".

Para C ++ 20, Bjarne Stroustrup lo espera. En noviembre del año pasado, vino a Shanghai, China, en un viaje de negocios, y el reportero de InfoQ tuvo el honor de realizar una entrevista exclusiva con el Dr. Bjarne. En la entrevista, hablamos sobre varios temas relacionados con C ++ 20.

¡C ++ 20 finalmente está aquí!

Dijo: "Ahora estoy muy seguro de que C ++ 20 será muy bueno. A menudo menciono que C ++ 11 es como un lenguaje completamente nuevo. C ++ 20 es más mejorado que C ++ 11 es más grande, aporta una sensación completamente nueva. Puedo mencionar características que creo que serán de gran ayuda para toda la comunidad de C ++, creo que hay dos ".

La primera característica es el concepto (Conceptos) , que es una especificación precisa de la interfaz en la programación paradigmática, cuyo objetivo es mejorar la facilidad y flexibilidad de la programación paradigmática. Por lo tanto, veremos más programación paradigmática y la forma de presentación del código también cambiará. Obtendrá mejores mensajes de error y podrá utilizar menos la metaprogramación de plantillas. Por supuesto, la velocidad de compilación también será más rápida.

Otra nueva característica importante son los módulos . Si lo usamos para organizar el código, podemos mejorar mucho la velocidad de compilación del código (por ejemplo, más de 5 veces más rápido), lo cual es muy importante. De esta forma, todos pueden completar la recopilación más rápidamente sin tener que tomar café para pasar el tiempo entre compilaciones. Al mismo tiempo, también eliminará más defectos del programa, porque su código aparecerá más regular.

"Creo que en unos años, los conceptos y módulos serán tan importantes que todos se sentirán indispensables", dijo.

Además, las nuevas características de C ++ 20 también incluyen alcance, conceptos y restricciones (restricciones y conceptos), inicialización designada (inicializadores designados), temporización, algoritmos paralelos y algunas mejoras a la programación concurrente, etc.

En una entrevista por correo electrónico, dijo: "Si una característica cambia nuestra visión del desarrollo de código y software, entonces creo que es una característica importante".

Cuando se trata de expectativas para C ++ 20, Bjarne Stroustrup dijo: "¡C ++ 20 será genial! Tiene características por las que he estado luchando durante décadas. Espero que muchas características se adopten rápidamente. De C ++ 98 La migración a C ++ 11 es difícil, pero nosotros (el comité de estándares y los implementadores) lo hacemos mejor en términos de compatibilidad, por lo que es más fácil migrar de C ++ 11 a C ++ 14 y C ++ 17. Espero La migración a C ++ 20 será más fácil. Sin embargo, si desea beneficiarse de las nuevas funciones principales, debe modificar el código ".

Supongo que te gusta

Origin blog.csdn.net/lianshaohua/article/details/108724947
Recomendado
Clasificación