Fonctionnalités C++ modernes - Les attributs,
Un tutoriel de Arne Mertz, traduit par MaximeCh

Le , par Malick

53PARTAGES

11  0 
Chers membres du club,

J'ai le plaisir de vous présenter ce tutoriel d'Arne Mertz :

La standardisation grandissante des attributs permet d’écrire un code plus clair, pour les humains, comme pour les compilateurs et autres outils.
Les attributs sont une façon standard de gérer les extensions jusqu’à présent non standards des compilateurs.
Pas clair ? Jetons un œil au fonctionnement de certaines extensions de compilateurs.
Mis à part les extensions de grande envergure qui chamboulent complètement le langage, nombre de compilateurs permettent d’ajouter des annotations aux fonctions, variables, classes, etc.

Souvent, ces extensions sont de purs ajouts : en les enlevant, on retrouve du C++ tout ce qu’il y a de plus classique.
Les identifiants contenant des underscores doubles sont courants, car ils sont réservés à l’implémentation : pas de risque de conflit en portant du C++ standard vers un autre compilateur.

Un exemple est l’annotation cpp __fastcall de MSVC qui indique au compilateur de passer les deux premiers arguments – pourvu qu’ils prennent une taille maximum donnée, en registre, sur les architectures x86.

L’équivalent chez GCC requiert d’écrire cpp __attribute__((fastcall)).

Le problème apparaît déjà : aucune standardisation des extensions compilateur n’existe avant C++11.
Deux compilateurs différents utiliseront des annotations différentes, ce qui rend le code non portable, à moins d’utiliser des macros de préprocesseur.

Bonne lecture

Retrouvez les meilleurs cours et tutoriels pour apprendre la programmation C++

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

Contacter le responsable de la rubrique C++

Partenaire : Hébergement Web