Version en ligne de l'article, en cours de rédaction : Nouvelles fonctionnalités du C++11.
Suite à la sortie de la version 4.7 de gcc la semaine dernière, voici la liste des nouvelles fonctionnalités du C++11 prise en charge par gcc, avec des exemples de code explicatif. Je publierai progressivement les fonctionnalités prises en charge dans les versions précédentes de gcc.
GCC 4.7 [lien]
- Options de compilation
- Initialisation des données membres non-statique
- Alias de templates
- Constructeurs délégués
- Littérales définies par l'utilisateur
- Déclarations étendues de l'amitié
- Surcharges explicites de la virtualité
- Atomic operations
GCC 4.6 [lien]
- Options de compilation
- La constante nullptr
- Déclaration anticipée pour les énumérations
- Les expressions constantes généralisées
- Les unions sans restrictions
- Range-based for
- Règles sur la génération automatique pour le déplacement et la copie
- Autoriser les constructeurs par déplacement à lancer une exception
GCC 4.5 [lien]
- Les fonctions lambdas
- Les opérateurs de conversion explicites
- Les chaînes littérales brutes et unicode
- Les caractères universels dans les littérales
- Les types POD revisités
- Les types locaux et non nommés comme arguments template
GCC 4.4 (en cours) [lien]
- Paramètres template étendus pour les templates variadic
- Initializer-list
- Les variables typées automatiquement (à faire)
- Le SFINAE pour les expressions (à faire)
- Les énumérations à typage fort (à faire)
- Les nouveaux types de caractères
- Les fonctions par défaut et supprimées
- Sizeof étendu
- Les espaces de noms inline
- Les opérations atomiques
- La propagation des exceptions
GCC 4.3 (prochainement)
- Les références de rvalue
- Les templates variadic
- Assertions statique
- Déclaration du type d'une expression
- Right angle brackets
- Les arguments template par défaut dans les fonctions template
- L'identificateur prédéfini __func__
- Le préprocesseur C99
- Le type long long
Quelles sont les nouvelles fonctionnalités qui vous paraisse le plus intéressante ?
Allez-vous utiliser (ou utilisez-vous déjà) la nouvelle version de gcc 4.7 ? Quelles fonctionnalités utilisez vous déjà ?
Sources :
- Documentation de gcc 4.7 http://gcc.gnu.org/projects/cxx0x.html
- FAQ C++11 sur le site de Bjarne Stroustrup http://www2.research.att.com/~bs/C++0xFAQ.html
- Overview of the new C++0x de Scott Meyers (2010)
- C++0xCompilerSupport : liste à jour de nombreux compilateurs et leur prise en charge du C++11.
Remarque : le code est directement issu de la documentation de gcc, utilisable selon les termes de la licence consultable à la fin de cette page, ainsi que des drafts du comité de normalisation dont les liens sont donnés.
Partager