|
Boost : |
From: David Abrahams (david.abrahams_at_[hidden])
Date: 2002-07-03 07:37:32
From: "Daniel Frey" <d.frey_at_[hidden]>
> See also Scott Meyers "More Efficient C++", Item 4.7. If you read the
> book, you might get the impression I misunderstood it completely, but
> please read Scott's errata for this item, available at:
>
> http://www.aristeia.com/BookErrata/mec++-errata_frames.html
And there it says:
7/19/96 sdm 109 In July 1996, the standardization committee
9/26/96
decided that named objects may be treated
essentially the same as unnamed objects for
purposes of performing the return value
optimization. I added a footnote to this effect.
Which leads me to believe that there is no "NRVO", just an "RVO".
Furthermore, I believe that more compilers implement the RVO for unnamed
objects than for named objects. So why aren't you using this implementation
instead?
friend const T operator+( const T& lhs, const T& rhs )
{
return T(lhs) += rhs;
}
-Dave
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk