W8028 Temporäre Größe für die Initialisierung von 'bezeichner' verwendet (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Compiler-Fehler und -Warnungen (C++) - Index


Die Kommandozeilenoption zur Unterdrückung dieser Warnung lautet:

-w-lin

In C++ muss einer Variable oder einem Parameter des Referenztyps eine Referenz zu einem Objekt desselben Typs zugewiesen sein.

Stimmen die Typen nicht überein, wird der aktuelle Wert einer temporären Variable des korrekten Typs zugewiesen und die Adresse der temporären Variable wird der Referenzvariable oder dem Referenzparameter zugewiesen.

Die Warnung bedeutet, dass sich die Referenzvariable oder der Referenzparameter nicht auf das bezieht, was Sie erwarten, jedoch auf eine temporäre Variable, die ansonsten nicht verwendet wird.

Beispiel

Hier braucht eine Funktion 'f' eine Referenz auf ein int, wobei 'c' jedoch ein char ist:

f(int&);

// ...

  char c;
  f(c);

Anstatt f mit der Adresse von c aufzurufen, generiert der Compiler einen Code, der äquivalent zum C++ Quelltext ist::

int x = c;
f(x);