miércoles, octubre 29, 2008

Completado el borrador de C++0x

Como comenta Herb Sutter en su blog, se ha publicado el borrador (pdf) de C++0x que se pasará a la votación internacional. Creo que es una buen noticia para todos los usuarios de C++, porque como dicen en reddit, map<string, string>::iterator, tu larga década de terror se ha acabado :) Además, y no menos importante, toda una serie de características como rvalues, lambdas, conceptos, librería de operaciones atómicas, librería de threads, soporte para expresiones regulares...

Y uno de los arreglos más importantes, el modelo de memoria. Del borrador:
The fundamental storage unit in the C++ memory model is the byte. A byte is at least large enough to contain any member of the basic execution character set and the eight-bit code units of the Unicode UTF-8 encoding form and is composed of a contiguous sequence of bits, the number of which is implementationdefined.
The least significant bit is called the low-order bit; the most significant bit is called the high-order bit. The memory available to a C++ program consists of one or more sequences of contiguous bytes. Every byte has a unique address.
[...]
A memory location is either an object of scalar type or a maximal sequence of adjacent bit-fields all having non-zero width. [...] Two threads of execution can update and access separate memory locations without interfering with each other.

Enhorabuena a los premiados. Ahora falta que los implementadores hagan su trabajo. MS VC++ parece que va avanzando para llegar a VC++2010. (Estoy seguro que la coincidencia del borrador de C++0x y la publicación este post en el blog de VC++ no es casual...) gcc, aunque más lento, también va avanzando y ya se pueden probar algunas características.

La misma entrada y más comentarios en Completado el borrador de C++0x en barrapunto