C++0x : fin des discussions techniques pour la nouvelle normalisation

Le , par Arzar, Membre émérite
THIS IS IT !!

Howard Hinnant, le président du Library Working Group du comité C++ vient de lâcher le morceau sur Stack Overflow !!

Le draft final est terminé !!

Il sera rendu officiel et public le 13 avril. Pour compléter le processus ISO il reste encore quelques formalités administrative mais c'est une étape purement bureaucratique, car du point de vue technique c'est fini !


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


 Poster une réponse Signaler un problème

Avatar de JolyLoic JolyLoic - Rédacteur/Modérateur https://www.developpez.com
le 25/03/2011 à 23:52
Zut tu m'as grillé, je voulais faire l'annonce en quasi direct, je n'aurais pas du aller fêter ça au resto avec les autres...

On a effectivement voté pour que la version du draft après les modifications de cette semaine soit proposée comme la nouvelle version du C++. Ça peut prendre un temps indéterminé à finaliser, mais on (Herb, en particulier) tente de faire ce qu'on peut pour accélérer la partie administrative.

Ps : Howard n'est plus en charge du library working group depuis un peu plus d'un an. C'est Alisdair Meredith qui l'a remplacé. Mais il en reste un membre actif.

A noter, comme "gros" changement cette semaine : new et explicit ne sont plus utilisés pour la gestion de l'overload (par contre, final et override restent en place). L'utilisation de noexcept dans la bibliothèque a été rationalisée (et un grand nombre de spécifications ont été enlevées). Les règles de recherche de begin et end pour un range-for ont été modifiées : Le compilateur les cherchera en premier lieu sous la forme de fonctions membre, et s'il ne les trouve pas sous la forme de fonctions libres. Ce qui évitera entre autre une ambiguïté avec boost.
Avatar de Klaim Klaim - Membre expert https://www.developpez.com
le 26/03/2011 à 1:11
new et explicit ne sont plus utilisés pour la gestion de l'overload
Tu peux préciser? Je ne vois pas du tout de quelle feature tu parles?

Sinon, j'ai entendu dire que les custom string-literal étaient remis en question. Finalement ils sont bien dans C++0x?

Enfin au niveau du nom, finalement ça sera C++11 ou C++2011?
Avatar de JolyLoic JolyLoic - Rédacteur/Modérateur https://www.developpez.com
le 26/03/2011 à 1:30
Certains voulaient retirer les user defined literals, ainsi que le forwarding des constructeurs de la classe de base. Rien n'a finalement été retiré.

L'idée d'override, c'est de déclarer d'une fonction en redéfini bien une autre. Si on ne trouve pas de fonction virtuelle correspondante dans la classe de base, il y a une erreur de compilation (exemple vécu : On ajoute const dans un argument de la fonction virtuelle de la classe de base, tout compile, rien ne marche. Là, on aura une elle erreur en compilant la classe dérivée).

A partir de là, le reste me semble plus optionnel. Final indique que l'on ne va pas dériver plus.

Explicit (à mettre à côté du nom de la classe) avait pour but de forcer une classe à déclarer override (et pas seulement virtual) les fonctions qui redéfinissaient une fonction de la classe de base. Et dans ce contexte, new avait pour but de déclarer une fonction avec le même nom qu'une fonction de la classe de base, mais ne la redéfinissant pas. Il y avait des difficultés sur l'utilisation de new, et sans new, ou avec un new partiel (par exemple, sur les fonctions mais pas sur les données membre ni les types) des questions se posaient sur explicit, et les problèmes de compatibilités qu'il pourrait causer. Du coup les deux ont été enlevés.

Pour le nom, j'espère fortement que ce sera C++11, mais ça dépend aussi de la vélocité de l'ISO.
Avatar de Klaim Klaim - Membre expert https://www.developpez.com
le 26/03/2011 à 11:04
Ok merci pour l'explication, je savais pas pour new et explicit.

Herb Sutter commence a faire echo : http://herbsutter.com/2011/03/25/we-...ndards-meeting

If all goes well, and we expect it will, the International Standard will be approved and published in 2011, henceforth to be known as C++ 2011.
Donc ça serait C++2011? Perso ça me va.
Avatar de Goten Goten - Membre chevronné https://www.developpez.com
le 26/03/2011 à 11:32
Citation Envoyé par JolyLoic Voir le message
Zut tu m'as grillé, je voulais faire l'annonce en quasi direct, je n'aurais pas du aller fêter ça au resto avec les autres...

On a effectivement voté pour que la version du draft après les modifications de cette semaine soit proposée comme la nouvelle version du C++. Ça peut prendre un temps indéterminé à finaliser, mais on (Herb, en particulier) tente de faire ce qu'on peut pour accélérer la partie administrative.

Ps : Howard n'est plus en charge du library working group depuis un peu plus d'un an. C'est Alisdair Meredith qui l'a remplacé. Mais il en reste un membre actif.

A noter, comme "gros" changement cette semaine : new et explicit ne sont plus utilisés pour la gestion de l'overload (par contre, final et override restent en place). L'utilisation de noexcept dans la bibliothèque a été rationalisée (et un grand nombre de spécifications ont été enlevées). Les règles de recherche de begin et end pour un range-for ont été modifiées : Le compilateur les cherchera en premier lieu sous la forme de fonctions membre, et s'il ne les trouve pas sous la forme de fonctions libres. Ce qui évitera entre autre une ambiguïté avec boost.
Comme gros changement y'a aussi "decltype", à l'heure actuelle toute les implémentations sont devenues défectueuses et fausses. Et c'est très bien car decltype avait plusieurs soucis, qui ont été résolu.

sinon.... ben HOUURAY `\o/
Avatar de Klaim Klaim - Membre expert https://www.developpez.com
le 26/03/2011 à 11:33
O__O;

C'est quoi les changements avec decltype? Parceque je l'utilise pas mal dans mes projets...
Avatar de Goten Goten - Membre chevronné https://www.developpez.com
le 26/03/2011 à 11:41
Le problème est avec le protocol result_of.

http://www.open-std.org/jtc1/sc22/wg...011/n3233.html

Toute l'histoire . (ça a été accepté bien entendu)
Avatar de Hinault Romaric Hinault Romaric - Responsable .NET https://www.developpez.com
le 29/03/2011 à 15:10
Le comité ISO C++ valide le Draft final de la norme C++ 0X
il sera publié officiellement dans les mois avenir

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é 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?
Avatar de Firwen Firwen - Membre expérimenté https://www.developpez.com
le 29/03/2011 à 15:42
Aprés Duke Nukem forever, C++ 2011.

Vraiment une sale année pour les trolls 2011

Que du bon, vivement une implémentation à 100% dans GCC, j'en salive déja sur mon clavier
Avatar de guillaume07 guillaume07 - Débutant https://www.developpez.com
le 29/03/2011 à 16:43
"si le FDIS est validé lors d'une ultime réunion à Genève"

Tout n'est donc pas encore validé, je suis un peu perdu avec cette phrase ... ?
Responsable bénévole de la rubrique Qt : Thibaut Cuvelier -