web analytics

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

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.

Bjarne Stroustrup, se habrá quedado así de a gusto (fuente)

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:

  • 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:


(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 12).

Puede que también te guste...

Shares