Un nouveau C++ est né

Le , par Jean-Marc.Bourguet, Expert éminent
Mise à jour du 12 octobre 2011 par Idelways

La norme ISO C++11 vient d'être publiée après la ratification du standard en août dernier (lire ci-devant). Il s'agit plus précisément de la norme ISO/CEI 14882:2011, intitulée « Technologies de l'information – Langages de programmation – C++ »

Il aura fallu 13 ans pour que cette première révision majeure du standard populaire et omniprésent voie le jour. Elle marquera le quotidien de millions de développeurs sur les deux prochaines décennies.

Cette norme définit le langage de programmation et spécifie des exigences pour sa mise en œuvre (spécifications).
De nouvelles fonctionnalités viennent rehausser la souplesse et l’efficacité du C++, tout en conservant les qualités traditionnelles du langage, notamment en terme de performances et d'accès total et à tout moment au système d'exploitation sous-jacent.

« À présent que les améliorations apportées à C++11 intègrent bon nombre des points forts des langages managés, la version modernisée du code C++ est aussi irréprochable et sûre que n’importe quel autre code moderne, et aussi rapide en termes de performance par défaut » assure Herb Sutter, animateur du groupe de travail ISO.

L'intégration du concept de ramasse-miettes (Garbage Collector) est reportée au successeur du C++11 par manque de temps, avait fait savoir Sutter plus tôt cette année.

Avec des fonctionnalités comme l’inférence de type automatique, la surcharge d’un contrôle explicitement virtuelle et les pointeurs intelligents standards, les développeurs « n’aurait plus à réécrire “delete” ».

C++11 introduit entre autres les fonctions anonymes (lambda), la sémantique « move » (pour déplacer un objet sans le copier) et les templates acceptant un nombre variable d’arguments.

Un nouveau modèle de mémoire adapté aux processeurs multicoeurs vient rattraper le retard du C++ par rapport à Java, qui offre un modèle similaire depuis sa révision de 2005. Accomplir de la programmation concurrence ne dépend donc plus des librairies tierces que les développeurs devaient choisir et intégrer.

La norme est disponible uniquement en anglais, et peut être directement obtenue auprès du Secrétariat central sur l'ISO Store pour l'équivalent de 285 €. Les instituts membres nationaux devront ratifier et publier le texte final de la norme pour des tarifs plus abordables, ou même gratuitement, assure Sutter.

Ceux qui souhaitent se faire une idée précise sur la norme peuvent consulter gratuitement les drafts et documents de travail, disponible sur la page du comité WG21.

Sources : blog de Herb Sutter, communiqué de presse

Et vous ?

Que pensez de cette évolution du langage C++ ?

C++ 2011 : le Draft final international validé à l’unanimité
La norme sera publiée avant la fin de l’année

La version finale de la nouvelle norme ( C++ 2011) du langage de programmation orienté objet C++ approuvée à l'unanimité.

Herb Sutter, président du comité ISO C++, vient d’annoncer sur son blog la validation du draft international (Final Draft International Standard – FDIS) du langage de programmation.

C++ 2011 apporte des améliorations rendant l’apprentissage et l’enseignement du langage plus facile, et des améliorations pour la programmation système. Cette version permettra aux programmeurs de coder plus rapidement et faire du code facilement maintenable.

Comme nouveautés, C++ 2011 introduit les fonctions Lambda, une bibliothèque standard et améliorée avec des fonctionnalités de programmation concurrentes, la prise en charge des listes initialisateurs, etc.

On notera également comme changements, l'abandon des clauses new et explicit pour la gestion des overload, la rationalisation de l'utilisation de noexcept dans la bibliothèque ou la modification des règles de recherche de Begin et end pour un range-for.

La norme C++ 2011 sera publiée avant la fin de l’année.

Source : Blog Herb Sutter

Edité par Hinault Romaric


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Klaim Klaim - Membre expert http://www.developpez.com
le 12/10/2011 à 13:43
Au moins leurs numéros de version ne corresponds pas à une année
Avatar de befalimpertinent befalimpertinent - Membre éclairé http://www.developpez.com
le 12/10/2011 à 14:14
Bonne nouvelle!
C'est sans doute encore un peu tôt (faudra-t-il attendre VS2011 ?) mais je suis en ce moment en recherche de formations pro sur les nouveautés apportées par cette nouvelle norme.
cf ce thread
Avatar de Floréal Floréal - Membre éclairé http://www.developpez.com
le 12/10/2011 à 14:26
Il aurait fallu 13 ans pour que cette première révision majeure du standard populaire et omniprésent voie le jour. Elle marquera le quotidien de millions de développeurs pendant les deux prochaines décennies.

En d'autre terme la prochaine révision de la norme sera une C++3X? ^^
Avatar de Klaim Klaim - Membre expert http://www.developpez.com
le 12/10/2011 à 14:48
C'est sans doute encore un peu tôt (faudra-t-il attendre VS2011 ?)

Ca a déjà été annoncé : en gros VS2011 ne fournira pas vraiment de nouvelles features du language mais en revanche fournira presque toutes les nouvelles bibliothèques standard.

Voir http://blogs.msdn.com/b/vcblog/archi.../10209291.aspx pour les détails.

Sinon, GCC fournis déjà une grosse partie de ces features dans ses dernières versions, et CLang aussi (mais pas les mêmes).

Ca aurait aidé qu'ils se mettent d'accord sur les bases à implémenter d'abord, histoire qu'on puisse faire du cross-platform rapidement avec C++11 mais bon.

En d'autre terme la prochaine révision de la norme sera une C++3X? ^^

A priori non, puisque le focus pour le prochain meeting du commité, si j'ai bien compris, serait de réfléchir a voir quels sont les features a voir rapidement (dans les 3-5 prochaines années) et surtout comment s'organiser pour que environ 5 ans soit le maximum entre deux versions du language (hors TR). Je peu me tromper mais visiblement il va ya avoir un éffort pour éviter l'effet C++11 : une énorme mise à jour qui met 11 ans à être finalisée...sur le papier.
Avatar de Dalini71 Dalini71 - Membre averti http://www.developpez.com
le 12/10/2011 à 22:54
Tellement content de toutes ces nouveautés offertes.
Tellement frustré de devoir attendre surement de très longs mois avant que celles-ci soient bien implémentées par nos chers compilos
Avatar de gbdivers gbdivers - Inactif http://www.developpez.com
le 13/10/2011 à 0:08
Citation Envoyé par Dalini71  Voir le message
Tellement content de toutes ces nouveautés offertes.
Tellement frustré de devoir attendre surement de très longs mois avant que celles-ci soient bien implémentées par nos chers compilos

Certains compilateurs n'ont pas attendu la norme pour intégrer les nouvelles spécifications. Par exemple, gcc intègre shared_ptr depuis la version 4.3 (donc depuis 2008 et même 2005 dans tr1).
Personnellement, je n'ai même pas encore regardé toutes les nouvelles spécificités de la norme, je n'ai pas encore fait le tour des nouvelles spécificités de la norme qui sont déjà implémentées dans gcc.
Avatar de skypers skypers - Membre à l'essai http://www.developpez.com
le 13/10/2011 à 9:47
Ca fait déjà plusieurs mois que j'utilise les template variadiques, les rvalue reference ou encore std::initializer_list, et j'en suis très content. La dernière version en date (C++03 si je ne dis pas n'importe quoi) manque de beaucoup de choses (comme les constructeurs délégués par exemple), ce qui induit le fait que l'écriture et la maintenance de codes C++03 était réellement ... chiante?

J'espère que la plupart des compilo les plus connus (gcc, clang/LLVM) auront fini d'implémenter C++11 avant les prochaines grandes vacances de 2012.
Avatar de Klaim Klaim - Membre expert http://www.developpez.com
le 13/10/2011 à 12:04
Paeril ici, même sur VS2010 on peut faire joujou avec les lambda et les semantiques de mouvement
Avatar de Emmanuel Deloget Emmanuel Deloget - Expert confirmé http://www.developpez.com
le 13/10/2011 à 14:06
Citation Envoyé par skypers  Voir le message
J'espère que la plupart des compilo les plus connus (gcc, clang/LLVM) auront fini d'implémenter C++11 avant les prochaines grandes vacances de 2012.

J'ai un doute.

Il manque à gcc plusieurs grosses parties de la librairie standard (regex, ...)

Visual C++ 2011 manque encore d'un grand nombre de choses vraiment importantes (y compris les variadic template), et la version suivante devrait encore manquer d'un certain nombre de choses.

Maintenant, je peux être agréablement surpris. Mais je tablerais plus sur un délai de 2 à 4 ans pour avoir un support vraiment intéressant (même si incomplet) des fonctionnalités offertes par C++11.
Avatar de Johanès A. Maholison Johanès A. Maholison - Nouveau Candidat au Club http://www.developpez.com
le 14/11/2011 à 1:05
comment faire pour l'avoir sur gcc?
Avatar de Emmanuel Deloget Emmanuel Deloget - Expert confirmé http://www.developpez.com
le 14/11/2011 à 9:27
Citation Envoyé par Johanès A. Maholison  Voir le message
comment faire pour l'avoir sur gcc?

Le support C++11 ? Ne pas hésiter à proposer des patches à l'équipe de développement de gcc, ainsi qu'à l'équipe de développement de la lib stdc++

Pour avoir un support regex correct sur gcc, cf. boost.regex (c'est de toute façon l'origine de la librairie).
Offres d'emploi IT
Architecte fonctionnel et applicatif (H/F)
Société Générale - Ile de France - Val-de-Marne
Analyste SI-métier (H/F)
Société Générale - Ile de France - Val-de-Marne
Data scientist H/F
Safran - Ile de France - Magny-les-Hameaux (78114)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil