Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

2017 : un quinquennat pour une nouvelle version du C++ ? Possible
Selon Herb Sutter

Le , par 3DArchi

0PARTAGES

9  0 
Dans un billet daté d'hier, Herb Sutter confirme la mise en ordre de marche du groupe ISO WG21 travaillant sur la norme C++.

Cette réunion a été un succès, nous informe-t-il, avec des acteurs majeurs de l'industrie du logiciel (Microsoft, NVidia, Intel) prêts à intégrer des évolutions en avance de phase ! Ce qui confirme le retour en force du C++ dont on observe déjà les signes indicateurs depuis quelques temps.

Mais Herb nous prévient également que la nouvelle norme sera C++1y avec y==7. Il souligne cependant que l'objectif 2017 ne peut être atteint qu'en se concentrant sur une seule évolution majeure et ce malgré le nombre de propositions déjà avancées. Le premier tri ne devrait se faire qu'à la prochaine réunion en octobre.

Côté bibliothèques, le dynamisme devrait être plus important puisque des ajouts pourront avoir lieu entre deux normalisations. Bon espoir d'avoir prochainement quelque chose de natif pour gérer les fichiers (Boost.File System en standard ?) ou le réseau cite en exemple Herb Sutter.

Tout ceci se traduit par la mise en place de quatre groupes de travail chargés d'avancer dans certaines propositions :
  • SG1 : Concurrence et parallélisme
  • SG2 : Modules
  • SG3 : File System
  • SG4 : Réseau


Sources : Billet d’Herb Sutter, Comité de standardisation C++

Et vous ?

Puisqu'il ne faut en choisir qu'une, quelle devrait être l'évolution majeure de la prochaine session de normalisation ?

Cinq ans, est trop court ? Trop long ? Une bonne fréquence ?

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

Avatar de gbdivers
Inactif https://www.developpez.com
Le 09/03/2012 à 15:06
Ma préférence va pour le SG1 (Concurrence et parallélisme) puis pour SG2 (Module). J'ai l'impression que ces points nécessite des modifications du langage plus important que les 2 autres. La gestion du réseau et les file system fonctionne très bien actuellement sans (trop de ?) hack code tordu pour les faire fonctionner dans le langage actuel.

Le délai de 5 ans ? C'est long si l'on considère que la programmation parallèle, c'est pour maintenant (et pour hier). J'ai l'impression que le C++ a pris du retard pour intégrer ces concepts. Heureusement que l'on ne manque pas de bibliothèques pour compenser cela.
C'est court lorsque l'on considère toutes les difficultés pour mettre en place une sémantique cohérente pour gérer ça.

C'est dommage que l'on n'a pas des cycles plus court pour ce qui est plus "évident". Par exemple les corrections de bugs et évolutions simples (anecdote : j'ai eu une discussion récemment sur le chat concernant les constructeurs de ifsream, qui prend que de char* et pas des string ; ce problème vient d'être corrigé dans la dernière norme alors qu'il a été identifié il y a au moins 10 ans, de mémoire). Idem pour les bibliothèques existantes, fonctionnelles et très utilisées (et donc très stables), qui pourraient être intégré dans la STL plus rapidement (comme par exemple file system, qui est bien implémentée dans Boost ; d'ailleurs, lorsque une bibliothèque passe de Boost à la STL, elles sont fortement modifiées ou elles sont prises presque telle quelle ?) Heureusement que les compilateurs n'attendent pas la publication officielle de la norme pour commencer à implémenter ces nouvelles fonctionnalités.

Pour terminer, on pourrait regretter (en ayant une vision simpliste ?) que le langage n'est pas un précurseur pour les nouvelles fonctionnalités ajoutées mais qu'il ne fait qu'intégrer, avec du retard, des fonctionnalités qui sont déjà dans beaucoup de langage. D'un autre côté, le choix fait (et assumé) des normalisateurs (normeurs ? bonhommes de la normes ? le comité de normalisation !) de se focaliser sur le langage et pas ses extensions fait qu'il permet justement d'ajouter des nouvelles fonctionnalités dans des bibliothèques plutôt que d'avoir un langage usine à gaz
A quand une meilleure prise en charge des concepts ? de la programmation fonctionnelles ?
3  0 
Avatar de cob59
Membre éprouvé https://www.developpez.com
Le 11/04/2012 à 11:49
Citation Envoyé par rakotoarisoatahiana Voir le message
En tant que formateur en C++, j'aimerais bien que la programmation parallèle soit bien structurée. Par exemple, _beginthread devrait avoir comme paramètre une INSTRUCTION et non pas un nom de programme, etc. Ce qui permettrait de l'utiliser dans une classe ou avec un programme générique (template). Ex: tri par tas en utilisant un thread par niveau.

On devrait aussi avoir la même instruction _beginthread sur Windows ou Linux ou autre plate-forme.

On devrait pouvoir passer un programme générique en tant que paramètre d'un autre programme.

On devrait avoir des pointeurs sur des classes, surtout pour les débutants.
Ex : listes chaînées :
Code : Sélectionner tout
1
2
3
4
5
template<class t>
class list { public :
   t info ;
   list suiv ;
}*
_beginthread et tout ce qui se trouve dans process.h ne répondent à aucun standard C/C++. C'est un header mis à disposition par Microsoft, donc le comité n'a pas à mettre sont nez là-dedans.
Par contre, pour multithreader de manière portable et ergonomique il existe Boost.Thread de longue date, Boost étant une quasi-norme C++. Par ailleurs depuis C++11, la STL seule permet de faire du multithread via std::thread.
Par contre je ne comprends pas le problème que pose ton exemple...
list<T>* chainon = new list<T> ?
3  0 
Avatar de gbdivers
Inactif https://www.developpez.com
Le 11/04/2012 à 11:49
Citation Envoyé par rakotoarisoatahiana Voir le message
En tant que formateur en C++, j'aimerais bien que la programmation parallèle soit bien structurée. Par exemple, _beginthread devrait avoir comme paramètre une INSTRUCTION et non pas un nom de programme, etc. Ce qui permettrait de l'utiliser dans une classe ou avec un programme générique (template). Ex: tri par tas en utilisant un thread par niveau.

On devrait pouvoir passer un programme générique en tant que paramètre d'un autre programme.
Connais-tu les threads avec le C++11 (FAQ Stroustrup), avec Boost ou avec Qt (QThread et QtConcurrent) ? Connais tu les différences de syntaxe, utilisabilité, performance, etc. entre ces approches ? (ce ne sont pas des questions pièges, je ne connais pas du tout les threads mode msn)

De plus, on parle bien dans cette discussion de la prochaine normes (C++17 ?), donc les modifications/ajouts qui doivent être fait au C++11. Ce que tu proposes n'est pas déjà pris en compte (totalement ou en partie) dans le C++11 ?

Citation Envoyé par rakotoarisoatahiana
On devrait aussi avoir la même instruction _beginthread sur Windows ou Linux ou autre plate-forme.
Tu parles de portabilité. Pourquoi avoir choisit les outils spécifique msn au lieu de bibliothèques plus portable ?

Citation Envoyé par rakotoarisoatahiana
On devrait avoir des pointeurs sur des classes, surtout pour les débutants.
Ex : listes chaînées :
Code : Sélectionner tout
1
2
3
4
5
template<class t>
class list { public :
   t info ;
   list suiv ;
}*
Je ne connais pas du tout les pointeurs sur classes. C'est quoi la différence avec les pointeurs sur objet ?
Et pour les débutants, clairement, c'est non (pour moi, même sans savoir ce que c'est) : je déconseille très fortement l’utilisation des pointeurs par les débutants (alternatives : conteneurs à la place des tableaux dynamiques style C, références, pointeurs intelligents)
3  0 
Avatar de gbdivers
Inactif https://www.developpez.com
Le 10/03/2012 à 15:13
Citation Envoyé par mitkl Voir le message
Qu'est-ce qui se cache derrière le SG2 : Modules en fait ?
Tu as tout dans le draft du dernier WG21 : http://www.open-std.org/jtc1/sc22/wg...2012/n3347.pdf
Pour toutes la liste de propositions : http://www.open-std.org/jtc1/sc22/wg...s/papers/2012/
2  0 
Avatar de gbdivers
Inactif https://www.developpez.com
Le 21/03/2013 à 1:39
L'évolution du langage C++ s'accélère
10 groupes d'études et plusieurs nouvelles dates de sortie pour les prochaines normes


Depuis la première annonce l'année dernière, le comité à fait plein de petits bébés : la famille s'est agrandie et compte maintenant 10 SG (study group), 4 WG (working group) et un comité.



Les working groups ont pour rôle de proposer les modifications à apporter à la norme, modifications qui seront approuvées, ou non, par le comité de normalisation.

  • le core working group (CWG) a la charge des corrections sur le langage (chapitres 1 à 16 de la norme) ;
  • l'evolution working group (EWG) travaille sur l'évolution du langage (travaux qui sont délégués aux study groups) ;
  • le library working group (LWG) s'occupe de le maintenance de la bibliothèque standard (chapitres 17 et suivants de la norme) ;
  • le library evolution working groupe (LEWG) est responsable de l'évolution de la bibliothèque standard (travaux qui sont délégués aux study groups).


Les study groups ont la charge d'étudier les évolutions du langage (SG 1, 2, 5, 7, 8 et 10) et de la bibliothèque (SG 3, 4, 6 et 9) sur des thèmes spécifiques et de proposer des modifications de la norme aux WG :
  • SG1 Concurrency : concurrence et parallélisme ;
  • SG2 Modules : utilisation de modules à la place du système d'en-têtes ;
  • SG3 File System : gestion des fichiers (basé sur Boost.Filesystem v3) ;
  • SG4 Networking : gestion du réseau, sockets et HTTP ;
  • SG5 Transactional Memory : mémoires transactionnelles (mémoire permettant de créer un ensemble indivisible d'écriture et lecture) ;
  • SG6 Numerics : analyse numérique, nombres réels fixes et flottants, fractions ;
  • SG7 Reflection : réflexion à la compilation ;
  • SG8 Concepts : ajout de contraintes sur les types ;
  • SG9 Ranges : alternative aux itérateurs ;
  • SG10 Feature Test : standardisation des tests.


Au niveau du planning, le comité s'active, avec plus d'une centaine de propositions pour le congrès de Bristol (voir la discussion [ISOC++] Mailing pre-Bristol). En plus de la prochaine norme qui devrait sortir en 2017, le comité prévoit des Technical Specifications, pour les ajouts de fonctionnalités indépendantes, et une révision mineure de la norme en 2014.



Quelles sont les fonctionnalités qui vous intéressent le plus ? Celles que vous auriez aimer avoir ?
Que pensez-vous de l’accélération prise par le comité pour le langage et la bibliothèque standard ?


Source : http://isocpp.org/std/the-committee
2  0 
Avatar de Joel F
Membre chevronné https://www.developpez.com
Le 27/03/2013 à 7:47
bof bof SWING++, les gui franchement c'est le sloppery sloep infame: impossible a cocneptualiser et a mettre dans des composants generiques propres et sans API dementes. Y a regulierement des propal sur boost par exemple, et c'est le drame a chaque fois.

Pour operator. y a un N-paper mais je trouve plus le numero. Y a quelqu'un qui a un talk sur un imple clang a C++Now je crois aussi
1  0 
Avatar de Gugelhupf
Modérateur https://www.developpez.com
Le 27/03/2013 à 13:24
Avant, je me disais aussi que le C++ devrait avoir son AWT ou Swing, avec le temps j'ai compris que ça ne servirait à rien.
Au début en Java on avait AWT, on est passé à Swing pour avoir des composants plus léger, puis aujourd'hui le standard c'est JavaFX.
Rendre AWT ou Swing standard ça ne sert à rien car ce sont des outils qui évoluent avec le temps.
Le C++ a déjà Qt, et c'est très bien comme c'est.

Perso j'aimerais bien avoir Module, Networking et FileSystem en C++, et j'aimerais que ce soit des API simples et intuitif à manipuler.
Par contre j'ai vu la spec de Module et ça m'inquiète un peu avec les "export", j'aimerais bien que ce soit aussi simple qu'en C# avec l'utilisation des namespace.

Java => package/import
C# => namespace/using
C++ => namespace/import ?
1  0 
Avatar de gbdivers
Inactif https://www.developpez.com
Le 29/03/2013 à 10:02
bof bof SWING++, les gui franchement c'est le sloppery sloep infame: impossible a cocneptualiser et a mettre dans des composants generiques propres et sans API dementes. Y a regulierement des propal sur boost par exemple, et c'est le drame a chaque fois.

Pour operator. y a un N-paper mais je trouve plus le numero. Y a quelqu'un qui a un talk sur un imple clang a C++Now je crois aussi
Bof, bof, SWING++. Les interfaces graphiques, franchement, c'est une pente glissante infâme à conceptualiser et à mettre dans ces composants génériques propres et sans interfaces démentes. Il y a régulièrement des propositions sur Boost par exemple et c'est le drame à chaque fois.

Bon, à part quelques fautes de frappes et l'absence d'accent (ce qui arrive régulirèment pour ceux qui ont des claviers QWERTY), c'était compréhensible comme message
1  0 
Avatar de Klaim
Membre expert https://www.developpez.com
Le 29/03/2013 à 11:00
Ca viens avec l'habitude et la curiosite.
1  0 
Avatar de gbdivers
Inactif https://www.developpez.com
Le 02/04/2013 à 8:04
Citation Envoyé par Gugelhupf Voir le message
Bonjour,

J'ai trouvé un lien (via isocpp.org) avec des N-paper sur C++14.

Je vous avouerais que je n'ai pas saisi la moitié des specs
Tu as aussi une mini-review faite par Emmanuel Deloget là des proposals pré-Bristol : http://www.developpez.net/forums/d13...l/#post7187861
1  0