views:

54

answers:

2

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.
+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