2017 : un quinquennat pour une nouvelle version du C++ ?
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 ?
:fleche: Puisqu'il ne faut en choisir qu'une, quelle devrait être l'évolution majeure de la prochaine session de normalisation ?
:fleche: Cinq ans, est trop court ? Trop long ? Une bonne fréquence ?
Amélioration du parallélisme pour C++
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:
1 2 3 4 5
| template<class t>
class list { public :
t info ;
list suiv ;
}* |
L'évolution du langage C++ s'accélère, 10 groupes d'études et plusieurs nouvelles dates de sortie
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é.
http://isocpp.org/images/uploads/wg21-structure_3.png
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.
http://isocpp.org/images/uploads/wg21-timeline_2.png
:fleche: Quelles sont les fonctionnalités qui vous intéressent le plus ? Celles que vous auriez aimer avoir ?
:fleche: 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