ISO aprueba por unanimidad C++0X: ¡ya tenemos el nuevo estándar C++11!

Este post es un copy/paste del sitio http://www.ciencia-explicada.com/, si quieren ver el post original pueden dar clic AQUI.

Herb Sutter, miembro de Microsoft y presidente del comité de estándares de C++ de la ISO anunció este viernes pasado que el resultado de las votaciones ha sido el de aprobar por unanimidad la actualización del lenguaje de programación C++, en un paquete de cambios que se viene llamando C++0X desde hace años de manera demasiado optimista: finalmente se llamará C++11.

Según Bjarne Stroustrup, el creador de C++, “uno tiene la impresión de que se ha creado un lenguaje nuevo”. Y eso que algunas apuestas fuertes como las de los “concepts” finalmente se han quedado en el tintero.

La última versión pública del estándar es este borrador (PDF)…. de 1300 páginas.

Pero si no tienes ganas de leer, aquí va un resumen de las novedades más importantes con respecto al último estándar de 2003:

Funciones lambda anónimas. A este tema ya le dediqué una entrada completa con ejemplos, etc.

Referencias rvalue (T&&). A diferencia de un “const T&”, se pueden cambiar tras su inicialización. Permitirá usar un estándar para “move semantics”, es decir, asignaciones o constructores copia (“move constructors”, a partir de ahora) que destruyan el objeto origen. Puedes leer esta breve introducción (en inglés).

Tipo de dato auto detectado por el compilador. La keyword “auto” nos ahorrará mucho teclear y permite aún más flexibilidad en metaprogramación.

Listas de inicialización de objetos: Una extensión del antiguo “T d[] = { val1, val2, …};”

Constructores: Ahora unos constructores se pueden llamar a otros, ahorrando código duplicado.

Templates con número variable de argumentos: Al estilo de las clásicas funciones con “(…)”.

Actualización de la “librería estándad de C++”: Esto se refiere a todas esas clases en el namespace “std::*”. Se han incluido los cambios del tr1, que ya desde hace tiempo estaban disponibles gracias a la librería boost. Este cambio realmente incluye docenas de nuevas utilidades que modernizan una barbaridad el lenguaje C++: smart pointers, nuevas herramientas para metaprogramación, array (un contenedor STL de tamaño fijo), tablas hash, expresiones regulares, etc.

Para leer más sobre esta actualización a mi lenguaje de programación favorito (¡y debería serlo también tuyo!) recomiendo estos artículos:

http://www.artima.com/cppsource/cpp0x.html
http://www2.research.att.com/~bs/C++0xFAQ.html
http://drdobbs.com/cpp/231002092

(Update 21:15pm) Por desgracia en estos tiempos en que las universidades priman enseñar lo que demanda “el mercado”, me temo que es necesario recordar qué es C++: Es uno de los lenguajes de programación más potentes, versátiles, portables y eficientes (¡si se sabe usar, que es el quid!). Además, se trata del tercer lenguaje de programación más usado del mundo (según estas encuestas 1, 2).

Y pues como dijo el autor original, es un exelente lenguaje, y es uno de mis favoritos, con Python y Java.

Saludos

Andrewnix

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s