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 :


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.