2011-01-31 19 views

Respuesta

11

[ED: Desde que se formuló esta pregunta, se publicó el estándar C++. En mi respuesta, cambié el tiempo pasado al tiempo presente y elaboré un poco sobre las cosas que se han aclarado desde el lanzamiento.]

El nombre del idioma de acuerdo con el Estándar es C++. Para distinguirlo de otras versiones del estándar, a veces se lo denomina C++ 11, pero ese no es su nombre oficial. Las versiones anteriores a menudo se conocen como C++ 03 o C++ 98, pero en conversiones en StackOverflow "C++" por sí mismo generalmente significa la versión actual de C++, cualquiera que sea.

C++ 0x era solo un identificador de marcador de posición utilizado para hacer referencia a la versión preliminar del Estándar antes de que se publicara para distinguirlo de otras versiones. Hoy tenemos una nueva versión que está siendo discutida por el committie; esa versión actualmente se conoce como C++ 1y.

En cuanto a la parte 0x, esto es lo que tiene que decir Bjarne Stroustrup:

El nuevo estándar es probable que se llama C++ 11, pero incluso un retraso burocrático menor podría hacer que el C++ 12. Personalmente, prefiero C++ simple y usar un marcador de año solo cuando necesito distinguirlo de versiones anteriores de C++, como ARM C++, C++ 98 y C++ 03. Por ahora, me inclino ante la convención y todavía uso C++ 0x para la próxima versión. Piensa en 'x' como hexadecimal.

Al publicar en SO, a menudo se lo conoce como C++ 11. Existe cierta confusión sobre a qué versión del estándar C++ se hace referencia cuando solo se utiliza la etiqueta C++ sin ninguna desambiguación (como las etiquetas C++ 11 o C++ 03), pero generalmente se asume que la etiqueta C++ se refiere a la versión actual. Al escribir estas líneas, eso es C++ 11.

+3

Cierto, pero probablemente pasarán muchos años antes de que sea solo "C++" y nos referimos al C++ que conocemos ahora únicamente como C++ 03, así como explícitamente nos referimos a C++ 98 como tal. – GManNickG

+0

@GMan: Estoy bastante seguro de que eso va a suceder, bueno, tan pronto como el nuevo Estándar aceptado. – Puppy

+0

@James: Eso es probable el "retraso burocrático menor" al que BS se estaba refiriendo. –

2

Los dos últimos estándares se llamaron C++98 y C++03, por lo que se supone que este será "C++XX".replace("XX", YearAccepted).

+5

+1 por mencionar C++ 98 y C++ 03. -0 por no mencionar que C++ 03 no era una nueva versión en el sentido de que C++ 0x será, solo una "corrección de errores". -1 por intentar usar un operador de punto en un literal de cadena. – aschepler

+4

error C2228: a la izquierda de '.replace' debe haber clase/struct/union – AshleysBrain

+0

@AshleysBrain, @aschepler: Lo siento, volví a Python por un segundo. Me he recuperado desde entonces. :) – James

3

¡Ha sido aprobado! La publicación oficial llevará algún tiempo, pero aún debería estar disponible mucho antes de fin de año. Podemos comenzar a llamarlo C++ 11 ahora.

http://herbsutter.com/2011/08/12/we-have-an-international-standard-c0x-is-unanimously-approved/

Editar:Herb Sutter on 2011-10-10 anuncia que la nueva norma ISO ha sido publicado. El ISO Press Release tiene esto que decir:

ISO/IEC 14882: 2011 define el lenguaje de programación y especifica requisitos para la aplicación. También conocida como C++ 11, esta es la primera revisión importante de la norma desde 1998.