Référence constante sur référence

Article suivant: Optimisation de script bash en limitant l'ouverture de processus
Article précédent: Placement new, allocateur et conteneur

Une petite note sur les références et le qualificatif const en commençant par un exemple :).

using reference = int&;
int i = 0;
reference const r = i;
r = 3;

Contrairement à ce que laisse croire le code, il est possible de modifier la valeur de r. En fait, ajouter const sur une référence ne fait rien car cela ne s’applique pas sur le référé qui reste un int&.

Si on déroule complètement le type de r, on obtient int & const r: une référence constante sur un entier. Comme une référence est par nature immutable (le référé ne peut pas changer), le const est superflux. Le type de r est donc bien une référence sur un entier non-constant.

(On notera toutefois que la syntaxe int & const est invalide puisque const ne peut s’appliquer directement sur une référence.)

Commentaires

Aucun commentaire pour le moment :'(

Le système de commentaire passe par les issues de github et aucun n'est associée au billet. Vous pouvez faire votre commentaire dans une issue qui a comme titre celui du billet. Je me chargerai de les associer.

Revenir en haut