573: Mainline
Note that the ampersand in the return-value type declaration cannot
appear without the ampersand in the parameter type declaration:
- The parameter whose value is the
ostream
object is a
call-by-reference parameter. Thus, nothing is pushed onto the stack for
that parameter.
- Because the memory reserved for a call-by-reference parameter
does not go on the stack, that memory is not disturbed when the
function returns. Thus, there is no need to copy the class
object when the function returns. Hence, a copy-free return is
possible.