Le Draft final de la norme C++ 0X validé

Le , par Klaim

0PARTAGES

5  0 
Mise à jour du 29/03/11, par Hinault Romaric

Les travaux pour la définition de la nouvelle norme pour le langage de programmation C++ sont enfin achevés et validés.

La norme, qui remplacera celle de 1997, et dont la publication initiale était prévue au plus tard pour 2010, vient de franchir un cap majeur. Le comité de normalisation ISO C++ vient en effet d'approuver les dernières modifications techniques lors d'une réunion qui s'est tenue du 21 au 25 mars à Madrid en Espagne, sur le Draft final (Final Commitee Draft) et sur un Draft international (Final Draft International Standard - FDIS).

Pour Herb Sutter, président du comité ISO C++, le FDIS est de «très bonne qualité », ce qui, en quelque sorte, pourrait justifier le retard accusé dans sa validation. « Nous avons pris beaucoup plus de temps pour produire la seconde norme du C++. C'est en partie à cause de ses fonctionnalités ambitieuses, et surtout sa qualité [...] Cette norme est largement considérée comme le document FDIS de plus haute qualité que nous n'ayons jamais élaboré » écrit-il sur son blog.

Au menu, des changements comme 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.

On notera également la suppression de plusieurs spécifications jugées obsolètes.

La publication officielle de la norme est prévue pour cette année, si le FDIS est validé lors d'une ultime réunion à Genève.

Le nouveau standard aura finalement pour nom de code C++ 2011, mettant ainsi fin à toutes les spéculations, et à toutes les plaisanteries.

Source : Blog Herb Sutter

Et vous ?

Que pensez-vous de cette nouvelle norme?

Herb Sutter nous fait part sur son blog de la conclusion du dernier vote du comité qui s'est déroulé à Pittsburgh.

La principale bonne nouvelle est que le Final Commitee Draft a été voté et ne sera donc changé que pour des corrections de bugs et autres typos. Autrement dit, il ne reste qu'a faire valider le draft par ISO et nous auront enfin la nouvelle norme fixée.

D'après Herb, le temps que cela se passe, nous serons en 2011.

Parmi les derniers changements, la suppression définitive d'export template mais surtout la déprécation des spécifications d'exception et l'ajout d'un qualificateur : noexcept.
A priori ça sera bien plus intéressant que les spécification d'exceptions.

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Goten
Membre chevronné https://www.developpez.com
Le 14/03/2010 à 14:31
Bonne nouvelle. Et bonne nouvelle de s'être débarrassé des spécifications d'exceptions... Ça évitera du smell code
1  0 
Avatar de 3DArchi
Rédacteur https://www.developpez.com
Le 14/03/2010 à 18:43
Il propose même un nom C++11 pour que les moqueries autour du x c'est pour l'hexa dans C++0x s'arrêtent
Plus sérieusement, c'est une bonne nouvelle. Si la norme est stabilisée, les compilateurs vont pouvoir se mettre au diapason et nous allons pouvoir utiliser ces nouvelles possibilités. YAPUKA les assimiler
Le draft voté est le 3035 ? Si non, il y a moyen d'avoir le draft voté ?
1  0 
Avatar de Jean-Marc.Bourguet
Expert éminent https://www.developpez.com
Le 14/03/2010 à 20:05
Citation Envoyé par 3DArchi Voir le message
Il propose même un nom C++11 pour que les moqueries autour du x c'est pour l'hexa dans C++0x s'arrêtent
Plus sérieusement, c'est une bonne nouvelle. Si la norme est stabilisée, les compilateurs vont pouvoir se mettre au diapason et nous allons pouvoir utiliser ces nouvelles possibilités. YAPUKA les assimiler
Le draft voté est le 3035 ? Si non, il y a moyen d'avoir le draft voté ?
Dans le prochain mailing. Ce qui a été voté comme c'est N3035 + une série de modifications.
1  0 
Avatar de ash.ice.loky
Membre éprouvé https://www.developpez.com
Le 15/03/2010 à 11:50
Ouha impressionné par ce langage next-gen qui aura mi moins d'un an pour trouver un nom
0  1 
Avatar de koala01
Expert éminent sénior https://www.developpez.com
Le 15/03/2010 à 12:05
Salut,
Citation Envoyé par ash.ice.loky Voir le message
Ouha impressionné par ce langage next-gen qui aura mi moins d'un an pour trouver un nom
Si tu fais référence à C++11, il faut savoir qu'il a changé pas mal de fois, entre C++0x jusqu'à la fin de l'année 2009, C++1x depuis peu, et maintenant C++11, qui devrait être le nom final

Il faut se rappeler que cette nouvelle norme est "dans l'air du temps" depuis...2005 environ
1  0 
Avatar de 3DArchi
Rédacteur https://www.developpez.com
Le 15/03/2010 à 12:23
En tout cas, ça permet d'intégrer plus sereinement quelques nouveautés déjà implémentées par certains compilateurs. Certes, entre maintenant, son adoption et la diffusion importante de nouveaux compilateurs compatibles, il va encore se passer beaucoup de temps, mais c'est déjà un grand pas dans la stabilisation.
1  0 
Avatar de spidermario
Membre éprouvé https://www.developpez.com
Le 15/03/2010 à 19:31
Ajouter les expressions lambda, les closures et l'inférence des types au standard de ce langage ne lui fera pas de mal (encore qu'il faudra faire attention aux copies lors de la capture d'une variable dans une closure, mais Qt implémente le COW pour beaucoup de ses classes)
1  0 
Avatar de Médinoc
Expert éminent sénior https://www.developpez.com
Le 16/03/2010 à 14:31
Ça ne risque pas de géner pour les bibliothèques dynamiques, ça, la suppression définitives des export templates?

Ou bien je me trompe sur ce que c'est, et il ne s'agit pas là des instanciations explicites?
1  0 
Avatar de Jean-Marc.Bourguet
Expert éminent https://www.developpez.com
Le 16/03/2010 à 14:40
Citation Envoyé par Médinoc Voir le message
Ça ne risque pas de géner pour les bibliothèques dynamiques, ça, la suppression définitives des export templates?

Ou bien je me trompe sur ce que c'est, et il ne s'agit pas là des instanciations explicites?
Tu te trompes. Les templates exportes permettent de couper des dependances, mais il faut toujours le code (ou qqch d'equivalent semantiquement) au plus tard(*) lors de l'edition de liens et l'interaction avec les bibliotheques dynamiques n'est en rien facilitee par rapport aux templates non exportes.

(*) Les templates exportes n'apportent reellement quelque chose qu'en combinaison avec un mecanisme d'instantiation itere (que peu de compilateurs fournissent aussi, je me demande si ce n'est pas un facteur important mais jamais avoue dans la mauvaise volonte faite pour les implementer).
1  0 
Avatar de Médinoc
Expert éminent sénior https://www.developpez.com
Le 16/03/2010 à 14:42
Les instanciations explicites de template, elles, sont-elles normalisées?

Je me souviens que pour l'instant, chaque compilo a sa propre extension qui n'a pas toujours la même syntaxe...
1  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web