In C++, what is temporary allocation and when is it used? Does such a thing even exist? It was mentioned in the TA's course notes, but I couldn't find any info about it...
+3
A:
When people say "temporaries" they often refer to rvalues. That is objects created and not bound to a variable name, thus not living outside the current statement. IE:
int foo()
{
Do( Object() );
}
The created Object() is an rvalue which you may hear referred to as a temporary.
Doug T.
2010-07-23 13:54:10
+2
A:
I suspect that your TA may have been referring to objects without a name created during the evaluation of an expression.
SomeClass x(1), y(2), z(3);
SomeClass t = x + y + z;
The expression x + y + z
invokes the operator+()
twice; the result of the first is a temporary allocation (the result of the second initializes t
).
Jonathan Leffler
2010-07-23 13:55:57