Boost logo

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