97 votes

Quelle est la différence entre C++0x et C++11 ?

Je constate un usage mitigé de ces deux termes sur le SO.

Wikipedia dit

C++11, anciennement connu sous le nom de C++0x ...

mais je ne sais pas exactement pourquoi.

  • Pourquoi l'a-t-on d'abord appelé C++0x, puis C++11 ?
  • Par ailleurs, que signifie le x ? À mon avis, une variable ?

114voto

Matthieu M. Points 101624

Les normes C++ et C sont généralement nommées d'après l'année de leur publication, ce qui permet de s'en souvenir plus facilement.

Par exemple, en C++, la norme originale a été publiée en 1998, on parle donc de C++98, et lorsqu'on se réfère à sa première correction, publiée en 2003, on parle de C++03.

Il avait été annoncé que la prochaine norme serait prête pour 2008, mais comme cela n'était pas certain, elle a été baptisée C++0x, où le mot "C++" a été remplacé par le mot "C++". x correspondait à 8 ou 9. En pratique, comme nous le savons tous, la planification a changé et nous nous retrouvons avec C++11.

Néanmoins, pour la prochaine version (C++1x), Bjarne Stroustrup a déclaré son intention de le faire dans 5 ans (donc vers 2016). Pour l'instant, des changements sont envisagés au niveau du langage de base (concepts, modules et ramassage des ordures), et l'accent semble être mis davantage sur l'extension de la bibliothèque (système de fichiers par exemple), mais il est encore tôt, alors qui sait !

33voto

sharth Points 25625

C++0x était le nom de la norme avant qu'elle ne soit publiée / finalisée. Une fois qu'il a été finalisé (en 2011), nous avons pu le nommer correctement. C'est-à-dire C++11.

6voto

Niklas B. Points 40619

Étant donné que la norme devait être publiée/approuvée en 200x mais a en fait été approuvée en 2011 .

5voto

Mike Seymour Points 130519

Lorsque les travaux sur la nouvelle norme ont commencé, vers 1998, personne ne savait en quelle année elle serait finalisée - le "x" signifiait donc une année inconnue et l'espoir qu'elle serait finalisée dans un délai d'une dizaine d'années.

Finalement, elle a été finalisée en 2011, et la norme est désormais connue sous le nom familier de C++11, et officiellement sous le nom d'ISO/IEC 14882:2011.

Maintenant que cette norme est officielle, les travaux se poursuivent sur la suivante ; là encore, personne ne sait quand elle sera achevée, mais on espère que cela prendra moins d'une décennie, et c'est pourquoi elle est familièrement connue sous le nom de C++1x.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X