C1x : future version du langage C
C1x : future version du langage C
Le nouveau Release de GCC intègre déjà certaines de ses fonctionnalités
La nouvelle ne date pas d'hier, mais pour ceux qui ne sont pas encore au courant, une nouvelle version du C est en fait en cours d'élaboration et le dernier release de GCC (du 26 octobre 2011) intègre même déjà certaines de ses fonctionnalités.
Ce langage, couramment appelé C1x, est destiné à remplacer le C99, le standard actuel. Il est clair que le C99 a terriblement été un échec, notamment en raison du choix de Microsoft de ne pas le supporter. Mais ce n'est pas tout. Le C99 a peut-être aussi échoué parce qu'il n'apportait rien qui soit véritablement essentiel au langage.
Certes, les nouvelles fonctionnalités (types, commentaires, déclarations, initialisations, bibliothèque standard, etc.) étaient toutes aussi intéressantes les unes que les autres, mais aucune qui ouvre réellement de nouveaux horizons pour le langage.
Cette fois-ci, c'est différent. Parmi les nouveautés majeures, on peut citer : le contrôle des alignements en mémoire, un meilleur support d'Unicode, la normalisation des structures et unions anonymes, la normalisation des fonctions "secure" de Microsoft (et suppression définitive de la fonction gets au profit de gets_s) et le support du multithreading (<threads.h> et <stdatomic.h>). Comme d'habitude, des macros permettent de tester si telle fonctionnalité est disponible ou non dans une implémentation donnée. Par exemple, la macro __STDC_NO_THREADS__ permet de savoir si l'implémentation supporte ou non les threads.
:fleche: Le dernier draft de cette norme date du 12 avril 2011 et est disponible ici.
Source : change log de GCC
:fleche: Alors, qu'en pensez-vous ?
:fleche: Approuvez-vous ces changements ?
:fleche: En attendez-vous d'autres ?