From -4430096370536421373
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: f78e5,f5d433881cc29cff
X-Google-Attributes: gidf78e5,public
From: jpotter@falcon.lhup.edu (John Potter)
Subject: Named return value optimisation- reprise.
Date: 1997/06/20
Message-ID: <199706192345.SAA24456@csrlink.net>#1/1
X-Deja-AN: 251381546
X-Original-Date: Thu, 19 Jun 1997 22:52:39 GMT
Organization: -
X-Auth: PGPMoose V1.1 PGP comp.std.c++ iQBVAwUBM6q7k0y4NqrwXLNJAQH29wIAmBs6oq81W2KezpF9Jv3hZmlr7MMSAkWy WTm8X4f+IIr8wptYAtR6/PlFjLBTSbB9/4Tb36cfVyp0RpnZ3bTCuQ== =Uuwp
Newsgroups: comp.std.c++
Originator: austern@isolde.mti.sgi.com


On 19 Jun 1997 09:06:42 PDT, bparker@gil.com.au (Brian Parker) wrote:

: However, as I have shown elsewhere in this thread, the same issues
: arise with the NRVO and RVO, albeit in a much more limited way.
               
Just trying to clear your terms.
	T f (T t) {
		T tmp(t);
		return tmp;
		}
Removing tmp and constructing the copy in the return value is called
"return value optimization" in D&E and MEC++.  It is called "named
return value optimization" by Lippman in IC++OM and C++Report.  Since
you are using both terms, I assume that they mean two different things
to you.
	T f (T t) {
		return T(t);
		}
I think that you are calling removal of the unnamed temporary from the
return RVO and the one above NRVO.  I think that these are two
different issues and the former requires 12.8/15 while the latter
requires only 12.2/1.  Could you clarify your terms?  I think that you
asked for clarification of that and other unnamed temp removals and
maybe someone else will address that.

John
---
[ comp.std.c++ is moderated.  To submit articles: Try just posting with your 
                newsreader.  If that fails, use mailto:std-c++@ncar.ucar.edu
  comp.std.c++ FAQ: http://reality.sgi.com/austern/std-c++/faq.html
  Moderation policy: http://reality.sgi.com/austern/std-c++/policy.html
  Comments? mailto:std-c++-request@ncar.ucar.edu 
]



