Las últimas revisiones de este lenguaje fueron en 1998 (C++98) y en 2003 (C++03). Ahora se ha presentado el nuevo borrador para lo que será la siguiente revisión C++0x.

Las novedades, muy numerosas, se listan al completo en la wikipedia. Listo las que más me han llamado la atención:

  • Inicialización uniforme: se trata de que las estructuras y otros datos se inicialicen de una forma única y coherente.
  • Autodeterminación de tipos: se pueden declarar variables con la palabra auto de forma que el compilador elija el tipo que mejor convenga, según su uso.
  • Nuevos tipos de for: se podrán especificar con la palabra for al sintaxis típica, una que tome valores de un array y los deposite en un elemento (int x : my_array) y otra, en las funciones estándares, que será tipo for_each.
  • Funciones Lambda: una forma de decir que se permite la declaración de funciones anónimas (como se llamaría en Java) dentro del código de otra función.
  • Concepts: es un tipo más avanzado que las Templates.
  • Mejoras en la declaración de clases: se han agregado facilidades y mejoras al declarar el prototipo de las clases.
  • Nuevas formas de declarar los literales: se pueden declarar texto de tipo Unicode con solo agregar una u antes de las comillas dobles.
  • Modelo de memoria multitarea: una serie de optimizaciones y mejoras para el multihilo y la gestión de memoria.
  • Almacenamiento local de hilos: cada hilo tiene sus propias variables.
  • Tablas hash: la posiblidad de introducir arrays donde los índices, en lugar de ser números, sean textos, como parte de la librería estándar de C++.
  • Expresiones Regulares: también agregado en la librería estándar de C++, la posibilidad de usar expresiones regulares sin problemas.

Y muchas más cosas. Recomiendo leer el borrador a quién realmente le interese. Microsoft parece que ya planea agregar muchas de estas características en Visual Studio, para su versión MVC++2010, y en gcc se tendrá en cuenta para futuras versiones.

Vía: Yet Another Programming Weblog.