W8029 Un temporaire a été utilisé pour le paramètre '???' (C++)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Erreurs et avertissements du compilateur (C++) - Index

(Option de la ligne de commande pour supprimer l'avertissement : -w-lvc)

En C++, une variable ou un paramètre de type référence doit se voir affecter une référence à un objet du même type. Si les types ne sont pas identiques, la valeur est affectée à un temporaire du bon type, et l'adresse du temporaire est affectée à la variable ou au paramètre de référence.

Cet avertissement signifie que la variable ou le paramètre de référence ne désigne pas ce qui était prévu, mais une variable temporaire autrement inutilisée.

Dans l'exemple ci-dessous, la fonction f requiert une référence à un entier (int), et c est un caractère (char) :



 f(int &amp);
 char c;
 f(c);



Au lieu d'appeler f avec l'adresse de c, le compilateur génère le code équivalent au code source C++ :



 int X = c, f(X);