IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Normalisation C++ Discussion :

C++17 est maintenant officialisé


Sujet :

Normalisation C++

  1. #1
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 575
    Points
    218 575
    Billets dans le blog
    120
    Par défaut C++17 est maintenant officialisé
    Les fonctionnalités intégrées au C++17 ont été décidées au cours du meeting à Oulu

    Le comité autour du C++ s'est une nouvelle fois réuni afin de décider du contenu de la nouvelle version du langage de programmation C++.
    Le comité a conclu une entente et la liste des fonctionnalités ne changera plus. Voici la liste des fonctionnalités qui intègreront C++17 :


    Du côté des fonctionnalités la bibliothèque standard, les quatre points suivants ont été acceptés :


    Pour rappel, il y a trois mois (lors de la réunion précédente), le comité s'était accordé pour intégrer les fonctionnalités suivantes :
    • attributs [[fallthrough]], [[nodiscard]], [[maybe_unused]] ;
    • constexpr lambdas ;
    • généralisation des boucles sur ensemble ;
    • capture de *this dans les lambdas ;
    • valeurs littérales hexadécimales pour les nombres à virgules flottantes ;

    Et pour la bibliothèque standard :
    • (parts of) Library Fundamentals TS v1 ;
    • Parallelism TS v1 ;
    • File System TS v1 ;
    • fonctions mathématiques spéciales ;
    • hardware_*_interference_size ;
    • .is_always_lockfree() ;
    • clamp() ;
    • non-const .data() pour les chaînes de caractères.


    Comme nous l'avions vu, les concepts ne feront pas partie du C++17. Vous pouvez voir la liste complète des fonctionnalités ici.
    Évidemment, une nouvelle version du langage n'est rien si les compilateurs ne la supportent pas. On pourra donc se renseigner sur le progrès du support pour clang ici et pour libc++ ici.


    Votre opinion

    Avez-vous suivi les évolutions du C++17 ? Qu'est-ce qui vous intéresse le plus dans les nouvelles fonctionnalités ?
    Envisagez-vous de l'intégrer dans vos projets au plus tôt ? Comment gérez-vous une transition ?


    Source

    Page IsoCPP sur les fonctionnalités du langage
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    testeur de site internet benevol
    Inscrit en
    Février 2015
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : testeur de site internet benevol
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2015
    Messages : 3
    Points : 0
    Points
    0
    Par défaut osekur!!!
    Bonsoir c koi ca! j'avais decidé d'apprendre ce langage plutot que python.ca devient une horreur inutilisable.le developpement comme l'entretient deviennent quasi impossible seul.c'est 1 risque d'érreurs

    majeur.les compilateurs et edi seront difficiles a mettre au point.cela va mettre en cause la portabilité des programmes. leurs financement aussi. on risque 1 fork à partir de c11. ils ont pondu 1 truc

    indigeste, incomprehensible par la majorité des developpeurs. je mise sur python java modernisé et c sharp. merci ! je cours vite me laver les yeux de c17.

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    1 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 1 499
    Points : 5 686
    Points
    5 686
    Par défaut
    En même temps C++ à mon avis c'est pas destiné aux débutants et aux amateurs. Pour les amateurs débutants dans ton genre le Python c'est beaucoup plus simple en effet.
    « L’humour est une forme d'esprit railleuse qui s'attache à souligner le caractère comique, ridicule, absurde ou insolite de certains aspects de la réalité »

  4. #4
    Membre à l'essai
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Juin 2012
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Juin 2012
    Messages : 104
    Points : 17
    Points
    17
    Par défaut Desespéré
    Moi qui voulais me remettre à programmer en C++, ayant appris avec les bon vieux standard comme les type float int double et les bonne vieille méthode de POO et de pointeur. J'ai voulu passer au C++ 11 et bien franchement je trouve que c'est de la vrai merde, tout est ambigue, les putins de mots clé comme auto, shared_ptr tout plein de mots clé barbare, pas moyen d'apprendre, de comprendre et d'exploiter c'est nouveau concepts à partir des bonnes vieilles bases du langage. Moi je suis tout perdu, je re-mets énormement en question mes connaissances sur le c++, bien franchement j'ai pas suivi son développement et je me suis encore moins préparé à l'arriver de ces nouvelles normes, si je m'avais pencher sur la bibliothèque boost j'en serais peut-etre pas rendu là, j'aurais été mieux préparé, mais bon il n'est jamais trop tard.

  5. #5
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Les types de base , les (raw) pointer sont toujours là , que ce soit C++11 ou 17.
    L'évolution apporte juste des simplifications qui au contraire évite les erreur très commune du C++.

    Tu peux très bien faire un soft complet en c++11 sans utiliser auto si ca te convient pas.
    De la même manière tu peux très bien choisir de faire des new/delete plutôt qu'un simple shared_ptr , faut juste pas oublier de désallouer
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par grunk Voir le message
    De la même manière tu peux très bien choisir de faire des new/delete plutôt qu'un simple shared_ptr , faut juste pas oublier de désallouer
    Au détail que c'est impossible (la faute aux exceptions) de garantir un libération de la mémoire sans encapsuler les ressources dans des capsules RAII. Et ça, depuis 98 (*), le seul truc qui change c'est que l'on n'a plus besoin d'une bibliothèque externe pour disposer d'un tel service.

    De la lecture nécessaire pour une mise à jour rapide du truc le plus important par rapport à la pratique du C with classes: http://alexandre-laurent.developpez....ou-exceptions/

    (*) enfin, on avait bien auto_ptr, et ses soucis comme vector<auto_ptr<>> qui ne marchait pas.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2013
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2013
    Messages : 393
    Points : 685
    Points
    685
    Par défaut
    Citation Envoyé par therev123 Voir le message
    des bonnes vieilles bases du langage
    Justement, elles sont vieilles. Pourquoi continuer à utiliser des syntaxes complexes et potentiellement dangereuses (cf le message de Luc), s'il est possible de faire la même chose plus simplement et safe.

    Les contraintes en termes de conception de logiciels ont évoluées, et les méthodologies de développement ont suivi. Soit il fallait changer de langage pour suivre ces nouveaux besoins, soit il fallait faire évoluer le C++. L'intérêt du C++ n'est pas de proposer une syntaxe vieille de 20 ans, mais de proposer les mêmes avantages qu'il y a 20 ans avec une syntaxe moderne. (Plus ou moins correctement, selon les compétences plus ou moins à jour des devs).

    Et on est en 2016. Plus de 5 ans que le C++11 est normalisé. Cela fait un peu long pour se mettre à jour. Vous mettez plus de 5 ans pour apprendre un langage ?

  8. #8
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 138
    Points : 407
    Points
    407
    Par défaut
    Je ne comprend pas les commentaires précédents. Le C++ moderne a gagné en cohérence et en performance. Il y a des choses intéressantes aussi dans le C# par exemple, mais pour obtenir des perfs correctes on peut être amené à faire des bidouilles assez moches. Donc merci mais je reste en C++.

  9. #9
    Membre émérite
    Avatar de VivienD
    Homme Profil pro
    Développeur logiciel
    Inscrit en
    Octobre 2009
    Messages
    523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur logiciel
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2009
    Messages : 523
    Points : 2 278
    Points
    2 278
    Par défaut
    Si certaines évolutions sont louables comme la déduction des arguments templates pour les classes templates et constexpr if, d'autres me laissent dubitatifs. Par exemple, la levée de l'ambiguïté de f(i++, i); n'est, à mon sens, pas nécessaire: il suffisait d'écrire f(i, i); i++; ou f(i, i + 1); i++;, ce qui est nettement plus clair.

    Citation Envoyé par grunk Voir le message
    Les types de base , les (raw) pointer sont toujours là , que ce soit C++11 ou 17.
    L'évolution apporte juste des simplifications qui au contraire évite les erreur très commune du C++.

    Tu peux très bien faire un soft complet en c++11 sans utiliser auto si ca te convient pas.
    De la même manière tu peux très bien choisir de faire des new/delete plutôt qu'un simple shared_ptr , faut juste pas oublier de désallouer
    Enfin quelqu'un qui comprend à la rejet du mot-clef auto et ma préférence pour l'utilisation des pointeurs nus par rapport à celles des pointeurs intelligents.
    De retour, plus sportif mais toujours aussi moche.
    _____________
    Pro: Programmation en C/C++ (embarqué ou non)
    Loisir: Programmation en C++11/14/17 avec la STL ou Qt 5

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    A noter que le code métier n'a pas à utiliser tous les systèmes plus complexes du C++.

    Le but c'est de faire des librairies complexes avec beaucoup de possibilités mais qui rendent le code métier simple.

    Franchement pour ceux qui utilisaient boost/le c++ moderne, il n'y a pas de gros changement avec C++11.

    Pourquoi utiliser des pointeurs nus quand on sait qu'ils ne sont pas safe et que c'est si simple avec les pointeurs intélligents? (et bien sûr le fait qu'on doit utiliser les pointeurs en C++ que quand on en a vraiment besoin).

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Citation Envoyé par mintho carmo Voir le message
    Et on est en 2016. Plus de 5 ans que le C++11 est normalisé. Cela fait un peu long pour se mettre à jour. Vous mettez plus de 5 ans pour apprendre un langage ?
    Tu parles de langage. Hors, le C++1y est une surcouche/ amélioration/ [armure] du C++. Donc apprendre un langage, comme tu y vas

    De plus, vu comment le C++14 et le C++17 améliore/ déprécie/ change le C++11, je me dis que ceux qui ont appris le C++11 n'ont pas loupé le train, mais changent tous les 2 ans leurs acquis

    À près on va, à coup sûr, me dire: les changements sont minimes, les changements ont été anticipés avec des bidouilles, les changements ne touchent qu'à la partie "faire une bibliothèque", les changements sont du sucre syntaxique ...

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    Ben vu que tu peux continuer à programmer de la même manière qu'avant, les changements restent minimes oui.

  13. #13
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 629
    Points : 10 554
    Points
    10 554
    Par défaut
    Tellement minimes que le C++11 remplace le C++98 comme norme par défaut.

  14. #14
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    Et donc? tes progs compilent plus?

  15. #15
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par foetus Voir le message
    De plus, vu comment le C++14 et le C++17 améliore/ déprécie/ change le C++11, je me dis que ceux qui ont appris le C++11 n'ont pas loupé le train, mais changent tous les 2 ans leurs acquis

    À près on va, à coup sûr, me dire: les changements sont minimes, les changements ont été anticipés avec des bidouilles, les changements ne touchent qu'à la partie "faire une bibliothèque", les changements sont du sucre syntaxique ...
    Franchement, vu la lenteur du processus, comparé aux autres langages et frameworks, je suis plus dans le camp des "ça va pas assez vite" que le contraire.
    Et oui, il faut toujours/régulièrement se mettre jour. A croire que le fait que le C++ n'ait pas évolué pendant 13 ans fut une force.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  16. #16
    Membre du Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2016
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2016
    Messages : 31
    Points : 64
    Points
    64
    Par défaut
    On vit une véritable accélération ...
    Les compilateurs vont-ils suivre ?

  17. #17
    Membre du Club
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    49
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2008
    Messages : 49
    Points : 44
    Points
    44
    Par défaut
    Bjarne annonce qu'il y aura une volonté de simplification aussi bien à l'écriture qu'à l'enseignement du C++ tant mieux si c'est le cas.

    L'avantage du C++ réside dans l'assurance que les codes doivent rester compatibles avec les premiers programmes en C++ des années 80 voir du C.

    Donc, il n'y a pas de risques de peaufiner son C++11 déjà riche avant de se lancer sur du C++17 sûrement pas supporté par les compilateurs récents...

    Et faudra-t-il déjà racheter une nouvelle version de compilateur ?

  18. #18
    Membre chevronné Avatar de Ehonn
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    788
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 788
    Points : 2 160
    Points
    2 160
    Par défaut
    Citation Envoyé par GEP007 Voir le message
    Bjarne annonce qu'il y aura une volonté de simplification aussi bien à l'écriture qu'à l'enseignement du C++ tant mieux si c'est le cas.
    C'est déjà le cas avec C++11 et C++14.

    Citation Envoyé par GEP007 Voir le message
    L'avantage du C++ réside dans l'assurance que les codes doivent rester compatibles avec les premiers programmes en C++ des années 80 voir du C.
    Avec le C++ et le C, normalisés, la compatibilité est globalement là et, malgré quelques différences, il est facile d'écrire du code compatible.

    Citation Envoyé par GEP007 Voir le message
    Donc, il n'y a pas de risques de peaufiner son C++11 déjà riche avant de se lancer sur du C++17 sûrement pas supporté par les compilateurs récents...
    ?
    GCC et Clang supportent déjà une (bonne) partie de C++17 :
    - https://gcc.gnu.org/projects/cxx-status.html#cxx1z
    - http://clang.llvm.org/cxx_status.html#cxx17

    Citation Envoyé par GEP007 Voir le message
    Et faudra-t-il déjà racheter une nouvelle version de compilateur ?
    GCC et Clang sont multiplateformes, libres, gratuits et open source.

  19. #19
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Les gens qui se plaignent qu'il faut mettre à jour ses connaissances au fil des ans en informatique n'ont pas tout compris à leur métier
    Find me on github

  20. #20
    Membre du Club
    Ingénieur systèmes et réseaux
    Inscrit en
    Novembre 2008
    Messages
    49
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Novembre 2008
    Messages : 49
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par jblecanard Voir le message
    Les gens qui se plaignent qu'il faut mettre à jour ses connaissances au fil des ans en informatique n'ont pas tout compris à leur métier


    DITES CELA A BJARNE STROUSTRUP QUI OBLIGE UNE COMPTABILITÉ ASCENDANTE TOTALE

    Pouvoir associer un programme écrit en archaïque C++14482-1985 sans aucune variable booléenne avec des composants C++C++14482-2011...
    C'est cela l'informatique selon Bjarne STROUSTRUP, le reste est du commerce !


    La pérennisation des programmes sans avoir à le récrire doit être le but ultime du programmeur Bjarne STROUSTRUP
    Il ne faut pas confondre évolution ( garantie d'avenir ) et reconstruction dans une nouvelle variante ( preuve d'erreur ou de volonté commerciale )...


    Les vraies questions sont :

    Pourquoi devoir acheter un nouveau C++BUILDER ou un nouveau Visual Studio pour pouvoir intégrer C++11 puis maintenant devoir acheter un nouveau C++BUILDER ou un nouveau Visual Studio pour pouvoir intégrer C++17 ?

    Les constructeurs vont-ils traîner la savate comme avec C++14482-2003 qui a mis des années pour être intégré dans les compilateurs ?

    Et quel sera l'enjeux du C++17 MAJ ou Extension ?

+ Répondre à la discussion
Cette discussion est résolue.
Signaler un problème
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/11/2015, 13h00
  2. Réponses: 1
    Dernier message: 10/09/2015, 14h50
  3. [phpBB] Quelles sont les fonctionnalités d'administration
    Par psychoBob dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 22/06/2006, 13h16
  4. Bloquer les fonctionnalités word
    Par chauve59 dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 28/04/2006, 19h22
  5. PostGreSQL et les fonctionnalités spatiales
    Par luta dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/05/2004, 17h29

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