RAD Studio
ContentsIndex
PreviousUpNext
W8029: Temporary used for parameter '???' (C++)

(Command-line option to suppress warning: -w-lvc) 

In C++, a variable or parameter of reference type must be assigned a reference to an object of the same type. If the types do not match, the actual value is assigned to a temporary of the correct type, and the address of the temporary is assigned to the reference variable or parameter.  

The warning means that the reference variable or parameter does not refer to what you expect, but to a temporary variable, otherwise unused. 

In the following example, function f requires a reference to an int, and c is a char:

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

Instead of calling f with the address of c, the compiler generates code equivalent to the C++ source code:

int X = c, f(X);
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!