Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 1 717
    Points : 3 285
    Points
    3 285

    Par défaut C++0x : le Draft final a été voté !

    Le comité ISO C++ valide le Draft final de la norme C++ 0X
    Son nom sera C++ 2011

    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.

  2. #2
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 28
    Localisation : France

    Informations forums :
    Inscription : juillet 2008
    Messages : 1 580
    Points : 2 201
    Points
    2 201

    Par défaut

    Bonne nouvelle. Et bonne nouvelle de s'être débarrassé des spécifications d'exceptions... Ça évitera du smell code
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 7 634
    Points : 13 482
    Points
    13 482

    Par défaut

    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é ?

  4. #4
    Expert éminent

    Inscrit en
    novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : novembre 2005
    Messages : 5 145
    Points : 6 863
    Points
    6 863

    Par défaut

    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.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    février 2006
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : février 2006
    Messages : 941
    Points : 1 122
    Points
    1 122

    Par défaut

    Ouha impressionné par ce langage next-gen qui aura mi moins d'un an pour trouver un nom

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    Consultant informatique
    Inscrit en
    octobre 2004
    Messages
    11 135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : octobre 2004
    Messages : 11 135
    Points : 27 427
    Points
    27 427

    Par défaut

    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
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2008
    Messages : 7 634
    Points : 13 482
    Points
    13 482

    Par défaut

    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.

  8. #8
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    septembre 2006
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : septembre 2006
    Messages : 519
    Points : 958
    Points
    958

    Par défaut

    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)

  9. #9
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    26 950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 26 950
    Points : 39 931
    Points
    39 931

    Par défaut

    Ç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?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Expert éminent

    Inscrit en
    novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : novembre 2005
    Messages : 5 145
    Points : 6 863
    Points
    6 863

    Par défaut

    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).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    26 950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 26 950
    Points : 39 931
    Points
    39 931

    Par défaut

    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...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Expert éminent

    Inscrit en
    novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : novembre 2005
    Messages : 5 145
    Points : 6 863
    Points
    6 863

    Par défaut

    Citation Envoyé par Médinoc Voir le message
    Les instanciations explicites de template, elles, sont-elles normalisées?
    Oui.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    template class Foo<Param>;
    Je me souviens que pour l'instant, chaque compilo a sa propre extension qui n'a pas toujours la même syntaxe...
    Tu confonds peut-etre avec les templates extern, extension de g++ (au moins) qui est standardisee en C++0X.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    septembre 2005
    Messages
    26 950
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2005
    Messages : 26 950
    Points : 39 931
    Points
    39 931

    Par défaut

    Oui, c'est ça. Merci.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Membre émérite

    Inscrit en
    mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : mai 2008
    Messages : 1 014
    Points : 2 251
    Points
    2 251

    Par défaut

    Vous avez vu le post d'Herb Sutter sur comp.lang.c++.moderated ?
    On sent une telle effervescence, ça fait plaisir à voir !
    Citation Envoyé par Herb Sutter
    I didn't realize how much of a turning point this week would feel
    like, at least for me personally. It was kind of like I felt rather
    than heard a distant "click" somewhere of the pieces snapping
    together: the committee agreeing that the feature list is now final;
    the implementations of key features starting to be delivered into real
    customers' hands; the availability of many features in multiple
    shipping implementations this year -- including multiple shipping
    implementations available by this summer of auto, for loops, move
    semantics, lambdas, and more that I'm probably forgetting; and Bjarne
    starting work in earnest on TC++PL 4e.

    It also struck me this week that this feels a lot like the mid/late
    1990s again -- a new standard is coming that is adding significant
    features to the language, and actual compiler implementations still
    vary. There's a lot of room again for teaching material about how to
    learn the new features, how to know what's portable today and what's
    not, how to write code in a future-proof way that's portable today and
    will stay portable tomorrow but also be ready to take advantage of new
    features, etc.

    Hmm, maybe it's time...
    La remarque sur les mid 90' sonne juste, j'ai l'impression que l'on ne rentrera réellement dans l'ère C++0x que lors de la sortie de Visual Studio 2012/2013, data à laquelle tous les compilateurs majeurs seront probablement 100% conforme au standard.

    Entre-temps ça risque d'être assez marécageux

    (Et je crains que l'absence de template variadique dans VS2010 sera une épine bien plus pénible pour les développeurs de bibliothèque portable que l'absence de spécialisation partielle a pu l'être pour VS6)

  15. #15
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 1 717
    Points : 3 285
    Points
    3 285

    Par défaut

    Ben ça dépends si Microsoft prends un rythme semblable au développement de Windows : des versions plus raprochées qui sont plus proches de "grosses" mises à jour.
    Je ne sais pas si c'est dans leur plans, mais quelque chose me dit que vu leur politique actuelle sur les développements, il se peut fortement qu'on ai au moins des service pack avec d'autres features de C++0x--touss0Atousss-- C++11 au début de l'année prochaine...

    Enfin j'espère XD

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    avril 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : avril 2008
    Messages : 87
    Points : 111
    Points
    111

    Par défaut

    avec tout ca et notamment les lambda fonctions je sens que les trucs genre intelli sense vont encore plus etre mis en defaut.
    et déjà dans visual studio on pouvait rien watcher dans les namespace anonymes, qu'est-ce qu'on ne pourra plus débugger maintenant ??
    avec C++ on pouvait se tirer dans le pied et ré-utiliser la balle, avec C++11 on pourra se tirer dans le pied, et perdre la jambe.

    m'enfin vive les smart ptr dans le standard, vive la move semantic, vive les variadics (adieu 40 definitions de boost::bind, adieu script perl pour generer du code ""variadique"")...

  17. #17
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 1 717
    Points : 3 285
    Points
    3 285

    Par défaut

    Les lambda marchent très bien avec Intellisense dans Visual Studio 2010 vu qu'ils ont tout revu pour Intellisense et que c'est sacrément plus efficace qu'avant.

    J'ai jamais utilisé de namespace anonyme donc j'ai jamais remarqué de problème avec.

  18. #18
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 28
    Localisation : France

    Informations forums :
    Inscription : juillet 2008
    Messages : 1 580
    Points : 2 201
    Points
    2 201

    Par défaut

    je m'inquiéte plus pour auto... Enfin non, pour des solutions comme VC, ils doivent utiliser le systéme d'inférence du compilo, mais pour des solutions comme code::blocks ça risque de devenir tricky.


    Quand aux 40 définitions de boost::bind ça existera toujours, car avant que tout les compilos implémentent les variadics templates...
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  19. #19
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 1 717
    Points : 3 285
    Points
    3 285

    Par défaut

    C'est clair! Visiblement pour le nouvel Intellisense, les infos fournies quand tu pointe un auto sont bien précises.

  20. #20
    Membre émérite

    Inscrit en
    mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : mai 2008
    Messages : 1 014
    Points : 2 251
    Points
    2 251

    Par défaut

    Citation Envoyé par Goten Voir le message
    je m'inquiéte plus pour auto... Enfin non, pour des solutions comme VC, ils doivent utiliser le systéme d'inférence du compilo, mais pour des solutions comme code::blocks ça risque de devenir tricky.
    Avec clang qui pointe le bout de son nez, je serais prêt à parier qu'on verra dans un futur pas trop lointain des améliorations drastiques chez les IDE coté open-source

Discussions similaires

  1. C++14 : le draft final a été publié
    Par LittleWhite dans le forum Normalisation
    Réponses: 15
    Dernier message: 18/01/2015, 15h18
  2. C++0x : Final Committee Draft disponible
    Par Jean-Marc.Bourguet dans le forum Contribuez
    Réponses: 63
    Dernier message: 28/10/2010, 14h11
  3. Final Committee Draft disponible
    Par Jean-Marc.Bourguet dans le forum C++
    Réponses: 3
    Dernier message: 31/03/2010, 12h18
  4. C++0x : le Draft final a été voté !
    Par Klaim dans le forum Contribuez
    Réponses: 2
    Dernier message: 14/03/2010, 18h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo